close #113
parent
535a08dbdf
commit
43de276ae4
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
$translation_header = array (
|
||||
'Project-Id-Version' => 'Chevereto V3',
|
||||
'POT-Creation-Date' => '2020-09-01 09:57-0400',
|
||||
'PO-Revision-Date' => '2020-09-01 09:57-0400',
|
||||
'Last-Translator' => 'Rodolfo Berríos <inbox@rodolfoberrios.com>',
|
||||
'Language-Team' => '',
|
||||
'Language' => 'en_US',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Type' => 'text/plain; charset=UTF-8',
|
||||
'Content-Transfer-Encoding' => '8bit',
|
||||
'X-Generator' => 'Poedit 2.3',
|
||||
'X-Poedit-Basepath' => '../../..',
|
||||
'Plural-Forms' => 'nplurals=2; plural=(n != 1);',
|
||||
'X-Poedit-KeywordsList' => '_s;_se;_n:1,2;_ne:1,2;PF.fn._s;PF.fn._n:1,2',
|
||||
'X-Poedit-SourceCharset' => 'UTF-8',
|
||||
'X-Poedit-SearchPath-0' => '.',
|
||||
'X-Poedit-SearchPathExcluded-0' => 'app/vendor',
|
||||
'X-Poedit-SearchPathExcluded-1' => 'app/content/languages/cache',
|
||||
);
|
||||
$translation_plural = array (
|
||||
'nplurals' => 2,
|
||||
'function' => '($n != 1)',
|
||||
);
|
||||
$translation_table = [
|
||||
];
|
||||
?>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,489 +0,0 @@
|
|||
<?php
|
||||
$translation_header = array (
|
||||
'Project-Id-Version' => 'VERSION',
|
||||
'POT-Creation-Date' => '2020-03-31 21:05+0000',
|
||||
'PO-Revision-Date' => '2020-03-31 21:05+0000',
|
||||
'Last-Translator' => 'FULL NAME <EMAIL@ADDRESS>',
|
||||
'Language-Team' => 'LANGUAGE TEAM <EMAIL@ADDRESS>',
|
||||
'Language' => 'et_EE',
|
||||
'MIME-Version' => '1.0',
|
||||
'Content-Type' => 'text/plain; charset=UTF-8',
|
||||
'Content-Transfer-Encoding' => '8bit',
|
||||
'Plural-Forms' => 'nplurals=2; plural=(n != 1);',
|
||||
);
|
||||
$translation_plural = array (
|
||||
'nplurals' => 2,
|
||||
'function' => '($n != 1)',
|
||||
);
|
||||
$translation_table = [
|
||||
"Invalid email" => [
|
||||
0 => "Vigane email",
|
||||
],
|
||||
"Invalid username" => [
|
||||
0 => "Vigane kasutaja",
|
||||
],
|
||||
"Invalid password" => [
|
||||
0 => "Vigane parool",
|
||||
],
|
||||
"Invalid website mode" => [
|
||||
0 => "Vigane veebilehe laad",
|
||||
],
|
||||
"From email address" => [
|
||||
0 => "Saatja email",
|
||||
],
|
||||
"Sender email for emails sent to users." => [
|
||||
0 => "Saatja email millega saadetakse kasutajatele.",
|
||||
],
|
||||
"Incoming email address" => [
|
||||
0 => "Sissetulev emaili aadres",
|
||||
],
|
||||
"Website mode" => [
|
||||
0 => "Veebilehe laad",
|
||||
],
|
||||
"You can switch the website mode anytime." => [
|
||||
0 => "Saad vahetada veebilehe laadi igal ajal.",
|
||||
],
|
||||
"Community" => [
|
||||
0 => "Kommuun",
|
||||
],
|
||||
"Personal" => [
|
||||
0 => "Peronaalne",
|
||||
],
|
||||
"Update in progress" => [
|
||||
0 => "Käimas on uuendamine",
|
||||
],
|
||||
"Missing %s file" => [
|
||||
0 => "Puudu %s fail",
|
||||
],
|
||||
"Invalid license info" => [
|
||||
0 => "Vigane litsentsi info",
|
||||
],
|
||||
"Invalid license key" => [
|
||||
0 => "Vigane litsentsi kood",
|
||||
],
|
||||
"Can't save file" => [
|
||||
0 => "Faili ei saa salvestada",
|
||||
],
|
||||
"Can't download %s" => [
|
||||
0 => "Ei saa alla laadida %s",
|
||||
],
|
||||
"An error occurred. Please try again later." => [
|
||||
0 => "Ilmnes viga. Palun proovi hiljem uuesti.",
|
||||
],
|
||||
"Passwords don't match" => [
|
||||
0 => "Parool ei ühti",
|
||||
],
|
||||
"cancel" => [
|
||||
0 => "katkesta",
|
||||
],
|
||||
"Edit" => [
|
||||
0 => "Muuda",
|
||||
],
|
||||
"Album" => [
|
||||
0 => "Album",
|
||||
1 => "Albumid",
|
||||
],
|
||||
"Close" => [
|
||||
0 => "Sulge",
|
||||
],
|
||||
"image" => [
|
||||
0 => "pilt",
|
||||
1 => "pildid",
|
||||
],
|
||||
"%s's Albums" => [
|
||||
0 => "%s Albumid",
|
||||
],
|
||||
"Untitled" => [
|
||||
0 => "Tiitlita",
|
||||
],
|
||||
"Note: This content is password protected. Remember to pass the content password to share." => [
|
||||
0 => "Märkus: Sisu on märgitud parooliga kaitstuks. Pea meeles jagada parooli.",
|
||||
],
|
||||
"Note: This content is private. Change privacy to \"public\" to share." => [
|
||||
0 => "Märkus: Sisu on märgitud privaatseks. Määra privaatsus seadetest \"avalik\" teistega jagamiseks.",
|
||||
],
|
||||
"Private" => [
|
||||
0 => "Privaatne",
|
||||
],
|
||||
"Public" => [
|
||||
0 => "Avalik",
|
||||
],
|
||||
"Link" => [
|
||||
0 => "Link",
|
||||
],
|
||||
"Password" => [
|
||||
0 => "Parool",
|
||||
],
|
||||
"view" => [
|
||||
0 => "vaatamine",
|
||||
1 => "vaatamist",
|
||||
],
|
||||
"minute" => [
|
||||
0 => "minut",
|
||||
1 => "minutit",
|
||||
],
|
||||
"hour" => [
|
||||
0 => "tund",
|
||||
1 => "tundi",
|
||||
],
|
||||
"day" => [
|
||||
0 => "päev",
|
||||
1 => "päeva",
|
||||
],
|
||||
"week" => [
|
||||
0 => "nädal",
|
||||
1 => "nädalat",
|
||||
],
|
||||
"month" => [
|
||||
0 => "kuu",
|
||||
1 => "kuud",
|
||||
],
|
||||
"year" => [
|
||||
0 => "aasta",
|
||||
1 => "aastat",
|
||||
],
|
||||
"Don't autodelete" => [
|
||||
0 => "Ära kustuta automaatselt",
|
||||
],
|
||||
"Private upload" => [
|
||||
0 => "Privaatne üleslaadimine",
|
||||
],
|
||||
"like" => [
|
||||
0 => "meeldimine",
|
||||
1 => "meeldimist",
|
||||
],
|
||||
"Recent" => [
|
||||
0 => "Viimati lisatud",
|
||||
],
|
||||
"Trending" => [
|
||||
0 => "Kuum",
|
||||
],
|
||||
"Top users" => [
|
||||
0 => "Top kasutajad",
|
||||
],
|
||||
"Most recent" => [
|
||||
0 => "Viimased",
|
||||
],
|
||||
"Oldest" => [
|
||||
0 => "Vanimad",
|
||||
],
|
||||
"Most viewed" => [
|
||||
0 => "Enim vaadatud",
|
||||
],
|
||||
"Popular" => [
|
||||
0 => "Populaarsed",
|
||||
],
|
||||
"Explore" => [
|
||||
0 => "Sirvi pilte",
|
||||
],
|
||||
"Animated" => [
|
||||
0 => "Animeeritud",
|
||||
],
|
||||
"Search" => [
|
||||
0 => "Otsi",
|
||||
],
|
||||
"Image" => [
|
||||
0 => "pilt",
|
||||
1 => "Pildid",
|
||||
],
|
||||
"User" => [
|
||||
0 => "Kasutaja",
|
||||
1 => "Kasutajad",
|
||||
],
|
||||
"Can't update storage details." => [
|
||||
0 => "Ei saanud uuendada salvestamise detaile.",
|
||||
],
|
||||
"Unlimited" => [
|
||||
0 => "Piiramatu",
|
||||
],
|
||||
"used" => [
|
||||
0 => "kasutatud",
|
||||
],
|
||||
"Private profile" => [
|
||||
0 => "Privaatne profiil",
|
||||
],
|
||||
"second" => [
|
||||
0 => "sekund",
|
||||
1 => "sekundit",
|
||||
],
|
||||
"%s ago" => [
|
||||
0 => "%s tagasi",
|
||||
],
|
||||
"moments ago" => [
|
||||
0 => "hetk tagasi",
|
||||
],
|
||||
"That page doesn't exist" => [
|
||||
0 => "Seda lehte ei eksisteeri",
|
||||
],
|
||||
"Forgot password?" => [
|
||||
0 => "Unustasid parooli ?",
|
||||
],
|
||||
"Reset password" => [
|
||||
0 => "Taasta parool",
|
||||
],
|
||||
"Resend account activation" => [
|
||||
0 => "Saada uuesti konto kinnitamise e-mail",
|
||||
],
|
||||
"Add your email address" => [
|
||||
0 => "Lisa oma e-mail",
|
||||
],
|
||||
"Email changed" => [
|
||||
0 => "E-mail muudetud",
|
||||
],
|
||||
"Invalid Username/Email" => [
|
||||
0 => "Vale Kasutajanimi/Parool",
|
||||
],
|
||||
"Account needs to be activated to use this feature" => [
|
||||
0 => "Konto peab olema aktiveeritud",
|
||||
],
|
||||
"Account already activated" => [
|
||||
0 => "Konto on juba aktiveeritud",
|
||||
],
|
||||
"Allow up to 15 minutes for the email. You can try again later." => [
|
||||
0 => "E-maili saabumine võib võtta aega kuni 15 minutit. Proovi hiljem uuesti.",
|
||||
],
|
||||
"Email already being used" => [
|
||||
0 => "E-mail on juba kasutusel",
|
||||
],
|
||||
"Password required" => [
|
||||
0 => "Parool nõutud",
|
||||
],
|
||||
"Share" => [
|
||||
0 => "Jaga",
|
||||
],
|
||||
"Embed codes" => [
|
||||
0 => "HTML ja BBKoodi tag'id",
|
||||
],
|
||||
"Stats" => [
|
||||
0 => "Statistika",
|
||||
],
|
||||
"Images" => [
|
||||
0 => "Pildid",
|
||||
],
|
||||
"Albums" => [
|
||||
0 => "Albumid",
|
||||
],
|
||||
"Users" => [
|
||||
0 => "Kasutajad",
|
||||
],
|
||||
"Settings" => [
|
||||
0 => "Seaded",
|
||||
],
|
||||
"Chevereto version" => [
|
||||
0 => "Chevereto versioon",
|
||||
],
|
||||
"install update" => [
|
||||
0 => "installeeri uuendus",
|
||||
],
|
||||
"check for updates" => [
|
||||
0 => "kontrolli uuendusi",
|
||||
],
|
||||
"Support" => [
|
||||
0 => "Kasutajatugi",
|
||||
],
|
||||
"Enabled" => [
|
||||
0 => "Lubatud",
|
||||
],
|
||||
"Disabled" => [
|
||||
0 => "Keelatud",
|
||||
],
|
||||
"Max. upload file size" => [
|
||||
0 => "Max faili suurus",
|
||||
],
|
||||
"Invalid timezone" => [
|
||||
0 => "Vale ajatsoon",
|
||||
],
|
||||
"Sign in" => [
|
||||
0 => "Logi sisse",
|
||||
],
|
||||
"Upload images" => [
|
||||
0 => "Lae pilt ülesse",
|
||||
],
|
||||
"Account" => [
|
||||
0 => "Konto",
|
||||
],
|
||||
"Profile" => [
|
||||
0 => "Profiil",
|
||||
],
|
||||
"Wrong password" => [
|
||||
0 => "Vale parool",
|
||||
],
|
||||
"Password has been changed" => [
|
||||
0 => "Parool muudetud edukalt",
|
||||
],
|
||||
"Create account" => [
|
||||
0 => "Loo konto",
|
||||
],
|
||||
"Upload" => [
|
||||
0 => "Lae pilt...",
|
||||
],
|
||||
"Discovery" => [
|
||||
0 => "Avasta",
|
||||
],
|
||||
"Advanced search" => [
|
||||
0 => "Täpsem otsing",
|
||||
],
|
||||
"Random" => [
|
||||
0 => "Suvaline pilt",
|
||||
],
|
||||
"My Profile" => [
|
||||
0 => "Minu konto",
|
||||
],
|
||||
"Sign out" => [
|
||||
0 => "Logi välja",
|
||||
],
|
||||
"Drag and drop or paste images here to upload" => [
|
||||
0 => "Lohista fail siia või lae ülesse clipboardist",
|
||||
],
|
||||
"browse from your computer" => [
|
||||
0 => "valida faili arvutist",
|
||||
],
|
||||
"add image URLs" => [
|
||||
0 => "lisada läbi lingi",
|
||||
],
|
||||
"You can also %i or %u." => [
|
||||
0 => "Sa saad %i või %u",
|
||||
],
|
||||
"Edit or resize any image by clicking the image preview" => [
|
||||
0 => "Muuda pilti või pildi suurust vajutades pisipildile",
|
||||
],
|
||||
"your computer" => [
|
||||
0 => "arvutist",
|
||||
],
|
||||
"You can add more images from %i or %u." => [
|
||||
0 => "Saad lisada pilte juurde %i või %u",
|
||||
],
|
||||
"sign in" => [
|
||||
0 => "logi sisse",
|
||||
],
|
||||
"close" => [
|
||||
0 => "sulge",
|
||||
],
|
||||
"Remove" => [
|
||||
0 => "Kustuta",
|
||||
],
|
||||
"Edit image" => [
|
||||
0 => "Muuda pilti",
|
||||
],
|
||||
"Title" => [
|
||||
0 => "Pealkiri",
|
||||
],
|
||||
"optional" => [
|
||||
0 => "valikuline",
|
||||
],
|
||||
"Resize image" => [
|
||||
0 => "Pildi mõõtmed",
|
||||
],
|
||||
"Note: Animated GIF images won't be resized." => [
|
||||
0 => "Animeeritud (gif) failide pildi suurust ei saa muuta!",
|
||||
],
|
||||
"Auto delete image" => [
|
||||
0 => "Kustuta pilt automaatselt",
|
||||
],
|
||||
"Description" => [
|
||||
0 => "Kirjeldus",
|
||||
],
|
||||
"Brief description of this image" => [
|
||||
0 => "....",
|
||||
],
|
||||
"Album name" => [
|
||||
0 => "Albumi nimi",
|
||||
],
|
||||
"Private (just me)" => [
|
||||
0 => "Privaatne(ainult minule)",
|
||||
],
|
||||
"Album password" => [
|
||||
0 => "Albumi parool",
|
||||
],
|
||||
"Name" => [
|
||||
0 => "Nimi",
|
||||
],
|
||||
"Select all" => [
|
||||
0 => "Vali kõik",
|
||||
],
|
||||
"Clear selection" => [
|
||||
0 => "Eemalda valik",
|
||||
],
|
||||
"Selection" => [
|
||||
0 => "Valitud",
|
||||
],
|
||||
"Sign in with another account" => [
|
||||
0 => "Logi sisse kasutades...",
|
||||
],
|
||||
"There's nothing to show here." => [
|
||||
0 => "Tühjus... Pole midagi näidata!",
|
||||
],
|
||||
"Edit image details" => [
|
||||
0 => "Muuda pilti",
|
||||
],
|
||||
"The requested page was not found." => [
|
||||
0 => "Soovitud lehekülge ei leitud!",
|
||||
],
|
||||
"The user has been deleted" => [
|
||||
0 => "Kasutaja kustutatud",
|
||||
],
|
||||
"Submit" => [
|
||||
0 => "Edasi",
|
||||
],
|
||||
"Username or Email address" => [
|
||||
0 => "Kasutajanimi või e-mail",
|
||||
],
|
||||
"Enter your new password" => [
|
||||
0 => "Sisesta uus parool",
|
||||
],
|
||||
"Re-enter your new password" => [
|
||||
0 => "Sisesta uuesti uus parool",
|
||||
],
|
||||
"Delete album" => [
|
||||
0 => "Kustuta album",
|
||||
],
|
||||
"Album link" => [
|
||||
0 => "Albumi link",
|
||||
],
|
||||
"Email address" => [
|
||||
0 => "E-mail",
|
||||
],
|
||||
"Save changes" => [
|
||||
0 => "Salvesta",
|
||||
],
|
||||
"Uploaded %s" => [
|
||||
0 => "Üles laetud %s",
|
||||
],
|
||||
"More Exif data" => [
|
||||
0 => "Vaata exif andmeid",
|
||||
],
|
||||
"Share image" => [
|
||||
0 => "Jaga pilti",
|
||||
],
|
||||
"Upload and share your images." => [
|
||||
0 => "Lae pilt ülesse ja jaga seda",
|
||||
],
|
||||
"Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails." => [
|
||||
0 => "Lohista oma pilt siia ja alusta üleslaadimist. Kuni %s",
|
||||
],
|
||||
"Start uploading" => [
|
||||
0 => "Lae pilt...",
|
||||
],
|
||||
"Logged out" => [
|
||||
0 => "Välja logitud",
|
||||
],
|
||||
"Go to homepage" => [
|
||||
0 => "Mine esilehele",
|
||||
],
|
||||
"Timezone" => [
|
||||
0 => "Ajatsoon",
|
||||
],
|
||||
"Current password" => [
|
||||
0 => "Praegune parool",
|
||||
],
|
||||
"Enter your current password" => [
|
||||
0 => "Sisesta praegune parool",
|
||||
],
|
||||
"Upload new image" => [
|
||||
0 => "Lae pilt",
|
||||
],
|
||||
"If you want to send a message fill the form below." => [
|
||||
0 => "Kirjuta meile.",
|
||||
],
|
||||
];
|
||||
?>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,936 +0,0 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: VERSION\n"
|
||||
"POT-Creation-Date: 2020-03-31 21:05+0000\n"
|
||||
"PO-Revision-Date: 2020-03-31 21:05+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE TEAM <EMAIL@ADDRESS>\n"
|
||||
"Language: et_EE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../../../app/install/installer.php:1168
|
||||
#: ../../../app/install/installer.php:1177
|
||||
#: ../../../app/install/installer.php:1180
|
||||
#: ../../../app/routes/route.account.php:414
|
||||
#: ../../../app/routes/route.json.php:579
|
||||
#: ../../../app/routes/route.json.php:1107
|
||||
#: ../../../app/routes/route.page.php:80
|
||||
#: ../../../app/routes/route.settings.php:185
|
||||
#: ../../../app/routes/route.signup.php:97
|
||||
#: ../../../content/pages/default/contact.php:28
|
||||
msgid "Invalid email"
|
||||
msgstr "Vigane email"
|
||||
|
||||
#: ../../../app/install/installer.php:1171
|
||||
#: ../../../app/routes/route.json.php:574
|
||||
#: ../../../app/routes/route.settings.php:181
|
||||
#: ../../../app/routes/route.signup.php:100
|
||||
msgid "Invalid username"
|
||||
msgstr "Vigane kasutaja"
|
||||
|
||||
#: ../../../app/install/installer.php:1174
|
||||
#: ../../../app/routes/route.account.php:357
|
||||
#: ../../../app/routes/route.json.php:584
|
||||
#: ../../../app/routes/route.settings.php:323
|
||||
#: ../../../app/routes/route.signup.php:103
|
||||
msgid "Invalid password"
|
||||
msgstr "Vigane parool"
|
||||
|
||||
#: ../../../app/install/installer.php:1183
|
||||
#: ../../../app/routes/route.dashboard.php:667
|
||||
msgid "Invalid website mode"
|
||||
msgstr "Vigane veebilehe laad"
|
||||
|
||||
#: ../../../app/install/template/ready.php:31
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1760
|
||||
msgid "From email address"
|
||||
msgstr "Saatja email"
|
||||
|
||||
#: ../../../app/install/template/ready.php:32
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1763
|
||||
msgid "Sender email for emails sent to users."
|
||||
msgstr "Saatja email millega saadetakse kasutajatele."
|
||||
|
||||
#: ../../../app/install/template/ready.php:36
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1766
|
||||
msgid "Incoming email address"
|
||||
msgstr "Sissetulev emaili aadres"
|
||||
|
||||
#: ../../../app/install/template/ready.php:44
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:327
|
||||
msgid "Website mode"
|
||||
msgstr "Veebilehe laad"
|
||||
|
||||
#: ../../../app/install/template/ready.php:45
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:334
|
||||
msgid "You can switch the website mode anytime."
|
||||
msgstr "Saad vahetada veebilehe laadi igal ajal."
|
||||
|
||||
#: ../../../app/install/template/ready.php:47
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:330
|
||||
msgid "Community"
|
||||
msgstr "Kommuun"
|
||||
|
||||
#: ../../../app/install/template/ready.php:47
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:330
|
||||
msgid "Personal"
|
||||
msgstr "Peronaalne"
|
||||
|
||||
#: ../../../app/install/update/template/update.php:2
|
||||
msgid "Update in progress"
|
||||
msgstr "Käimas on uuendamine"
|
||||
|
||||
#: ../../../app/install/update/updater.php:72
|
||||
#, php-format
|
||||
msgid "Missing %s file"
|
||||
msgstr "Puudu %s fail"
|
||||
|
||||
#: ../../../app/install/update/updater.php:78
|
||||
msgid "Invalid license info"
|
||||
msgstr "Vigane litsentsi info"
|
||||
|
||||
#: ../../../app/install/update/updater.php:84
|
||||
msgid "Invalid license key"
|
||||
msgstr "Vigane litsentsi kood"
|
||||
|
||||
#: ../../../app/install/update/updater.php:87
|
||||
msgid "Can't save file"
|
||||
msgstr "Faili ei saa salvestada"
|
||||
|
||||
#: ../../../app/install/update/updater.php:100
|
||||
#, php-format
|
||||
msgid "Can't download %s"
|
||||
msgstr "Ei saa alla laadida %s"
|
||||
|
||||
#: ../../../app/install/update/updater.php:62
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:22
|
||||
#: ../../../app/lib/chevereto.js:1237 ../../../app/lib/chevereto.js:1313
|
||||
#: ../../../app/lib/chevereto.js:1391 ../../../app/lib/chevereto.js:1539
|
||||
#: ../../../app/lib/chevereto.js:1623 ../../../app/lib/chevereto.js:1668
|
||||
#: ../../../app/lib/chevereto.min.js:59 ../../../app/lib/chevereto.min.js:63
|
||||
#: ../../../app/lib/chevereto.min.js:67 ../../../app/lib/chevereto.min.js:70
|
||||
#: ../../../app/lib/chevereto.min.js:74 ../../../app/lib/chevereto.min.js:77
|
||||
#: ../../../lib/Peafowl/peafowl.js:2560 ../../../lib/Peafowl/peafowl.js:3096
|
||||
#: ../../../lib/Peafowl/peafowl.min.js:158
|
||||
#: ../../../lib/Peafowl/peafowl.min.js:195
|
||||
msgid "An error occurred. Please try again later."
|
||||
msgstr "Ilmnes viga. Palun proovi hiljem uuesti."
|
||||
|
||||
#: ../../../app/routes/route.account.php:360
|
||||
#: ../../../app/routes/route.settings.php:327
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:36
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:313
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:330
|
||||
#: ../../../app/lib/chevereto.js:1516 ../../../app/lib/chevereto.min.js:69
|
||||
msgid "Passwords don't match"
|
||||
msgstr "Parool ei ühti"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:80
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:92
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2044
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:463
|
||||
#: ../../../content/pages/default/contact.php:123
|
||||
#: ../../../app/lib/chevereto.js:1548 ../../../app/lib/chevereto.min.js:71
|
||||
#: ../../../lib/Peafowl/peafowl.js:2326 ../../../lib/Peafowl/peafowl.min.js:140
|
||||
msgid "cancel"
|
||||
msgstr "katkesta"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:146
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:6
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:12
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:13
|
||||
msgid "Edit"
|
||||
msgstr "Muuda"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_move_existing_album.php:3
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:8
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_album_edit_tools.php:9
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:16
|
||||
#: ../../../app/themes/Peafowl/tpl_list_item/item_image_edit_tools.php:17
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:28
|
||||
msgid "Album"
|
||||
msgid_plural "Albums"
|
||||
msgstr[0] "Album"
|
||||
msgstr[1] "Albumid"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:222
|
||||
msgid "Close"
|
||||
msgstr "Sulge"
|
||||
|
||||
#: ../../../app/lib/classes/class.listing.php:296
|
||||
#: ../../../app/routes/route.album.php:177
|
||||
#: ../../../app/themes/Peafowl/snippets/breadcrum_owner_card.php:25
|
||||
#: ../../../app/themes/Peafowl/views/album.php:34
|
||||
#: ../../../app/themes/Peafowl/views/user.php:98
|
||||
#: ../../../app/lib/chevereto.js:2412 ../../../app/lib/chevereto.min.js:126
|
||||
msgid "image"
|
||||
msgid_plural "images"
|
||||
msgstr[0] "pilt"
|
||||
msgstr[1] "pildid"
|
||||
|
||||
#: ../../../app/routes/route.user.php:89
|
||||
#: ../../../app/themes/Peafowl/header.php:56
|
||||
#, php-format, javascript-format
|
||||
msgid "%s's Albums"
|
||||
msgstr "%s Albumid"
|
||||
|
||||
#: ../../../app/lib/classes/class.album.php:100
|
||||
msgid "Untitled"
|
||||
msgstr "Tiitlita"
|
||||
|
||||
msgid "Note: This content is password protected. Remember to pass the content password to share."
|
||||
msgstr "Märkus: Sisu on märgitud parooliga kaitstuks. Pea meeles jagada parooli."
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_share.php:14
|
||||
#: ../../../app/themes/Peafowl/views/album.php:74
|
||||
#: ../../../app/themes/Peafowl/views/image.php:272
|
||||
msgid "Note: This content is private. Change privacy to \"public\" to share."
|
||||
msgstr "Märkus: Sisu on märgitud privaatseks. Määra privaatsus seadetest \"avalik\" teistega jagamiseks."
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:366
|
||||
msgid "Private"
|
||||
msgstr "Privaatne"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:20
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:366
|
||||
msgid "Public"
|
||||
msgstr "Avalik"
|
||||
|
||||
#: ../../../app/lib/classes/class.page.php:137
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_share.php:10
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:461
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:64
|
||||
#: ../../../app/themes/Peafowl/header.php:292
|
||||
#: ../../../app/themes/Peafowl/header.php:340
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:92
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:93
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:126
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:21
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:104
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:105
|
||||
#: ../../../app/themes/Peafowl/views/login.php:39
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:322
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:49
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:50
|
||||
msgid "Password"
|
||||
msgstr "Parool"
|
||||
|
||||
#: ../../../app/lib/classes/class.image.php:1230
|
||||
msgid "view"
|
||||
msgid_plural "views"
|
||||
msgstr[0] "vaatamine"
|
||||
msgstr[1] "vaatamist"
|
||||
|
||||
#: ../../../app/lib/functions.php:42 ../../../app/lib/functions.php:54
|
||||
msgid "minute"
|
||||
msgid_plural "minutes"
|
||||
msgstr[0] "minut"
|
||||
msgstr[1] "minutit"
|
||||
|
||||
#: ../../../app/lib/functions.php:41 ../../../app/lib/functions.php:53
|
||||
msgid "hour"
|
||||
msgid_plural "hours"
|
||||
msgstr[0] "tund"
|
||||
msgstr[1] "tundi"
|
||||
|
||||
#: ../../../app/lib/functions.php:40 ../../../app/lib/functions.php:52
|
||||
msgid "day"
|
||||
msgid_plural "days"
|
||||
msgstr[0] "päev"
|
||||
msgstr[1] "päeva"
|
||||
|
||||
#: ../../../app/lib/functions.php:39 ../../../app/lib/functions.php:51
|
||||
msgid "week"
|
||||
msgid_plural "weeks"
|
||||
msgstr[0] "nädal"
|
||||
msgstr[1] "nädalat"
|
||||
|
||||
#: ../../../app/lib/functions.php:38 ../../../app/lib/functions.php:50
|
||||
msgid "month"
|
||||
msgid_plural "months"
|
||||
msgstr[0] "kuu"
|
||||
msgstr[1] "kuud"
|
||||
|
||||
#: ../../../app/lib/functions.php:37 ../../../app/lib/functions.php:49
|
||||
msgid "year"
|
||||
msgid_plural "years"
|
||||
msgstr[0] "aasta"
|
||||
msgstr[1] "aastat"
|
||||
|
||||
#: ../../../app/lib/classes/class.image.php:348
|
||||
msgid "Don't autodelete"
|
||||
msgstr "Ära kustuta automaatselt"
|
||||
|
||||
#: ../../../app/lib/classes/class.image.php:955
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76
|
||||
msgid "Private upload"
|
||||
msgstr "Privaatne üleslaadimine"
|
||||
|
||||
#: ../../../app/lib/classes/class.image.php:1231
|
||||
msgid "like"
|
||||
msgid_plural "likes"
|
||||
msgstr[0] "meeldimine"
|
||||
msgstr[1] "meeldimist"
|
||||
|
||||
msgid "Recent"
|
||||
msgstr "Viimati lisatud"
|
||||
|
||||
msgid "Trending"
|
||||
msgstr "Kuum"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:1163
|
||||
msgid "Top users"
|
||||
msgstr "Top kasutajad"
|
||||
|
||||
#: ../../../app/routes/route.album.php:80
|
||||
#: ../../../app/routes/route.category.php:48
|
||||
#: ../../../app/routes/route.dashboard.php:1105
|
||||
#: ../../../app/routes/route.dashboard.php:1142
|
||||
#: ../../../app/routes/route.dashboard.php:1171
|
||||
#: ../../../app/routes/route.explore.php:34
|
||||
#: ../../../app/routes/route.following.php:21
|
||||
#: ../../../app/routes/route.user.php:187
|
||||
#: ../../../app/routes/route.user.php:232
|
||||
#: ../../../app/routes/route.user.php:255
|
||||
#: ../../../app/themes/Peafowl/views/index.php:46
|
||||
msgid "Most recent"
|
||||
msgstr "Viimased"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:1113
|
||||
#: ../../../app/routes/route.dashboard.php:1150
|
||||
#: ../../../app/routes/route.dashboard.php:1179
|
||||
#: ../../../app/routes/route.user.php:238
|
||||
#: ../../../app/routes/route.user.php:261
|
||||
msgid "Oldest"
|
||||
msgstr "Vanimad"
|
||||
|
||||
#: ../../../app/routes/route.album.php:96
|
||||
#: ../../../app/routes/route.category.php:64
|
||||
#: ../../../app/routes/route.dashboard.php:1121
|
||||
#: ../../../app/routes/route.explore.php:50
|
||||
#: ../../../app/routes/route.following.php:29
|
||||
#: ../../../app/routes/route.user.php:201
|
||||
msgid "Most viewed"
|
||||
msgstr "Enim vaadatud"
|
||||
|
||||
msgid "Popular"
|
||||
msgstr "Populaarsed"
|
||||
|
||||
#: ../../../app/routes/route.explore.php:89
|
||||
#: ../../../app/themes/Peafowl/header.php:188
|
||||
#: ../../../app/themes/Peafowl/header.php:206
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:305
|
||||
#: ../../../app/themes/Peafowl/views/explore.php:9
|
||||
msgid "Explore"
|
||||
msgstr "Sirvi pilte"
|
||||
|
||||
msgid "Animated"
|
||||
msgstr "Animeeritud"
|
||||
|
||||
#: ../../../app/routes/route.search.php:130
|
||||
#: ../../../app/themes/Peafowl/header.php:215
|
||||
#: ../../../app/themes/Peafowl/header.php:220
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:295
|
||||
msgid "Search"
|
||||
msgstr "Otsi"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:22
|
||||
msgid "Image"
|
||||
msgid_plural "Images"
|
||||
msgstr[0] "pilt"
|
||||
msgstr[1] "Pildid"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:34
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:90
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:126
|
||||
msgid "User"
|
||||
msgid_plural "Users"
|
||||
msgstr[0] "Kasutaja"
|
||||
msgstr[1] "Kasutajad"
|
||||
|
||||
msgid "Can't update storage details."
|
||||
msgstr "Ei saanud uuendada salvestamise detaile."
|
||||
|
||||
#: ../../../app/lib/classes/class.storage.php:720
|
||||
msgid "Unlimited"
|
||||
msgstr "Piiramatu"
|
||||
|
||||
#: ../../../app/lib/classes/class.storage.php:720
|
||||
msgid "used"
|
||||
msgstr "kasutatud"
|
||||
|
||||
msgid "Private profile"
|
||||
msgstr "Privaatne profiil"
|
||||
|
||||
#: ../../../app/lib/functions.php:43 ../../../app/lib/functions.php:55
|
||||
msgid "second"
|
||||
msgid_plural "seconds"
|
||||
msgstr[0] "sekund"
|
||||
msgstr[1] "sekundit"
|
||||
|
||||
#: ../../../app/lib/functions.php:67
|
||||
#, php-format
|
||||
msgid "%s ago"
|
||||
msgstr "%s tagasi"
|
||||
|
||||
#: ../../../app/lib/functions.php:67
|
||||
msgid "moments ago"
|
||||
msgstr "hetk tagasi"
|
||||
|
||||
#: ../../../app/loader.php:396 ../../../app/themes/Peafowl/views/404.php:6
|
||||
msgid "That page doesn't exist"
|
||||
msgstr "Seda lehte ei eksisteeri"
|
||||
|
||||
#: ../../../app/routes/route.account.php:72
|
||||
#: ../../../app/themes/Peafowl/header.php:295
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:24
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:8
|
||||
#: ../../../app/themes/Peafowl/views/login.php:41
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:299
|
||||
msgid "Forgot password?"
|
||||
msgstr "Unustasid parooli ?"
|
||||
|
||||
#: ../../../app/routes/route.account.php:73
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:8
|
||||
msgid "Reset password"
|
||||
msgstr "Taasta parool"
|
||||
|
||||
#: ../../../app/routes/route.account.php:74
|
||||
#: ../../../app/themes/Peafowl/views/account/resend-activation.php:8
|
||||
msgid "Resend account activation"
|
||||
msgstr "Saada uuesti konto kinnitamise e-mail"
|
||||
|
||||
#: ../../../app/routes/route.account.php:76
|
||||
#: ../../../app/themes/Peafowl/views/account/email-needed.php:8
|
||||
msgid "Add your email address"
|
||||
msgstr "Lisa oma e-mail"
|
||||
|
||||
#: ../../../app/routes/route.account.php:77
|
||||
#: ../../../app/themes/Peafowl/views/account/email-changed.php:7
|
||||
msgid "Email changed"
|
||||
msgstr "E-mail muudetud"
|
||||
|
||||
#: ../../../app/routes/route.account.php:119
|
||||
#: ../../../app/routes/route.account.php:164
|
||||
#: ../../../app/routes/route.account.php:271
|
||||
msgid "Invalid Username/Email"
|
||||
msgstr "Vale Kasutajanimi/Parool"
|
||||
|
||||
#: ../../../app/routes/route.account.php:145
|
||||
msgid "Account needs to be activated to use this feature"
|
||||
msgstr "Konto peab olema aktiveeritud"
|
||||
|
||||
#: ../../../app/routes/route.account.php:151
|
||||
msgid "Account already activated"
|
||||
msgstr "Konto on juba aktiveeritud"
|
||||
|
||||
#: ../../../app/routes/route.account.php:192
|
||||
msgid "Allow up to 15 minutes for the email. You can try again later."
|
||||
msgstr "E-maili saabumine võib võtta aega kuni 15 minutit. Proovi hiljem uuesti."
|
||||
|
||||
#: ../../../app/routes/route.account.php:422
|
||||
#: ../../../app/routes/route.json.php:599
|
||||
#: ../../../app/routes/route.settings.php:243
|
||||
#: ../../../app/routes/route.signup.php:141
|
||||
msgid "Email already being used"
|
||||
msgstr "E-mail on juba kasutusel"
|
||||
|
||||
msgid "Password required"
|
||||
msgstr "Parool nõutud"
|
||||
|
||||
#: ../../../app/routes/route.album.php:115
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_share.php:4
|
||||
#: ../../../app/themes/Peafowl/views/album.php:36
|
||||
#: ../../../app/themes/Peafowl/views/image.php:89
|
||||
msgid "Share"
|
||||
msgstr "Jaga"
|
||||
|
||||
#: ../../../app/routes/route.image.php:127
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:99
|
||||
#: ../../../app/themes/Peafowl/snippets/embed_tpl.php:110
|
||||
msgid "Embed codes"
|
||||
msgstr "HTML ja BBKoodi tag'id"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:38
|
||||
msgid "Stats"
|
||||
msgstr "Statistika"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:39
|
||||
#: ../../../app/routes/route.search.php:85
|
||||
#: ../../../app/routes/route.user.php:85 ../../../app/routes/route.user.php:277
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:73
|
||||
msgid "Images"
|
||||
msgstr "Pildid"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:40
|
||||
#: ../../../app/routes/route.search.php:92
|
||||
#: ../../../app/routes/route.user.php:90 ../../../app/routes/route.user.php:283
|
||||
#: ../../../app/themes/Peafowl/header.php:403
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:77
|
||||
msgid "Albums"
|
||||
msgstr "Albumid"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:41
|
||||
#: ../../../app/routes/route.dashboard.php:233
|
||||
#: ../../../app/routes/route.search.php:99
|
||||
msgid "Users"
|
||||
msgstr "Kasutajad"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:42
|
||||
#: ../../../app/routes/route.settings.php:498
|
||||
#: ../../../app/themes/Peafowl/header.php:363
|
||||
#: ../../../app/themes/Peafowl/header.php:405
|
||||
msgid "Settings"
|
||||
msgstr "Seaded"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:161
|
||||
msgid "Chevereto version"
|
||||
msgstr "Chevereto versioon"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:162
|
||||
msgid "install update"
|
||||
msgstr "installeeri uuendus"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:162
|
||||
msgid "check for updates"
|
||||
msgstr "kontrolli uuendusi"
|
||||
|
||||
msgid "Support"
|
||||
msgstr "Kasutajatugi"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:190
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:298
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:308
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:318
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:633
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:642
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:652
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:678
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:750
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:962
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:975
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:986
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:995
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1024
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1034
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1073
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1082
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1091
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1101
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1247
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1302
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1312
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1324
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1336
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1346
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1356
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1368
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1475
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1573
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1582
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1592
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1627
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1637
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1835
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1861
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1894
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1920
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1946
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1965
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2010
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2031
|
||||
msgid "Enabled"
|
||||
msgstr "Lubatud"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:190
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:298
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:308
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:318
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:633
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:642
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:652
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:679
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:750
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:962
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:975
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:986
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:995
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1024
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1034
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1073
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1082
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1091
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1101
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1247
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1302
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1312
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1324
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1336
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1346
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1356
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1368
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1475
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1573
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1582
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1592
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1627
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1637
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1835
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1861
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1894
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1920
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1946
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1965
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2010
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2031
|
||||
msgid "Disabled"
|
||||
msgstr "Keelatud"
|
||||
|
||||
msgid "Max. upload file size"
|
||||
msgstr "Max faili suurus"
|
||||
|
||||
#: ../../../app/routes/route.dashboard.php:567
|
||||
msgid "Invalid timezone"
|
||||
msgstr "Vale ajatsoon"
|
||||
|
||||
#: ../../../app/routes/route.login.php:148
|
||||
#: ../../../app/themes/Peafowl/header.php:269
|
||||
#: ../../../app/themes/Peafowl/header.php:275
|
||||
#: ../../../app/themes/Peafowl/views/login.php:8
|
||||
#: ../../../app/themes/Peafowl/views/login.php:52
|
||||
msgid "Sign in"
|
||||
msgstr "Logi sisse"
|
||||
|
||||
msgid "Upload images"
|
||||
msgstr "Lae pilt ülesse"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:62
|
||||
msgid "Account"
|
||||
msgstr "Konto"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:63
|
||||
msgid "Profile"
|
||||
msgstr "Profiil"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:313
|
||||
msgid "Wrong password"
|
||||
msgstr "Vale parool"
|
||||
|
||||
#: ../../../app/routes/route.settings.php:435
|
||||
msgid "Password has been changed"
|
||||
msgstr "Parool muudetud edukalt"
|
||||
|
||||
#: ../../../app/routes/route.signup.php:251
|
||||
#: ../../../app/themes/Peafowl/header.php:316
|
||||
#: ../../../app/themes/Peafowl/header.php:322
|
||||
#: ../../../app/themes/Peafowl/views/index.php:81
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:8
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:63
|
||||
msgid "Create account"
|
||||
msgstr "Loo konto"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:258
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:76
|
||||
msgid "Upload"
|
||||
msgstr "Lae pilt..."
|
||||
|
||||
msgid "Discovery"
|
||||
msgstr "Avasta"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:222
|
||||
#: ../../../app/themes/Peafowl/header.php:226
|
||||
msgid "Advanced search"
|
||||
msgstr "Täpsem otsing"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:233
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:315
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:713
|
||||
msgid "Random"
|
||||
msgstr "Suvaline pilt"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:402
|
||||
msgid "My Profile"
|
||||
msgstr "Minu konto"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:409
|
||||
msgid "Sign out"
|
||||
msgstr "Logi välja"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:13
|
||||
msgid "Drag and drop or paste images here to upload"
|
||||
msgstr "Lohista fail siia või lae ülesse clipboardist"
|
||||
|
||||
msgid "browse from your computer"
|
||||
msgstr "valida faili arvutist"
|
||||
|
||||
msgid "add image URLs"
|
||||
msgstr "lisada läbi lingi"
|
||||
|
||||
msgid "You can also %i or %u."
|
||||
msgstr "Sa saad %i või %u"
|
||||
|
||||
msgid "Edit or resize any image by clicking the image preview"
|
||||
msgstr "Muuda pilti või pildi suurust vajutades pisipildile"
|
||||
|
||||
msgid "your computer"
|
||||
msgstr "arvutist"
|
||||
|
||||
msgid "You can add more images from %i or %u."
|
||||
msgstr "Saad lisada pilte juurde %i või %u"
|
||||
|
||||
msgid "sign in"
|
||||
msgstr "logi sisse"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:91
|
||||
msgid "close"
|
||||
msgstr "sulge"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:148
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:666
|
||||
msgid "Remove"
|
||||
msgstr "Kustuta"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:154
|
||||
msgid "Edit image"
|
||||
msgstr "Muuda pilti"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:4
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:441
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:597
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1440
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:434
|
||||
msgid "Title"
|
||||
msgstr "Pealkiri"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:158
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:12
|
||||
#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:4
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:28
|
||||
#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:9
|
||||
#: ../../../app/themes/Peafowl/snippets/form_ip_ban_edit.php:15
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:104
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:108
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:503
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:509
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:566
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:573
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:580
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1418
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1428
|
||||
msgid "optional"
|
||||
msgstr "valikuline"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:167
|
||||
msgid "Resize image"
|
||||
msgstr "Pildi mõõtmed"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:176
|
||||
msgid "Note: Animated GIF images won't be resized."
|
||||
msgstr "Animeeritud (gif) failide pildi suurust ei saa muuta!"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:180
|
||||
msgid "Auto delete image"
|
||||
msgstr "Kustuta pilt automaatselt"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:200
|
||||
#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:12
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:28
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:877
|
||||
msgid "Description"
|
||||
msgstr "Kirjeldus"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/anywhere_upload.php:201
|
||||
#: ../../../app/themes/Peafowl/snippets/form_image.php:29
|
||||
msgid "Brief description of this image"
|
||||
msgstr "...."
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:7
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:8
|
||||
msgid "Album name"
|
||||
msgstr "Albumi nimi"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_album.php:21
|
||||
msgid "Private (just me)"
|
||||
msgstr "Privaatne(ainult minule)"
|
||||
|
||||
msgid "Album password"
|
||||
msgstr "Albumi parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/form_category_edit.php:4
|
||||
#: ../../../app/themes/Peafowl/snippets/form_storage_edit.php:3
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:875
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:1693
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:364
|
||||
#: ../../../content/pages/default/contact.php:87
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10
|
||||
msgid "Select all"
|
||||
msgstr "Vali kõik"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:10
|
||||
#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:56
|
||||
msgid "Clear selection"
|
||||
msgstr "Eemalda valik"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/listing_tools_editor.php:13
|
||||
msgid "Selection"
|
||||
msgstr "Valitud"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:281
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:11
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:40
|
||||
#: ../../../app/themes/Peafowl/views/login.php:18
|
||||
#: ../../../app/themes/Peafowl/views/login.php:65
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:18
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:76
|
||||
msgid "Sign in with another account"
|
||||
msgstr "Logi sisse kasutades..."
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/template_content_empty.php:5
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:618
|
||||
#: ../../../app/themes/Peafowl/views/index.php:63
|
||||
msgid "There's nothing to show here."
|
||||
msgstr "Tühjus... Pole midagi näidata!"
|
||||
|
||||
#: ../../../app/themes/Peafowl/snippets/user_items_editor.php:16
|
||||
#: ../../../app/themes/Peafowl/views/image.php:69
|
||||
#: ../../../app/themes/Peafowl/views/image.php:457
|
||||
msgid "Edit image details"
|
||||
msgstr "Muuda pilti"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/404.php:7
|
||||
msgid "The requested page was not found."
|
||||
msgstr "Soovitud lehekülge ei leitud!"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/404.php:22
|
||||
msgid "The user has been deleted"
|
||||
msgstr "Kasutaja kustutatud"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:52
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:47
|
||||
#: ../../../app/themes/Peafowl/views/account/resend-activation.php:37
|
||||
#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.js:2324
|
||||
#: ../../../lib/Peafowl/peafowl.min.js:25
|
||||
#: ../../../lib/Peafowl/peafowl.min.js:140
|
||||
msgid "Submit"
|
||||
msgstr "Edasi"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:291
|
||||
#: ../../../app/themes/Peafowl/snippets/modal_login.php:20
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:38
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:39
|
||||
#: ../../../app/themes/Peafowl/views/account/resend-activation.php:23
|
||||
#: ../../../app/themes/Peafowl/views/login.php:34
|
||||
#: ../../../app/themes/Peafowl/views/login.php:35
|
||||
msgid "Username or Email address"
|
||||
msgstr "Kasutajanimi või e-mail"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:29
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:306
|
||||
msgid "Enter your new password"
|
||||
msgstr "Sisesta uus parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:35
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:312
|
||||
msgid "Re-enter your new password"
|
||||
msgstr "Sisesta uuesti uus parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/album.php:25
|
||||
msgid "Delete album"
|
||||
msgstr "Kustuta album"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/album.php:86
|
||||
msgid "Album link"
|
||||
msgstr "Albumi link"
|
||||
|
||||
#: ../../../app/themes/Peafowl/header.php:338
|
||||
#: ../../../app/themes/Peafowl/views/account/email-needed.php:15
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:100
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:155
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:34
|
||||
#: ../../../app/themes/Peafowl/views/signup.php:35
|
||||
#: ../../../content/pages/default/contact.php:92
|
||||
msgid "Email address"
|
||||
msgstr "E-mail"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/dashboard.php:2044
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:463
|
||||
#: ../../../lib/Peafowl/peafowl.js:417 ../../../lib/Peafowl/peafowl.min.js:25
|
||||
msgid "Save changes"
|
||||
msgstr "Salvesta"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/image.php:145
|
||||
#, php-format
|
||||
msgid "Uploaded %s"
|
||||
msgstr "Üles laetud %s"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/image.php:157
|
||||
msgid "More Exif data"
|
||||
msgstr "Vaata exif andmeid"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/image.php:182
|
||||
#: ../../../app/themes/Peafowl/views/image.php:241
|
||||
msgid "Share image"
|
||||
msgstr "Jaga pilti"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/index.php:15
|
||||
msgid "Upload and share your images."
|
||||
msgstr "Lae pilt ülesse ja jaga seda"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/index.php:17
|
||||
#, php-format
|
||||
msgid "Drag and drop anywhere you want and start uploading your images now. %s limit. Direct image links, BBCode and HTML thumbnails."
|
||||
msgstr "Lohista oma pilt siia ja alusta üleslaadimist. Kuni %s"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/index.php:25
|
||||
msgid "Start uploading"
|
||||
msgstr "Lae pilt..."
|
||||
|
||||
#: ../../../app/routes/route.logout.php:29
|
||||
#: ../../../app/themes/Peafowl/views/logout.php:8
|
||||
msgid "Logged out"
|
||||
msgstr "Välja logitud"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/account/awaiting-confirmation.php:10
|
||||
#: ../../../app/themes/Peafowl/views/account/email-changed.php:11
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:16
|
||||
#: ../../../app/themes/Peafowl/views/account/password-forgot.php:26
|
||||
#: ../../../app/themes/Peafowl/views/account/password-reset.php:16
|
||||
#: ../../../app/themes/Peafowl/views/account/resend-activation.php:13
|
||||
#: ../../../app/themes/Peafowl/views/logout.php:13
|
||||
#: ../../../app/themes/Peafowl/views/request-denied.php:13
|
||||
msgid "Go to homepage"
|
||||
msgstr "Mine esilehele"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:245
|
||||
msgid "Timezone"
|
||||
msgstr "Ajatsoon"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:296
|
||||
msgid "Current password"
|
||||
msgstr "Praegune parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:297
|
||||
msgid "Enter your current password"
|
||||
msgstr "Sisesta praegune parool"
|
||||
|
||||
#: ../../../app/themes/Peafowl/views/settings.php:352
|
||||
#: ../../../app/themes/Peafowl/views/user.php:21
|
||||
msgid "Upload new image"
|
||||
msgstr "Lae pilt"
|
||||
|
||||
msgid "If you want to send a message fill the form below."
|
||||
msgstr "Kirjuta meile."
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +0,0 @@
|
|||
You can quick and easy override any language string by putting lang_code.po files here.
|
||||
|
||||
For example, en.po file whit this contents:
|
||||
#: START EXAMPLE
|
||||
msgid "Upload and share your images."
|
||||
msgstr "Upload and share your photos."
|
||||
#: END EXAMPLE
|
||||
|
||||
Will replace the original msgid with the new msgstr.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -288,15 +288,8 @@ class Settings
|
|||
if ($settings['homepage_cta_fn'] == 'cta-link' and !G\is_url($settings['homepage_cta_fn_extra'])) {
|
||||
$settings['homepage_cta_fn_extra'] = G\get_regex_match($settings['routing_regex_path'], '#', $settings['homepage_cta_fn_extra'], 1);
|
||||
}
|
||||
|
||||
// Disabled languages handle
|
||||
if (!is_null($settings['languages_disable'])) {
|
||||
$languages_disable = (array) explode(',', $settings['languages_disable']);
|
||||
$languages_disable = array_filter(array_unique($languages_disable));
|
||||
} else {
|
||||
$languages_disable = [];
|
||||
}
|
||||
$settings['languages_disable'] = $languages_disable;
|
||||
|
||||
$settings['languages_disable'] = [];
|
||||
|
||||
self::$settings = $settings;
|
||||
self::$defaults = $defaults;
|
||||
|
|
|
@ -366,31 +366,35 @@ if (!function_exists('bcdiv')) {
|
|||
*/
|
||||
function get_translation_table()
|
||||
{
|
||||
return L10n::getTranslation();
|
||||
return [];
|
||||
}
|
||||
|
||||
function get_language_used()
|
||||
{
|
||||
return get_available_languages()[L10n::getStatic('locale')];
|
||||
return 'en';
|
||||
}
|
||||
|
||||
function get_available_languages()
|
||||
{
|
||||
return L10n::getAvailableLanguages();
|
||||
return [];
|
||||
}
|
||||
|
||||
function get_enabled_languages()
|
||||
{
|
||||
if (!getSetting('language_chooser_enable')) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return L10n::getEnabledLanguages();
|
||||
return [
|
||||
'en' => [
|
||||
'code' => 'en',
|
||||
'dir' => 'ltr',
|
||||
'name' => 'English',
|
||||
'base' => 'en',
|
||||
'short_name' => 'EN',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
function get_disabled_languages()
|
||||
{
|
||||
return L10n::getDisabledLanguages();
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -813,24 +817,6 @@ function checkUpdates()
|
|||
} // Silence
|
||||
}
|
||||
|
||||
function getJsModLangL10n()
|
||||
{
|
||||
foreach (new DirectoryIterator(CHV_APP_PATH_CONTENT_LANGUAGES . 'cache/') as $fileInfo) {
|
||||
if ($fileInfo->isDot() || $fileInfo->isDir()) {
|
||||
continue;
|
||||
}
|
||||
$lang_code = str_replace('.po.cache.php', null, $fileInfo->getFilename());
|
||||
include $fileInfo->getPathname();
|
||||
if (!$translation_table['Upload images']) {
|
||||
continue;
|
||||
}
|
||||
$l10n[$lang_code] = $translation_table['Upload images'][0];
|
||||
}
|
||||
unset($translation_table);
|
||||
|
||||
return json_encode($l10n);
|
||||
}
|
||||
|
||||
function obfuscate($string)
|
||||
{
|
||||
$len = strlen($string);
|
||||
|
|
|
@ -21,7 +21,6 @@ if (!defined('access') or !access) {
|
|||
// Gettext with parsed arguments
|
||||
function _s($msg, $args=null)
|
||||
{
|
||||
$msg = CHV\L10n::gettext($msg);
|
||||
if ($msg && !is_null($args)) {
|
||||
$fn = is_array($args) ? 'strtr' : 'sprintf';
|
||||
$msg = $fn($msg, $args);
|
||||
|
@ -37,7 +36,10 @@ function _se($msg, $args=null)
|
|||
// Plural version of _s
|
||||
function _n($msg, $msg_plural, $count)
|
||||
{
|
||||
return CHV\L10n::ngettext($msg, $msg_plural, $count);
|
||||
if($count == 1) {
|
||||
return $msg;
|
||||
}
|
||||
return $msg_plural;
|
||||
}
|
||||
// Same as _n but with echo
|
||||
function _ne($msg, $msg_plural, $count)
|
||||
|
|
|
@ -101,7 +101,6 @@ define('CHV_APP_PATH_LIB_VENDOR', G_APP_PATH . 'vendor/');
|
|||
require_once CHV_APP_PATH_LIB_VENDOR . 'autoload.php';
|
||||
|
||||
define('CHV_APP_PATH_CONTENT_SYSTEM', CHV_APP_PATH_CONTENT . 'system/');
|
||||
define('CHV_APP_PATH_CONTENT_LANGUAGES', CHV_APP_PATH_CONTENT . 'languages/');
|
||||
define('CHV_APP_PATH_CONTENT_LOCKS', CHV_APP_PATH_CONTENT . 'locks/');
|
||||
|
||||
// CHV paths
|
||||
|
@ -114,51 +113,10 @@ define('CHV_PATH_PEAFOWL', G_ROOT_LIB_PATH . 'Peafowl/');
|
|||
|
||||
// subdomain wildcards here
|
||||
$hostnameSetting = G\get_app_setting('hostname') ?: Settings::get('hostname') ?: G\get_domain(G_HTTP_HOST);
|
||||
$isIP = filter_var(G_HTTP_HOST, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) || filter_var(G_HTTP_HOST, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
|
||||
$isWildcardEnabled = Settings::get('lang_subdomain_wildcard') || Settings::get('user_subdomain_wildcard');
|
||||
|
||||
if ($isIP == false && $isWildcardEnabled && ($hostnameSetting != G_HTTP_HOST)) {
|
||||
$hostExplode = explode('.', $hostnameSetting);
|
||||
if ($hostWildcard = $hostExplode[2] ? $hostExplode[0] : null) {
|
||||
define('CHV_HOST_WILDCARD', $hostWildcard);
|
||||
}
|
||||
|
||||
array_shift($hostExplode);
|
||||
$app_g_http_host = implode('.', $hostExplode);
|
||||
$cookieDomain = '.' . (defined('CHV_HOST_WILDCARD') ? $app_g_http_host : G_HTTP_HOST);
|
||||
// Destroy non wilcard domain cookies
|
||||
// No way to avoid this structure
|
||||
if (ini_get('session.cookie_domain') != $cookieDomain) {
|
||||
ini_set('session.cookie_domain', $cookieDomain);
|
||||
if (ini_get('session.cookie_domain') == $cookieDomain) {
|
||||
$cookieWilcard = true;
|
||||
}
|
||||
}
|
||||
$cookie_params = session_get_cookie_params();
|
||||
if (defined('CHV_HOST_WILDCARD') && $cookieWilcard) {
|
||||
define('APP_G_HTTP_HOST', $app_g_http_host);
|
||||
// APP_G_ROOT_URL, APP_G_ROOT_LIB_URL, APP_G_APP_LIB_URL
|
||||
foreach (['G_ROOT_URL', 'G_ROOT_LIB_URL', 'G_APP_LIB_URL'] as $v) {
|
||||
define('APP_' . $v, G\str_replace_first(G_HTTP_HOST, APP_G_HTTP_HOST, constant($v)));
|
||||
}
|
||||
if (getSetting('lang_subdomain_wildcard') && array_key_exists(CHV_HOST_WILDCARD, get_enabled_languages())) {
|
||||
$hostWildcardType = 'lang';
|
||||
L10n::setCookieLang(CHV_HOST_WILDCARD);
|
||||
} elseif (getSetting('user_subdomain_wildcard')) {
|
||||
if ($user = User::getSingle(CHV_HOST_WILDCARD, 'username', false)) {
|
||||
define('CHV_HOST_WILDCARD_USER_ID', $user['user_id']);
|
||||
$hostWildcardType = 'user';
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($hostWildcardType) {
|
||||
define('CHV_HOST_WILDCARD_TYPE', $hostWildcardType);
|
||||
}
|
||||
}
|
||||
|
||||
define('CHV_ROOT_URL', defined('APP_G_ROOT_URL') ? APP_G_ROOT_URL : G_ROOT_URL);
|
||||
define('CHV_HTTP_HOST', defined('APP_G_HTTP_HOST') ? APP_G_HTTP_HOST : G_HTTP_HOST);
|
||||
define('CHV_ROOT_URL_STATIC', defined('CHV_ROOT_CDN_URL') ? CHV_ROOT_CDN_URL : (defined('APP_G_ROOT_URL') ? APP_G_ROOT_URL : G_ROOT_URL));
|
||||
define('CHV_ROOT_URL', G_ROOT_URL);
|
||||
define('CHV_HTTP_HOST', G_HTTP_HOST);
|
||||
define('CHV_ROOT_URL_STATIC', defined('CHV_ROOT_CDN_URL') ? CHV_ROOT_CDN_URL : G_ROOT_URL);
|
||||
|
||||
// Define the app theme
|
||||
define('G_APP_PATH_THEMES', G_APP_PATH . 'themes/');
|
||||
|
|
|
@ -226,7 +226,6 @@ $route = function ($handler) {
|
|||
'banners' => _s('Banners'),
|
||||
'system' => _s('System'),
|
||||
'routing' => _s('Routing'),
|
||||
'languages' => _s('Languages'),
|
||||
'external-storage' => _s('External storage'),
|
||||
'email' => _s('Email'),
|
||||
'social-networks' => _s('Social networks'),
|
||||
|
@ -447,11 +446,6 @@ $route = function ($handler) {
|
|||
'validate' => $_POST['website_name'] ? true : false,
|
||||
'error_msg' => _s('Invalid website name')
|
||||
],
|
||||
'default_language' =>
|
||||
[
|
||||
'validate' => CHV\get_available_languages()[$_POST['default_language']] ? true : false,
|
||||
'error_msg' => _s('Invalid language')
|
||||
],
|
||||
'default_timezone' =>
|
||||
[
|
||||
'validate' => in_array($_POST['default_timezone'], timezone_identifiers_list()),
|
||||
|
@ -785,33 +779,6 @@ $route = function ($handler) {
|
|||
$_POST['upload_enabled_image_formats'] = implode(',', $image_format_enable);
|
||||
}
|
||||
|
||||
// Handle disabled languages
|
||||
if ($_POST['languages_enable'] && is_array($_POST['languages_enable'])) {
|
||||
|
||||
// Push default language
|
||||
if (!in_array($_POST['default_language'], $_POST['languages_enable'])) {
|
||||
$_POST['languages_enable'][] = $_POST['default_language'];
|
||||
}
|
||||
|
||||
$enabled_languages = [];
|
||||
$disabled_languages = CHV\get_available_languages();
|
||||
$_POST['languages_disable'] = [];
|
||||
foreach ($_POST['languages_enable'] as $k) {
|
||||
if (!array_key_exists($k, CHV\get_available_languages())) {
|
||||
continue;
|
||||
}
|
||||
$enabled_languages[$k] = CHV\get_available_languages()[$k];
|
||||
unset($disabled_languages[$k]);
|
||||
}
|
||||
CHV\l10n::setStatic('disabled_languages', $disabled_languages);
|
||||
CHV\l10n::setStatic('enabled_languages', $enabled_languages);
|
||||
unset($_POST['languages_enable']);
|
||||
foreach ($disabled_languages as $k => $v) {
|
||||
$_POST['languages_disable'][] = $k;
|
||||
}
|
||||
$_POST['languages_disable'] = implode(',', $_POST['languages_disable']);
|
||||
}
|
||||
|
||||
// Handle personal mode change
|
||||
if ($_POST['website_mode'] == 'personal' and $_POST['website_mode_personal_routing']) {
|
||||
if ($logged_user['id'] == $_POST['website_mode_personal_uid']) {
|
||||
|
|
|
@ -38,7 +38,7 @@ $route = function ($handler) {
|
|||
}
|
||||
|
||||
// Editable values
|
||||
$allowed_to_edit = ['name', 'username', 'email', 'avatar_filename', 'website', 'background_filename', 'timezone', 'language', 'status', 'is_admin', 'is_manager', 'image_keep_exif', 'image_expiration', 'newsletter_subscribe', 'bio', 'show_nsfw_listings', 'is_private'];
|
||||
$allowed_to_edit = ['name', 'username', 'email', 'avatar_filename', 'website', 'background_filename', 'timezone', 'status', 'is_admin', 'is_manager', 'image_keep_exif', 'image_expiration', 'newsletter_subscribe', 'bio', 'show_nsfw_listings', 'is_private'];
|
||||
|
||||
if (CHV\getSetting('enable_expirable_uploads')) {
|
||||
unset($allowed_to_edit['image_expiration']);
|
||||
|
@ -53,11 +53,6 @@ $route = function ($handler) {
|
|||
$handler->issue404();
|
||||
}
|
||||
|
||||
// Update the lang displayed on change
|
||||
if (in_array('language', $allowed_to_edit) and isset($_POST['language']) and $logged_user['language'] !== $_POST['language'] and $logged_user['id'] == $user['id'] and array_key_exists($_POST['language'], CHV\L10n::getEnabledLanguages())) {
|
||||
CHV\L10n::processTranslation($_POST['language']);
|
||||
}
|
||||
|
||||
// Settings routes
|
||||
$routes = [
|
||||
'account' => _s('Account'),
|
||||
|
@ -191,14 +186,9 @@ $route = function ($handler) {
|
|||
$input_errors['image_expiration'] = _s('Invalid image expiration: %s', $_POST['image_expiration']);
|
||||
}
|
||||
}
|
||||
|
||||
if (!array_key_exists($_POST['language'], CHV\get_available_languages())) {
|
||||
$_POST['language'] = CHV\getSetting('default_language');
|
||||
}
|
||||
if (!in_array($_POST['timezone'], timezone_identifiers_list())) {
|
||||
$_POST['timezone'] = date_default_timezone_get();
|
||||
}
|
||||
|
||||
if (is_array($input_errors) && count($input_errors) > 0) {
|
||||
$is_error = true;
|
||||
}
|
||||
|
|
|
@ -163,7 +163,7 @@ $route = function ($handler) {
|
|||
'username' => $_POST['username'],
|
||||
'email' => $_POST['email'],
|
||||
'timezone' => CHV\getSetting('default_timezone'),
|
||||
'language' => CHV\L10n::getLocale(),
|
||||
'language' => 'en',
|
||||
'status' => CHV\getSetting('require_user_email_confirmation') ? 'awaiting-confirmation' : 'valid'
|
||||
];
|
||||
|
||||
|
|
|
@ -176,14 +176,7 @@
|
|||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<link rel="alternate" hreflang="x-default" href="<?php echo CHV\get_current_url(true, ['lang']); ?>">
|
||||
<?php
|
||||
foreach (G\Handler::getVar('langLinks') as $k => $v) {
|
||||
echo '<link rel="alternate" hreflang="' . $v['hreflang'] . '" href="' . $v['url'] . '">' . "\n";
|
||||
}
|
||||
G\Render\include_theme_file('custom_hooks/head'); ?>
|
||||
|
||||
<?php G\Render\include_theme_file('custom_hooks/head'); ?>
|
||||
</head>
|
||||
|
||||
<?php G\Render\include_theme_file('custom_hooks/head_after'); ?>
|
|
@ -321,33 +321,6 @@ if (is_maintenance() || is_show_consent_screen() || in_array($templateUsed, ['re
|
|||
</li>
|
||||
<?php
|
||||
} ?>
|
||||
<?php
|
||||
if (!CHV\Login::isLoggedUser() and CHV\getSetting('language_chooser_enable')) {
|
||||
?>
|
||||
<li data-nav="language" class="phablet-hide phone-hide pop-btn">
|
||||
<?php
|
||||
// Language selector
|
||||
$langLinks = G\Handler::getVar('langLinks');
|
||||
$cols = min(5, ceil(count($langLinks) / 6)); ?>
|
||||
<span class="top-btn-text"><span class="text"><?php echo CHV\get_language_used()['short_name']; ?></span><span class="arrow-down"></span></span>
|
||||
<div class="pop-box <?php if ($cols > 1) {
|
||||
echo sprintf('pbcols%d ', $cols);
|
||||
} ?>arrow-box arrow-box-top anchor-center">
|
||||
<div class="pop-box-inner pop-box-menu<?php if ($cols > 1) {
|
||||
?> pop-box-menucols<?php
|
||||
} ?>">
|
||||
<ul>
|
||||
<?php
|
||||
foreach ($langLinks as $k => $v) {
|
||||
echo '<li' . (CHV\get_language_used()['code'] == $k ? ' class="current"' : '') . '><a href="' . $v['url'] . '">' . $v['name'] . '</a></li>' . "\n";
|
||||
++$count;
|
||||
} ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<?php
|
||||
} ?>
|
||||
<?php
|
||||
} ?>
|
||||
|
||||
|
|
|
@ -2415,67 +2415,6 @@ function free_version_warning($wrap=true)
|
|||
<?php
|
||||
} ?>
|
||||
|
||||
<?php if (get_settings()['key'] == 'languages') {
|
||||
?>
|
||||
<p><?php echo read_the_docs_settings('languages', _s('languages')); ?></p>
|
||||
<div class="input-label">
|
||||
<label><?php _se('Custom language strings'); ?></label>
|
||||
</div>
|
||||
<div class="input-label">
|
||||
<label for="default_language"><?php _se('Default language'); ?></label>
|
||||
<div class="c5 phablet-c1"><select type="text" name="default_language" id="default_language" class="text-input">
|
||||
<?php
|
||||
foreach (CHV\get_available_languages() as $k => $v) {
|
||||
$selected_lang = $k == CHV\Settings::get('default_language') ? ' selected' : '';
|
||||
echo '<option value="' . $k . '"' . $selected_lang . '>' . $v['name'] . '</option>' . "\n";
|
||||
} ?>
|
||||
</select></div>
|
||||
<div class="input-below"><?php _se('Default base language to use.'); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="input-label">
|
||||
<label for="auto_language"><?php _se('Auto language'); ?></label>
|
||||
<div class="c5 phablet-c1"><select type="text" name="auto_language" id="auto_language" class="text-input">
|
||||
<?php
|
||||
echo CHV\Render\get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], CHV\Settings::get('auto_language')); ?>
|
||||
</select></div>
|
||||
<div class="input-below"><?php _se('Enable this if you want to automatically detect and set the right language for each user.'); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="input-label">
|
||||
<label for="language_chooser_enable"><?php _se('Language chooser'); ?></label>
|
||||
<div class="c5 phablet-c1"><select type="text" name="language_chooser_enable" id="language_chooser_enable" class="text-input" data-combo="language-enable-combo">
|
||||
<?php
|
||||
echo CHV\Render\get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], CHV\Settings::get('language_chooser_enable')); ?>
|
||||
</select></div>
|
||||
<div class="input-below"><?php _se('Enable this if you want to allow language selection.'); ?></div>
|
||||
</div>
|
||||
|
||||
<?php if (count(CHV\get_available_languages()) > 0) {
|
||||
?>
|
||||
<div id="language-enable-combo">
|
||||
<div data-combo-value="1" class="switch-combo<?php if ((get_safe_post() ? get_safe_post()['language_chooser_enable'] == 0 : !CHV\Settings::get('language_chooser_enable'))) {
|
||||
echo ' soft-hidden';
|
||||
} ?>">
|
||||
<div class="checkbox-label">
|
||||
<h4 class="input-label-label"><?php _se('Enabled languages'); ?></h4>
|
||||
<ul class="c20 phablet-c1">
|
||||
<?php
|
||||
foreach (CHV\get_available_languages() as $k => $v) {
|
||||
$lang_flag = array_key_exists($k, CHV\get_enabled_languages()) ? ' checked' : null;
|
||||
echo '<li class="c5 phone-c1 display-inline-block"><label class="display-block" for="languages_enable[' . $k . ']"> <input type="checkbox" name="languages_enable[]" id="languages_enable[' . $k . ']" value="' . $k . '"' . $lang_flag . '>' . $v['name'] . '</label></li>';
|
||||
} ?>
|
||||
</ul>
|
||||
<p class="margin-top-20"><?php _se("Unchecked languages won't be used in your website."); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
} ?>
|
||||
|
||||
<?php
|
||||
} ?>
|
||||
|
||||
<?php if (get_settings()['key'] == 'external-storage') {
|
||||
free_version_warning();
|
||||
} ?>
|
||||
|
|
|
@ -240,25 +240,6 @@
|
|||
|
||||
<hr class="line-separator">
|
||||
</hr>
|
||||
|
||||
<?php if (CHV\getSetting('language_chooser_enable')) {
|
||||
?>
|
||||
<div class="c5 phablet-c1">
|
||||
<div class="input-label">
|
||||
<label for="language"><?php _se('Language'); ?></label>
|
||||
<select name="language" id="language" class="text-input">
|
||||
<?php
|
||||
$enabled_languages = CHV\get_enabled_languages();
|
||||
foreach ($enabled_languages as $k => $v) {
|
||||
$selected_lang = $k == get_user()['language'] ? " selected" : "";
|
||||
echo '<option value="' . $k . '"' . $selected_lang . '>' . $v["name"] . '</option>' . "\n";
|
||||
} ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
} ?>
|
||||
|
||||
<?php
|
||||
|
||||
$zones = timezone_identifiers_list();
|
||||
|
|
63
app/web.php
63
app/web.php
|
@ -49,7 +49,6 @@ if (
|
|||
|| G\datetime_add(Settings::get('update_check_datetimegmt'), 'P1D') < G\datetimegmt()
|
||||
) {
|
||||
try {
|
||||
L10n::setLocale(Settings::get('default_language'));
|
||||
$lock = new Lock('check-updates');
|
||||
if ($lock->create()) {
|
||||
checkUpdates();
|
||||
|
@ -161,38 +160,6 @@ try {
|
|||
G\exception_to_error($e);
|
||||
}
|
||||
}
|
||||
if (Login::isLoggedUser()) {
|
||||
new L10n;
|
||||
}
|
||||
// Global handle ?lang= to have hreflang all across ALL urls
|
||||
if (isset($_GET['lang']) && array_key_exists($_GET['lang'], get_enabled_languages())) {
|
||||
if (Login::isLoggedUser() and Login::getUser()['language'] !== $_GET['lang']) {
|
||||
User::update(Login::getUser()['id'], ['language' => $_GET['lang']]);
|
||||
}
|
||||
// Store selected language in cookie
|
||||
L10n::setCookieLang($_GET['lang']);
|
||||
define('PUSH_LANG', $_GET['lang']);
|
||||
}
|
||||
|
||||
// Lang subdomain wildcard applies only for homepage
|
||||
if (defined('CHV_HOST_WILDCARD_TYPE') && CHV_HOST_WILDCARD_TYPE == 'lang' && $handler->handled_request != '/') {
|
||||
$handler->issue404();
|
||||
}
|
||||
|
||||
if (defined('CHV_HOST_WILDCARD') && defined('CHV_HOST_WILDCARD_TYPE') == false) {
|
||||
G\redirect(G\get_base_url());
|
||||
}
|
||||
|
||||
if (defined('CHV_HOST_WILDCARD_USER_ID') && $handler->request_array[0] !== 'json') {
|
||||
if ($handler->request_array[0] == '/') {
|
||||
$handler->request_array[0] = CHV_HOST_WILDCARD;
|
||||
} else {
|
||||
array_unshift($handler->request_array, CHV_HOST_WILDCARD);
|
||||
}
|
||||
$handler->mapRoute('user', [
|
||||
'id' => CHV_HOST_WILDCARD_USER_ID,
|
||||
]);
|
||||
}
|
||||
|
||||
// Handle agree consent stuff
|
||||
if (array_key_exists('agree-consent', $_GET)) {
|
||||
|
@ -241,27 +208,6 @@ try {
|
|||
G\redirect('login');
|
||||
}
|
||||
|
||||
$langLinks = [];
|
||||
$langToggleUrl = defined('CHV_HOST_WILDCARD_USER_ID') ? get_current_url_wildcard(CHV_HOST_WILDCARD, ['lang']) : G\get_current_url(true, ['lang']);
|
||||
parse_str($_SERVER['QUERY_STRING'], $qs);
|
||||
unset($qs['lang']);
|
||||
$qs = http_build_query($qs);
|
||||
$langToggleUrl = rtrim($langToggleUrl, '/') . ($qs ? '&' : '/?') . 'lang=';
|
||||
foreach (get_enabled_languages() as $k => $v) {
|
||||
$hreflang = strtolower($k);
|
||||
if ($handler->request_array[0] == '/' && getSetting('lang_subdomain_wildcard')) {
|
||||
$langUrl = get_base_url_wildcard(null, $hreflang);
|
||||
} else {
|
||||
$langUrl = $langToggleUrl . $k;
|
||||
}
|
||||
$langLinks[$k] = [
|
||||
'hreflang' => $hreflang,
|
||||
'name' => $v['name'],
|
||||
'url' => $langUrl,
|
||||
];
|
||||
}
|
||||
$handler::setVar('langLinks', $langLinks);
|
||||
|
||||
// Consent screen "accept" URL
|
||||
if ($handler::getCond('show_consent_screen')) {
|
||||
$handler::setVar('consent_accept_url', G\get_current_url() . (parse_url(G\get_current_url(), PHP_URL_QUERY) ? '&' : '/?') . 'agree-consent');
|
||||
|
@ -283,8 +229,7 @@ try {
|
|||
//Settings::setValue('website_search', FALSE);
|
||||
}
|
||||
|
||||
// Keep ?random & ?lang when route is /
|
||||
if ($handler->request_array[0] == '/' and getSetting('website_mode_personal_routing') == '/' and in_array(key($querystr), ['random', 'lang'])) {
|
||||
if ($handler->request_array[0] == '/' and getSetting('website_mode_personal_routing') == '/' and in_array(key($querystr), ['random'])) {
|
||||
$handler->mapRoute('index');
|
||||
// Keep /search/something (global search) when route is /
|
||||
} elseif ($handler->request_array[0] == 'search' and in_array($handler->request_array[1], ['images', 'albums', 'users'])) {
|
||||
|
@ -297,7 +242,7 @@ try {
|
|||
}
|
||||
|
||||
// Inject some stuff for the index page
|
||||
if ($handler->request_array[0] == '/' and !in_array(key($querystr), ['random', 'lang']) and !$handler::getCond('mapped_route')) {
|
||||
if ($handler->request_array[0] == '/' and !in_array(key($querystr), ['random']) and !$handler::getCond('mapped_route')) {
|
||||
$personal_mode_user = User::getSingle(getSetting('website_mode_personal_uid'));
|
||||
if (Settings::get('homepage_title_html') == null) {
|
||||
Settings::setValue('homepage_title_html', $personal_mode_user['name']);
|
||||
|
@ -548,10 +493,6 @@ try {
|
|||
if (isset($list_params) && $list_params['page_show']) {
|
||||
$handler::setVar('doctitle', $handler::getVar('doctitle') . ' | ' . _s('Page %s', $list_params['page_show']));
|
||||
}
|
||||
if (defined('PUSH_LANG')) {
|
||||
$handler::setVar('doctitle', $handler::getVar('doctitle') . ' (' . get_enabled_languages()[PUSH_LANG]['name'] . ')');
|
||||
}
|
||||
|
||||
$handler::setVar('safe_html_website_name', G\safe_html(getSetting('website_name')));
|
||||
$handler::setVar('safe_html_doctitle', G\safe_html($handler::getVar('doctitle')));
|
||||
if ($handler::getVar('pre_doctitle')) {
|
||||
|
|
|
@ -1,634 +0,0 @@
|
|||
<?php
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
|
||||
G\ library
|
||||
https://g.chevereto.com
|
||||
|
||||
@author Rodolfo Berrios A. <http://rodolfoberrios.com/>
|
||||
|
||||
Copyright (c) Rodolfo Berrios <inbox@rodolfoberrios.com> All rights reserved.
|
||||
|
||||
Licensed under the MIT license
|
||||
http://opensource.org/licenses/MIT
|
||||
|
||||
--------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* This class uses code that belongs or was taken from the following:
|
||||
*
|
||||
* David Soria Parra <sn_@gmx.net>
|
||||
* https://github.com/dsp/PHP-Gettext
|
||||
*
|
||||
* Jyxo, s.r.o.
|
||||
* https://github.com/jyxo/php/tree/master/Jyxo/Gettext
|
||||
*
|
||||
* WordPress
|
||||
* https://wordpress.org/
|
||||
*/
|
||||
|
||||
/**
|
||||
* class.gettext.php
|
||||
* This class is a stand-alone implementation of gettext.
|
||||
* It works with .po and .mo files and saves the result in a cached static file (by default)
|
||||
*/
|
||||
|
||||
namespace G;
|
||||
|
||||
use Exception;
|
||||
|
||||
class Gettext
|
||||
{
|
||||
|
||||
// Magic words in the MO header
|
||||
const MO_MAGIC_1 = -569244523; //0xde120495
|
||||
const MO_MAGIC_2 = -1794895138; //0x950412de
|
||||
|
||||
// Cache stuff
|
||||
const CACHE_FILE_SUFFIX = '.cache.php';
|
||||
|
||||
protected static $default_options = ['cache' => true, 'cache_type' => 'file', 'cache_filepath' => null, 'cache_header' => true];
|
||||
protected $source_file;
|
||||
protected $parsed = false;
|
||||
|
||||
public $translation_table = [];
|
||||
public $translation_plural = null;
|
||||
public $translation_header = null;
|
||||
|
||||
public function __construct($options=[])
|
||||
{
|
||||
$this->options = array_merge(static::$default_options, (array)$options);
|
||||
$this->source_file = $this->options['file'];
|
||||
|
||||
if (!@is_readable($this->source_file)) {
|
||||
throw new GettextException("Can't read source file", 100);
|
||||
}
|
||||
|
||||
$file_extension = pathinfo($this->source_file, PATHINFO_EXTENSION);
|
||||
// Only allow MO and PO
|
||||
if (!in_array($file_extension, ['mo', 'po'])) {
|
||||
throw new GettextException('Invalid file source. This only works with .mo and .po files', 101);
|
||||
}
|
||||
|
||||
$this->parse_method = strtoupper($file_extension);
|
||||
|
||||
if ($this->options['cache']) {
|
||||
if ($this->options['cache_filepath']) {
|
||||
// Custom whatever filepath cache
|
||||
$this->cache_file = $this->options['cache_filepath'];
|
||||
} else {
|
||||
// Default cache filepath.cache.php
|
||||
$this->cache_file = $this->source_file . self::CACHE_FILE_SUFFIX;
|
||||
}
|
||||
if (!$this->getCache()) { // No cache was found
|
||||
$this->parseFile();
|
||||
}
|
||||
} else {
|
||||
$this->parseFile();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a translated string
|
||||
*
|
||||
* If the translation is not found, the original message will be returned.
|
||||
*
|
||||
* @param String $msg The message to search for
|
||||
* @return translated string
|
||||
*/
|
||||
public function gettext($msg)
|
||||
{
|
||||
if (empty($msg)) {
|
||||
return null;
|
||||
}
|
||||
if (!$this->parsed) {
|
||||
$this->parseFile();
|
||||
}
|
||||
|
||||
if ($this->mustFixQuotes()) {
|
||||
$msg = $this->fixQuotes($msg, 'escape');
|
||||
}
|
||||
|
||||
$translated = $msg;
|
||||
|
||||
if (array_key_exists($msg, $this->translation_table)) {
|
||||
$translated = $this->translation_table[$msg][0];
|
||||
$translated = !empty($translated) ? $translated : $msg;
|
||||
}
|
||||
|
||||
if ($this->mustFixQuotes()) {
|
||||
$translated = $this->fixQuotes($translated, 'unescape');
|
||||
}
|
||||
|
||||
return $translated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a translated string in it's plural form
|
||||
*
|
||||
* Returns the given $count (e.g second, third,...) plural form of the
|
||||
* given string. If the id is not found and $num == 1 $msg is returned,
|
||||
* otherwise $msg_plural
|
||||
*
|
||||
* @param String $msg The message to search for
|
||||
* @param String $msg_plural A fallback plural form
|
||||
* @param Integer $count Which plural form
|
||||
*
|
||||
* @return translated string
|
||||
*/
|
||||
public function ngettext($msg, $msg_plural, $count=0)
|
||||
{
|
||||
if (empty($msg) or empty($msg_plural) or !is_numeric($count)) {
|
||||
return $msg;
|
||||
}
|
||||
if (!$this->parsed) {
|
||||
$this->parseFile();
|
||||
}
|
||||
|
||||
if ($this->mustFixQuotes()) {
|
||||
$msg = $this->fixQuotes($msg, 'escape');
|
||||
$msg_plural = $this->fixQuotes($msg_plural, 'escape');
|
||||
}
|
||||
|
||||
$translated = $count == 1 ? $msg : $msg_plural; // Failover
|
||||
|
||||
if (array_key_exists($msg, $this->translation_table)) {
|
||||
$plural_index = $this->getPluralIndex($count);
|
||||
$index_id = $plural_index !== false ? $plural_index : ($count - 1);
|
||||
$table = $this->translation_table[$msg];
|
||||
if (array_key_exists($index_id, $table)) {
|
||||
$translated = $table[$index_id];
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->mustFixQuotes()) {
|
||||
$translated = $this->fixQuotes($translated, 'unescape');
|
||||
}
|
||||
|
||||
return $translated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the source file
|
||||
* If cache is enabled it will try to cache the result
|
||||
*/
|
||||
private function parseFile()
|
||||
{
|
||||
$parseFn = 'parse' . $this->parse_method . 'File';
|
||||
try {
|
||||
$this->$parseFn();
|
||||
$this->parsed = true;
|
||||
if ($this->options['cache']) {
|
||||
try {
|
||||
$this->cache('file');
|
||||
} catch (Exception $e) {
|
||||
error_log($e); // Don't scream for cache issues
|
||||
}
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the MO file header and returns the table
|
||||
* offsets as described in the file header.
|
||||
*
|
||||
* If an exception occurred, null is returned. This is intentionally
|
||||
* as we need to get close to ext/gettext behaviour.
|
||||
*
|
||||
* @param resource $fp The open file handler to the MO file
|
||||
*
|
||||
* @return array offset
|
||||
*/
|
||||
private function parseMOHeader($fp)
|
||||
{
|
||||
$data = fread($fp, 8);
|
||||
if (!$data) {
|
||||
throw new GettextException("Can't fread(8) file for reading", 202);
|
||||
}
|
||||
$header = unpack('lmagic/lrevision', $data);
|
||||
if (self::MO_MAGIC_1 != $header['magic'] && self::MO_MAGIC_2 != $header['magic']) {
|
||||
return null;
|
||||
}
|
||||
if (0 != $header['revision']) {
|
||||
return null;
|
||||
}
|
||||
$data = fread($fp, 4 * 5);
|
||||
if (!$data) {
|
||||
throw new GettextException("Can't fread(4 * 5) file for reading", 203);
|
||||
}
|
||||
$offsets = unpack('lnum_strings/lorig_offset/' . 'ltrans_offset/lhash_size/lhash_offset', $data);
|
||||
return $offsets;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse and returns the string offsets in a a table. Two table can be found in
|
||||
* a mo file. The table with the translations and the table with the original
|
||||
* strings. Both contain offsets to the strings in the file.
|
||||
*
|
||||
* If an exception occurred, null is returned. This is intentionally
|
||||
* as we need to get close to ext/gettext behaviour.
|
||||
*
|
||||
* @param resource $fp The open file handler to the MO file
|
||||
* @param int $offset The offset to the table that should be parsed
|
||||
* @param int $num The number of strings to parse
|
||||
*
|
||||
* @return Array of offsets
|
||||
*/
|
||||
private function parseMOTableOffset($fp, $offset, $num)
|
||||
{
|
||||
if (fseek($fp, $offset, SEEK_SET) < 0) {
|
||||
return null;
|
||||
}
|
||||
$table = [];
|
||||
for ($i=0; $i<$num; $i++) {
|
||||
$data = fread($fp, 8);
|
||||
$table[] = unpack('lsize/loffset', $data);
|
||||
}
|
||||
return $table;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a string as referenced by an table. Returns an
|
||||
* array with the actual string.
|
||||
*
|
||||
* @param resource $fp The open file handler to the MO fie
|
||||
* @param array $entry The entry as parsed by parseMOTableOffset()
|
||||
*
|
||||
* @return Parsed string
|
||||
*/
|
||||
private function parseMOEntry($fp, $entry)
|
||||
{
|
||||
if (fseek($fp, $entry['offset'], SEEK_SET) < 0) {
|
||||
return null;
|
||||
}
|
||||
if ($entry['size'] > 0) {
|
||||
return fread($fp, $entry['size']);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the plural data found in the language
|
||||
*
|
||||
* @param string $header with nplurals and plural declaration
|
||||
*/
|
||||
private function parsePluralData($header)
|
||||
{
|
||||
// Base english-like plural languages
|
||||
$nplurals = 2;
|
||||
$formula = '(n != 1)';
|
||||
// Detect plural data. If nothing found then use general plural handling
|
||||
if (preg_match('/\s*nplurals\s*\=\s*(\d+)\s*\;\s*plural\s*\=\s*(\({0,1}.*\){0,1})\s*\;/', $header, $matches)) {
|
||||
$nplurals = (int) $matches[1];
|
||||
if (preg_match('/^([!n\=\<\>\&\|\?\:%\s\(\)\d]+)$/', $matches[2]) === true) {
|
||||
$formula = $matches[2];
|
||||
}
|
||||
}
|
||||
|
||||
// Fix the plural formula
|
||||
$formula = $this->parenthesizePluralFormula($formula);
|
||||
|
||||
// Generate the translation_plural array
|
||||
$function = str_replace('n', '$n', $formula);
|
||||
|
||||
// Stock everything
|
||||
$this->translation_plural = [
|
||||
'nplurals' => $nplurals,
|
||||
'function' => $function,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds parentheses to the inner parts of ternary operators in
|
||||
* plural formulas, because PHP evaluates ternary operators from left to right
|
||||
*
|
||||
* @param string $formula the expression without parentheses
|
||||
* @return string the formula with parentheses added
|
||||
*/
|
||||
private function parenthesizePluralFormula($formula)
|
||||
{
|
||||
$formula .= ';';
|
||||
$return = '';
|
||||
$depth = 0;
|
||||
for ($i = 0; $i < strlen($formula); ++$i) {
|
||||
$char = $formula[$i];
|
||||
switch ($char) {
|
||||
case '?':
|
||||
$return .= ' ? (';
|
||||
$depth++;
|
||||
break;
|
||||
case ':':
|
||||
$return .= ') : (';
|
||||
break;
|
||||
case ';':
|
||||
$return .= str_repeat(')', $depth) . ';';
|
||||
$depth = 0;
|
||||
break;
|
||||
default:
|
||||
$return .= $char;
|
||||
}
|
||||
}
|
||||
$return = trim(rtrim($return, ';')); // Cleaning
|
||||
$return = preg_replace('/\s+/S', ' ', $return); // Extra spaces
|
||||
$return = str_replace('( ', '(', str_replace(' )', ')', $return)); // Remove extra space around ()
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get plural index
|
||||
*
|
||||
* @param int msg count
|
||||
* @return int plural index
|
||||
*/
|
||||
public function getPluralIndex($count)
|
||||
{
|
||||
if (!is_callable($this->translation_plural['callable'])) {
|
||||
// So, this is how you interpeter this thing
|
||||
$function = $this->translation_plural['function'];
|
||||
$nplurals = $this->translation_plural['nplurals'];
|
||||
$evil = "\$callable = function(\$n) {\$index = (int)$function; return \$index < $nplurals ? \$index : ($nplurals - 1);};";
|
||||
eval($evil);
|
||||
$this->translation_plural['callable'] = $callable;
|
||||
}
|
||||
return call_user_func($this->translation_plural['callable'], $count);
|
||||
}
|
||||
|
||||
private function parseHeader($header)
|
||||
{
|
||||
$headerTable = [];
|
||||
$lines = array_map('trim', explode("\n", $header));
|
||||
foreach ($lines as $line) {
|
||||
if (starts_with('msgid', $line) or starts_with('msgstr', $line)) {
|
||||
continue;
|
||||
}
|
||||
$line = preg_replace('#\"(.*)\"#', '$1', $line);
|
||||
$line = rtrim($line, '\n');
|
||||
$parts = explode(':', $line, 2);
|
||||
if (!isset($parts[1])) {
|
||||
continue;
|
||||
} // Skip empty keys
|
||||
$headerTable[trim($parts[0])] = trim($parts[1]);
|
||||
}
|
||||
return $headerTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a PO entry chunk
|
||||
* @param Array $chunk
|
||||
*
|
||||
* @return Array of translation table
|
||||
*/
|
||||
private function parsePOEntry($chunk)
|
||||
{
|
||||
$chunks = explode("\n", $chunk);
|
||||
|
||||
foreach ($chunks as $chunk) {
|
||||
|
||||
// Skip #: and empty chunks
|
||||
if (starts_with('#', $chunk) or is_null($chunk)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Parse the plural forms
|
||||
if (is_null($this->translation_plural) and starts_with('"Plural-Forms:', $chunk)) {
|
||||
$this->parsePluralData($chunk);
|
||||
}
|
||||
|
||||
// Nasty regexes
|
||||
if (preg_match('/^msgid "(.*)"/', $chunk, $matches)) {
|
||||
$msgid = $matches[1];
|
||||
} elseif (preg_match('/^msgstr "(.*)"/', $chunk, $matches)) {
|
||||
$msgstr = $matches[1];
|
||||
} elseif (preg_match('/^#~ msgid "(.*)"/', $chunk, $matches)) {
|
||||
//$obsolete = TRUE;
|
||||
$msgid = $matches[1];
|
||||
} elseif (preg_match('/^#~ msgstr "(.*)"/', $chunk, $matches)) {
|
||||
//$obsolete = TRUE;
|
||||
$msgstr = $matches[1];
|
||||
} elseif (preg_match('/^(#\: .+)$/', $chunk, $matches)) {
|
||||
$location .= $matches[1];
|
||||
} elseif (preg_match('/^#\, fuzzy/', $chunk)) {
|
||||
$fuzzy = true;
|
||||
} elseif (preg_match('/^msgid_plural "(.*)"/', $chunk, $matches)) {
|
||||
$plural = $matches[1];
|
||||
//$msgstr = [];
|
||||
} elseif (preg_match('/^msgstr\[([0-9])+\] "(.*)"/', $chunk, $matches)) {
|
||||
if ($matches[2] == '') {
|
||||
continue;
|
||||
}
|
||||
if (!is_array($msgstr)) {
|
||||
$msgstr = [];
|
||||
}
|
||||
$msgstr[$matches[1]] = $matches[2];
|
||||
}
|
||||
}
|
||||
|
||||
if ($msgstr == '') {
|
||||
$msgstr = null;
|
||||
}
|
||||
|
||||
if (empty($msgid)) {
|
||||
return null;
|
||||
} else {
|
||||
return [
|
||||
'msgid' => $msgid,
|
||||
'msgstr'=> is_null($msgstr) ? null : (array)$msgstr
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Parse binary .mo file
|
||||
*/
|
||||
private function parseMOFile()
|
||||
{
|
||||
$filesize = filesize($this->source_file);
|
||||
if ($filesize < 4 * 7) {
|
||||
return;
|
||||
}
|
||||
|
||||
$fp = @fopen($this->source_file, 'rb');
|
||||
if (!$fp) {
|
||||
throw new GettextException("Can't fopen file for reading", 200);
|
||||
}
|
||||
|
||||
$offsets = $this->parseMOHeader($fp);
|
||||
|
||||
if (null == $offsets || $filesize < 4 * ($offsets['num_strings'] + 7)) {
|
||||
fclose($fp);
|
||||
return;
|
||||
}
|
||||
|
||||
$transTable = array();
|
||||
$table = $this->parseMOTableOffset($fp, $offsets['trans_offset'], $offsets['num_strings']);
|
||||
if (null == $table) {
|
||||
fclose($fp);
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($table as $idx => $entry) {
|
||||
$transTable[$idx] = $this->parseMOEntry($fp, $entry);
|
||||
}
|
||||
|
||||
$this->translation_header = $this->parseHeader(reset($transTable));
|
||||
|
||||
// Parse plural data
|
||||
$this->parsePluralData($this->translation_header['Plural-Forms']);
|
||||
|
||||
$table = $this->parseMOTableOffset($fp, $offsets['orig_offset'], $offsets['num_strings']);
|
||||
|
||||
foreach ($table as $idx => $entry) {
|
||||
$entry = $this->parseMOEntry($fp, $entry);
|
||||
$formes = explode(chr(0), $entry);
|
||||
$translation = explode(chr(0), $transTable[$idx]);
|
||||
foreach ($formes as $form) {
|
||||
if (empty($form)) {
|
||||
continue;
|
||||
}
|
||||
$this->translation_table[$form] = $translation;
|
||||
}
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse text based .po file
|
||||
*/
|
||||
private function parsePOFile()
|
||||
{
|
||||
$linenumber = 0;
|
||||
$chunks = [];
|
||||
$file = file($this->source_file);
|
||||
if (!$file) {
|
||||
throw new GettextException("Can't read file into an array", 204);
|
||||
}
|
||||
foreach ($file as $line) {
|
||||
if ($line == "\n" or $line == "\r\n") {
|
||||
++$linenumber;
|
||||
} else {
|
||||
if (!array_key_exists($linenumber, $chunks)) {
|
||||
$chunks[$linenumber] = '';
|
||||
}
|
||||
$chunks[$linenumber] .= $line;
|
||||
}
|
||||
}
|
||||
$this->translation_header = $this->parseHeader(reset($chunks));
|
||||
|
||||
foreach ($chunks as $chunk) {
|
||||
$entry = $this->parsePOEntry($chunk);
|
||||
if (!$entry['msgid'] or is_null($entry['msgstr'])) {
|
||||
continue;
|
||||
}
|
||||
$this->translation_table[$entry['msgid']] = $entry['msgstr'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get cached results (cached file)
|
||||
*
|
||||
* @return bool cache status
|
||||
*/
|
||||
private function getCache()
|
||||
{
|
||||
if (@is_readable($this->cache_file)) {
|
||||
// Outdated cache?
|
||||
$source_mtime = filemtime($this->source_file);
|
||||
$cache_mtime = filemtime($this->cache_file);
|
||||
if ($source_mtime and $cache_mtime and $source_mtime > $cache_mtime) {
|
||||
return false;
|
||||
}
|
||||
if (!@include_once($this->cache_file)) {
|
||||
return false;
|
||||
}
|
||||
if (is_array($translation_table)) {
|
||||
$this->translation_table = $translation_table;
|
||||
if (is_array($translation_plural)) {
|
||||
$this->translation_plural = $translation_plural;
|
||||
}
|
||||
if (is_array($translation_header)) {
|
||||
$this->translation_header = $translation_header;
|
||||
}
|
||||
$this->is_cached = true;
|
||||
$this->parsed = true;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
$this->is_cached = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cache the translation results into a file
|
||||
*/
|
||||
private function cache()
|
||||
{
|
||||
if (!@is_dir(dirname($this->cache_file))) {
|
||||
throw new GettextException("Target cache dir doesn't exists", 400);
|
||||
}
|
||||
if (($fh = @fopen($this->cache_file, 'w')) === false) {
|
||||
throw new GettextException("Can't fopen cache file for writing", 401);
|
||||
}
|
||||
// Cache contents, closer as possible to the mo/po scheme
|
||||
$contents = '<?php' . "\n";
|
||||
|
||||
if ($this->options['cache_header']) {
|
||||
if (!is_null($this->translation_header)) {
|
||||
$contents .= '$translation_header = ' . var_export($this->translation_header, true) . ';' . "\n";
|
||||
}
|
||||
if (!is_null($this->translation_plural)) {
|
||||
$translation_plural = $this->translation_plural;
|
||||
unset($translation_plural['callable']); // Don't cache the callable reference
|
||||
$contents .= '$translation_plural = ' . var_export($translation_plural, true) . ';' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Note that we keep the same "quotes" used by the PO file scheme
|
||||
$contents .= '$translation_table = [';
|
||||
foreach ($this->translation_table as $k => $v) {
|
||||
$k = $this->parse_method == 'PO' ? $k : $this->fixQuotes($k, 'escape');
|
||||
$contents .= "\n" . ' "' . $k . '" => [';
|
||||
foreach ($v as $kk => $vv) {
|
||||
$kk = $this->parse_method == 'PO' ? $kk : $this->fixQuotes($kk, 'escape');
|
||||
$vv = $this->parse_method == 'PO' ? $vv : $this->fixQuotes($vv, 'escape');
|
||||
$contents .= "\n" . ' ' . $kk . ' => "' . $vv . '",';
|
||||
}
|
||||
$contents .= "\n". ' ],';
|
||||
}
|
||||
$contents .= "\n" . '];' . "\n" . '?>';
|
||||
|
||||
if (!fwrite($fh, $contents)) {
|
||||
throw new GettextException("Can't save translation results to cache file", 402);
|
||||
}
|
||||
@touch($this->source_file); // Make sure to use the correct filemtime next time
|
||||
fclose($fh);
|
||||
}
|
||||
|
||||
private function fixQuotes($msg, $action=null)
|
||||
{
|
||||
if ($this->is_cached) {
|
||||
return $msg;
|
||||
}
|
||||
switch ($action) {
|
||||
case 'escape':
|
||||
$msg = str_replace('"', '\"', $msg);
|
||||
break;
|
||||
case 'unescape':
|
||||
$msg = str_replace('\"', '"', $msg);
|
||||
break;
|
||||
}
|
||||
return $msg;
|
||||
}
|
||||
|
||||
private function mustFixQuotes()
|
||||
{
|
||||
return $this->is_cached or $this->parse_method == 'PO';
|
||||
}
|
||||
}
|
||||
|
||||
class GettextException extends Exception
|
||||
{
|
||||
}
|
Loading…
Reference in New Issue