Commit e46a8704 authored by Simonas's avatar Simonas

pre release 1.5.0

parent ac091624
...@@ -168,7 +168,7 @@ services: ...@@ -168,7 +168,7 @@ services:
# - wp-init.sh # - wp-init.sh
command: > command: >
/bin/sh -c ' /bin/sh -c '
sleep 60; sleep 30;
echo "WP CLI init"; echo "WP CLI init";
wp core update --force; wp core update --force;
...@@ -185,11 +185,11 @@ services: ...@@ -185,11 +185,11 @@ services:
wp plugin install pods --version=2.7.12 --activate-network; wp plugin install pods --version=2.7.12 --activate-network;
# wp plugin update pods --version=2.7.12; # wp plugin update pods --version=2.7.12;
wp plugin install polylang --version=2.5.4; wp plugin install polylang --version=2.6 --activate-network;
# wp plugin update polylang --version=2.5.4; # wp plugin update polylang --version=2.6;
wp plugin install wordpress-seo --version=11.4 --activate-network; wp plugin install wordpress-seo --version=11.5 --activate-network;
# wp plugin update wordpress-seo --version=11.4; # wp plugin update wordpress-seo --version=11.5;
wp plugin update akismet --version=4.1.2; wp plugin update akismet --version=4.1.2;
wp plugin uninstall hello; wp plugin uninstall hello;
......
...@@ -25,6 +25,18 @@ location /wp-json/api/v1/contacts { ...@@ -25,6 +25,18 @@ location /wp-json/api/v1/contacts {
auth_basic_user_file /etc/nginx/.htpasswd; auth_basic_user_file /etc/nginx/.htpasswd;
} }
location = /wp-admin/admin-post.php {
access_log /var/log/nginx/postdata.log postdata;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ \.php$ { location ~ \.php$ {
try_files $uri =404; try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_split_path_info ^(.+\.php)(/.+)$;
......
...@@ -62,6 +62,11 @@ http { ...@@ -62,6 +62,11 @@ http {
'$status $body_bytes_sent "$http_referer" ' '$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; '"$http_user_agent" "$http_x_forwarded_for"';
log_format postdata '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio" $request_time "$request_body"';
# Log access to this file # Log access to this file
# This is only used when you don't override it on a server{} level # This is only used when you don't override it on a server{} level
# Default: logs/access.log combined # Default: logs/access.log combined
...@@ -157,9 +162,11 @@ http { ...@@ -157,9 +162,11 @@ http {
font/woff2 "*"; font/woff2 "*";
} }
# Include files in the conf.d folder. client_max_body_size 10M;
# server{} configuration files should be placed in the conf.d folder.
# The configurations should be disabled by prefixing files with a dot. # Include files in the conf.d folder.
# server{} configuration files should be placed in the conf.d folder.
# The configurations should be disabled by prefixing files with a dot.
include h5bp/ssl/ocsp_stapling.conf; include h5bp/ssl/ocsp_stapling.conf;
include h5bp/ssl/policy_modern.conf; include h5bp/ssl/policy_modern.conf;
......
msgid ""
msgstr ""
"Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-01 19:14+0000\n"
"PO-Revision-Date: 2019-05-01 19:17+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: German\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.1.1"
#: public/class-biuro-contacts-public.php:151
msgid "This field is required"
msgstr "Dieses Feld wird benötigt"
#: public/class-biuro-contacts-public.php:162
msgid "Phone or email field is required"
msgstr "Telefon oder E-Mail-Feld ist erforderlich"
#: public/class-biuro-contacts-public.php:173
msgid "Incorrect phone number"
msgstr "Falsche Telefonnummer"
#: public/class-biuro-contacts-public.php:183
msgid "Email or phone field is required"
msgstr "E-Mail- oder Telefonfeld ist erforderlich"
#: public/class-biuro-contacts-public.php:190
msgid "Email format is incorrect"
msgstr "Das E-Mail-Format ist falsch"
#: public/class-biuro-contacts-public.php:205
msgid "You have to agree with conditions"
msgstr "Sie müssen den Bedingungen zustimmen"
#: public/partials/biuro-contacts-public--employees--step-2.php:23
#: public/partials/biuro-contacts-public--position--step-2.php:98
msgid "City"
msgstr "Stadt"
#: public/partials/biuro-contacts-public--employees--step-2.php:30
#: public/partials/biuro-contacts-public--position--step-2.php:105
#: public/partials/biuro-contacts-public--employers--step-2.php:30
msgid "Message"
msgstr "Nachricht"
#: public/partials/biuro-contacts-public--employees--step-2.php:37
#: public/partials/biuro-contacts-public--position--step-2.php:112
msgid "CV"
msgstr "CV anhängen"
#: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employees--step-1.php:78
#: public/partials/biuro-contacts-public--employers--step-1.php:78
#: public/partials/biuro-contacts-public--employers--step-2.php:47
msgid "Submit"
msgstr "Schicken"
#: public/partials/biuro-contacts-public--position--step-2.php:60
#: public/partials/biuro-contacts-public--employees--step-1.php:41
#: public/partials/biuro-contacts-public--employers--step-1.php:41
msgid "Name, surname"
msgstr "Name, Nachname"
#: public/partials/biuro-contacts-public--position--step-2.php:73
#: public/partials/biuro-contacts-public--employees--step-1.php:53
#: public/partials/biuro-contacts-public--employers--step-1.php:53
msgid "Phone no."
msgstr "Telefon"
#: public/partials/biuro-contacts-public--position--step-2.php:86
#: public/partials/biuro-contacts-public--employees--step-1.php:65
#: public/partials/biuro-contacts-public--employers--step-1.php:65
msgid "Email address"
msgstr "E-Mail Adresse"
#: public/partials/biuro-contacts-public--position--step-2.php:121
#: public/partials/biuro-contacts-public--employees--step-1.php:85
msgid ""
"I agree, that my personal data will be used for offering me a job. For more "
"detailed information view our <a href=\"https://biuro.eu/privacy-en.html\" "
"target=\"_blank\" rel=\"noopener\">Personal Data Protection Policy.</a>"
msgstr ""
"Ich bin damit einverstanden, dass meine persönlichen Daten verwendet werden, "
"um mir einen Job anzubieten. Ausführliche Informationen finden <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Sie in unserer Datenschutzerklärung.</a>"
#: public/partials/biuro-contacts-public--position--step-2.php:132
#: public/partials/biuro-contacts-public--position--step-1.php:24
msgid "Apply"
msgstr "Sich bewerben"
#: public/partials/biuro-contacts-public--position.php:64
msgid "Thank You! Your data was send successfully."
msgstr "Danke dir! Ihre Daten wurden erfolgreich gesendet."
#: public/partials/biuro-contacts-public--position.php:65
#: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91
#: public/partials/biuro-contacts-public--employers.php:58
#: public/partials/biuro-contacts-public--employers.php:90
msgid "OK"
msgstr "OK"
#: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you."
msgstr "Vielen Dank, wir haben erfolgreich Daten über Sie erhalten."
#: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV"
msgstr ""
"Sie können Informationen über sich selbst hinzufügen, indem Sie eine Stadt, "
"eine Nachricht oder einen Lebenslauf hinzufügen"
#: public/partials/biuro-contacts-public--employees.php:90
#: public/partials/biuro-contacts-public--employers.php:89
msgid "Thank You! The information has been successfully supplemented."
msgstr "Danke dir! Die Informationen wurden erfolgreich ergänzt."
#: public/partials/biuro-contacts-public--employers.php:56
msgid "Thank You for contacting!"
msgstr "Vielen Dank für Ihre Kontaktaufnahme!"
#: public/partials/biuro-contacts-public--employers.php:57
msgid "You request was send successfully, we will contact You."
msgstr ""
"Ihre Anfrage wurde erfolgreich versendet, wir werden uns mit Ihnen in "
"Verbindung setzen."
#: public/partials/biuro-contacts-public--employers--step-1.php:85
msgid ""
"I agree, that my personal data will be used for communicating during the pre-"
"contractual relationship. For more detailed information view our <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Personal Data Protection Policy.</a>"
msgstr ""
"Ich bin damit einverstanden, dass meine persönlichen Daten im Rahmen der "
"vorvertraglichen Beziehung zur Kommunikation verwendet werden. Ausführliche "
"Informationen finden Sie in unserer <a href=\"https://biuro.eu/privacy-en."
"html\" target=\"_blank\" rel=\"noopener\"> Datenschutzerklärung.</a>\n"
#: public/partials/biuro-contacts-public--employers--step-2.php:23
msgid "Company"
msgstr "Unternehmen"
#. Name of the plugin
msgid "Biuro Contacts"
msgstr "Biuro Contacts"
#. Description of the plugin
msgid ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
msgstr ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
#. URI of the plugin
#. Author URI of the plugin
msgid "https://www.biuro.lt"
msgstr "https://www.biuro.lt"
#. Author of the plugin
msgid "Biuro"
msgstr "Biuro"
msgid ""
msgstr ""
"Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-02 11:49+0000\n"
"PO-Revision-Date: 2019-05-02 11:49+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: \n"
"Language: en_US\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.1.1"
#: public/class-biuro-contacts-public.php:151
msgid "This field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:162
msgid "Phone or email field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:173
msgid "Incorrect phone number"
msgstr ""
#: public/class-biuro-contacts-public.php:183
msgid "Email or phone field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:190
msgid "Email format is incorrect"
msgstr ""
#: public/class-biuro-contacts-public.php:205
msgid "You have to agree with conditions"
msgstr ""
#: public/partials/biuro-contacts-public--employees--step-2.php:23
#: public/partials/biuro-contacts-public--position--step-2.php:98
msgid "City"
msgstr ""
#: public/partials/biuro-contacts-public--employees--step-2.php:30
#: public/partials/biuro-contacts-public--position--step-2.php:105
#: public/partials/biuro-contacts-public--employers--step-2.php:30
msgid "Message"
msgstr ""
#: public/partials/biuro-contacts-public--employees--step-2.php:37
#: public/partials/biuro-contacts-public--position--step-2.php:112
msgid "CV"
msgstr ""
#: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employees--step-1.php:78
#: public/partials/biuro-contacts-public--employers--step-1.php:78
#: public/partials/biuro-contacts-public--employers--step-2.php:47
msgid "Submit"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:60
#: public/partials/biuro-contacts-public--employees--step-1.php:41
#: public/partials/biuro-contacts-public--employers--step-1.php:41
msgid "Name, surname"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:73
#: public/partials/biuro-contacts-public--employees--step-1.php:53
#: public/partials/biuro-contacts-public--employers--step-1.php:53
msgid "Phone no."
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:86
#: public/partials/biuro-contacts-public--employees--step-1.php:65
#: public/partials/biuro-contacts-public--employers--step-1.php:65
msgid "Email address"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:121
#: public/partials/biuro-contacts-public--employees--step-1.php:85
msgid ""
"I agree, that my personal data will be used for offering me a job. For more "
"detailed information view our <a href=\"https://biuro.eu/privacy-en.html\" "
"target=\"_blank\" rel=\"noopener\">Personal Data Protection Policy.</a>"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:132
#: public/partials/biuro-contacts-public--position--step-1.php:24
msgid "Apply"
msgstr ""
#: public/partials/biuro-contacts-public--position.php:64
msgid "Thank You! Your data was send successfully."
msgstr ""
#: public/partials/biuro-contacts-public--position.php:65
#: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91
#: public/partials/biuro-contacts-public--employers.php:58
#: public/partials/biuro-contacts-public--employers.php:90
msgid "OK"
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you."
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV"
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:90
#: public/partials/biuro-contacts-public--employers.php:89
msgid "Thank You! The information has been successfully supplemented."
msgstr ""
#: public/partials/biuro-contacts-public--employers.php:56
msgid "Thank You for contacting!"
msgstr ""
#: public/partials/biuro-contacts-public--employers.php:57
msgid "You request was send successfully, we will contact You."
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-1.php:85
msgid ""
"I agree, that my personal data will be used for communicating during the pre-"
"contractual relationship. For more detailed information view our <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Personal Data Protection Policy.</a>"
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-2.php:23
msgid "Company"
msgstr ""
#. Name of the plugin
msgid "Biuro Contacts"
msgstr ""
#. Description of the plugin
msgid ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
msgstr ""
#. URI of the plugin
#. Author URI of the plugin
msgid "https://www.biuro.lt"
msgstr ""
#. Author of the plugin
msgid "Biuro"
msgstr ""
msgid ""
msgstr ""
"Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-30 14:01+0000\n"
"PO-Revision-Date: 2019-05-30 14:01+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: \n"
"Language: en_US\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.2.1"
#: public/class-biuro-contacts-public.php:151
msgid "This field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:162
msgid "Phone or email field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:173
msgid "Incorrect phone number"
msgstr ""
#: public/class-biuro-contacts-public.php:183
msgid "Email or phone field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:190
msgid "Email format is incorrect"
msgstr ""
#: public/class-biuro-contacts-public.php:205
msgid "You have to agree with conditions"
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-2.php:23
msgid "Company"
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-2.php:30
#: public/partials/biuro-contacts-public--position--step-2.php:107
#: public/partials/biuro-contacts-public--employees--step-2.php:30
msgid "Message"
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-2.php:47
#: public/partials/biuro-contacts-public--employers--step-1.php:80
#: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employees--step-1.php:80
msgid "Submit"
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you."
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV"
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91
#: public/partials/biuro-contacts-public--employers.php:58
#: public/partials/biuro-contacts-public--employers.php:90
#: public/partials/biuro-contacts-public--position.php:65
msgid "OK"
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:90
#: public/partials/biuro-contacts-public--employers.php:89
msgid "Thank You! The information has been successfully supplemented."
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-1.php:41
#: public/partials/biuro-contacts-public--position--step-2.php:60
#: public/partials/biuro-contacts-public--employees--step-1.php:41
msgid "Name, surname"
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-1.php:53
#: public/partials/biuro-contacts-public--position--step-2.php:73
#: public/partials/biuro-contacts-public--employees--step-1.php:53
msgid "Phone no."
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-1.php:67
#: public/partials/biuro-contacts-public--position--step-2.php:86
#: public/partials/biuro-contacts-public--employees--step-1.php:67
msgid "Email address"
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-1.php:87
msgid ""
"I agree, that my personal data will be used for communicating during the pre-"
"contractual relationship. For more detailed information view our <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Personal Data Protection Policy.</a>"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:98
#: public/partials/biuro-contacts-public--employees--step-2.php:23
msgid "City"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:114
#: public/partials/biuro-contacts-public--employees--step-2.php:37
msgid "CV"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:123
#: public/partials/biuro-contacts-public--employees--step-1.php:87
msgid ""
"I agree, that my personal data will be used for offering me a job. For more "
"detailed information view our <a href=\"https://biuro.eu/privacy-en.html\" "
"target=\"_blank\" rel=\"noopener\">Personal Data Protection Policy.</a>"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:134
#: public/partials/biuro-contacts-public--position--step-1.php:24
msgid "Apply"
msgstr ""
#: public/partials/biuro-contacts-public--employers.php:56
msgid "Thank You for contacting!"
msgstr ""
#: public/partials/biuro-contacts-public--employers.php:57
msgid "You request was send successfully, we will contact You."
msgstr ""
#: public/partials/biuro-contacts-public--position.php:64
msgid "Thank You! Your data was send successfully."
msgstr ""
#. Name of the plugin
msgid "Biuro Contacts"
msgstr ""
#. Description of the plugin
msgid ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
msgstr ""
#. URI of the plugin
#. Author URI of the plugin
msgid "https://www.biuro.lt"
msgstr ""
#. Author of the plugin
msgid "Biuro"
msgstr ""
msgid ""
msgstr ""
"Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 12:11+0000\n"
"PO-Revision-Date: 2019-06-18 05:05+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Estonian\n"
"Language: et\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.3.0; wp-5.2.1"
#: public/class-biuro-contacts-public.php:151
msgid "This field is required"
msgstr "Selle välja täitmine on kohustuslik"
#: public/class-biuro-contacts-public.php:162
msgid "Phone or email field is required"
msgstr "E-posti või telefoni väli on vajalik"
#: public/class-biuro-contacts-public.php:173
msgid "Incorrect phone number"
msgstr "Telefoni number ei ole korrektne"
#: public/class-biuro-contacts-public.php:183
msgid "Email or phone field is required"
msgstr "E-posti või telefoni väli on vajalik"
#: public/class-biuro-contacts-public.php:190
msgid "Email format is incorrect"
msgstr "E-posti formaat on vale"
#: public/class-biuro-contacts-public.php:205
msgid "You have to agree with conditions"
msgstr "Te peate tingimustega nõustuma"
#: public/partials/biuro-contacts-public--employers--step-2.php:23
msgid "Company"
msgstr "Ettevõte"
#: public/partials/biuro-contacts-public--employers--step-2.php:30
#: public/partials/biuro-contacts-public--position--step-2.php:107
#: public/partials/biuro-contacts-public--employees--step-2.php:30
msgid "Message"
msgstr "Sõnum"
#: public/partials/biuro-contacts-public--employers--step-2.php:47
#: public/partials/biuro-contacts-public--employers--step-1.php:80
#: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employees--step-1.php:80
msgid "Submit"
msgstr "Esita"
#: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you."
msgstr "Täname teid, oleme edukalt teie kohta andmeid saanud."
#: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV"
msgstr "Saate lisada teavet enda kohta, lisades linna, sõnumi või CV'd."
#: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91
#: public/partials/biuro-contacts-public--employers.php:58
#: public/partials/biuro-contacts-public--employers.php:90
#: public/partials/biuro-contacts-public--position.php:65
msgid "OK"
msgstr "OK"
#: public/partials/biuro-contacts-public--employees.php:90
#: public/partials/biuro-contacts-public--employers.php:89
msgid "Thank You! The information has been successfully supplemented."
msgstr "Aitäh! Teie andmed on edukalt saadetud."
#: public/partials/biuro-contacts-public--employers--step-1.php:41
#: public/partials/biuro-contacts-public--position--step-2.php:60
#: public/partials/biuro-contacts-public--employees--step-1.php:41
msgid "Name, surname"
msgstr "Nimi, Perekonnanimi"
#: public/partials/biuro-contacts-public--employers--step-1.php:53
#: public/partials/biuro-contacts-public--position--step-2.php:73
#: public/partials/biuro-contacts-public--employees--step-1.php:53
msgid "Phone no."
msgstr "Telefoni number"
#: public/partials/biuro-contacts-public--employers--step-1.php:67
#: public/partials/biuro-contacts-public--position--step-2.php:86
#: public/partials/biuro-contacts-public--employees--step-1.php:67
msgid "Email address"
msgstr "E-post"
#: public/partials/biuro-contacts-public--employers--step-1.php:87
msgid ""
"I agree, that my personal data will be used for communicating during the pre-"
"contractual relationship. For more detailed information view our <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Personal Data Protection Policy.</a>"
msgstr ""
"Olen nõus, et minu isikuandmeid kasutatakse lepingueelsete suhete ajal "
"suhtlemiseks. Üksikasjalikuma teabe saamiseks vaadake meie <a href=\"https:"
"//biuro.eu/privacy-ee.html\" target=\"_blank\" rel=\"noopener\"> "
"isikuandmete kaitse poliitikat. </a>"
#: public/partials/biuro-contacts-public--position--step-2.php:98
#: public/partials/biuro-contacts-public--employees--step-2.php:23
msgid "City"
msgstr "Linn"
#: public/partials/biuro-contacts-public--position--step-2.php:114
#: public/partials/biuro-contacts-public--employees--step-2.php:37
msgid "CV"
msgstr "Lisa CV"
#: public/partials/biuro-contacts-public--position--step-2.php:123
#: public/partials/biuro-contacts-public--employees--step-1.php:87
msgid ""
"I agree, that my personal data will be used for offering me a job. For more "
"detailed information view our <a href=\"https://biuro.eu/privacy-en.html\" "
"target=\"_blank\" rel=\"noopener\">Personal Data Protection Policy.</a>"
msgstr ""
"Olen nõus, et minu isikuandmeid kasutatakse mulle töö pakkumiseks. "
"Üksikasjalikuma teabe saamiseks vaadake meie <a href=\"https://biuro."
"eu/privacy-ee.html\" target=\"_blank\" rel=\"noopener\"> isikuandmete kaitse "
"poliitikat. </a>"
#: public/partials/biuro-contacts-public--position--step-2.php:134
#: public/partials/biuro-contacts-public--position--step-1.php:24
msgid "Apply"
msgstr "Kandideeri"
#: public/partials/biuro-contacts-public--employers.php:56
msgid "Thank You for contacting!"
msgstr "Täname Teid!"
#: public/partials/biuro-contacts-public--employers.php:57
msgid "You request was send successfully, we will contact You."
msgstr "Teie taotlus on edukalt saadetud, võtame Teiega ühendust."
#: public/partials/biuro-contacts-public--position.php:64
msgid "Thank You! Your data was send successfully."
msgstr "Aitäh! Teie andmed on edukalt saadetud."
#. Name of the plugin
msgid "Biuro Contacts"
msgstr "Biuro Kontaktid"
#. Description of the plugin
msgid ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
msgstr ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
#. URI of the plugin
#. Author URI of the plugin
msgid "https://www.biuro.lt"
msgstr "https://www.biuro.ee"
#. Author of the plugin
msgid "Biuro"
msgstr "Biuro"
...@@ -3,7 +3,7 @@ msgstr "" ...@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Biuro Contacts\n" "Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 12:11+0000\n" "POT-Creation-Date: 2019-05-31 12:11+0000\n"
"PO-Revision-Date: 2019-05-31 12:21+0000\n" "PO-Revision-Date: 2019-06-18 06:26+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n" "Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Estonian\n" "Language-Team: Estonian\n"
"Language: et\n" "Language: et\n"
...@@ -12,7 +12,7 @@ msgstr "" ...@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n" "X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.2.1" "X-Loco-Version: 2.3.0; wp-5.2.1"
#: public/class-biuro-contacts-public.php:151 #: public/class-biuro-contacts-public.php:151
msgid "This field is required" msgid "This field is required"
...@@ -24,10 +24,7 @@ msgstr "E-posti või telefoni väli on vajalik" ...@@ -24,10 +24,7 @@ msgstr "E-posti või telefoni väli on vajalik"
#: public/class-biuro-contacts-public.php:173 #: public/class-biuro-contacts-public.php:173
msgid "Incorrect phone number" msgid "Incorrect phone number"
msgstr "" msgstr "Telefoni number ei ole korrektne"
"\n"
"22/5000\n"
"Vale telefoninumber"
#: public/class-biuro-contacts-public.php:183 #: public/class-biuro-contacts-public.php:183
msgid "Email or phone field is required" msgid "Email or phone field is required"
...@@ -56,7 +53,7 @@ msgstr "Sõnum" ...@@ -56,7 +53,7 @@ msgstr "Sõnum"
#: public/partials/biuro-contacts-public--employees--step-2.php:45 #: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employees--step-1.php:80 #: public/partials/biuro-contacts-public--employees--step-1.php:80
msgid "Submit" msgid "Submit"
msgstr "Saada" msgstr "Esita"
#: public/partials/biuro-contacts-public--employees.php:56 #: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you." msgid "Thank You, we have successfully received data about you."
...@@ -64,7 +61,7 @@ msgstr "Täname teid, oleme edukalt teie kohta andmeid saanud." ...@@ -64,7 +61,7 @@ msgstr "Täname teid, oleme edukalt teie kohta andmeid saanud."
#: public/partials/biuro-contacts-public--employees.php:57 #: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV" msgid "You can add information about yourself by adding a city, message or CV"
msgstr "Saate lisada teavet enda kohta, lisades linna, sõnumi või CV" msgstr "Saate lisada teavet enda kohta, lisades linna, sõnumi või CV'd."
#: public/partials/biuro-contacts-public--employees.php:58 #: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91 #: public/partials/biuro-contacts-public--employees.php:91
...@@ -72,12 +69,12 @@ msgstr "Saate lisada teavet enda kohta, lisades linna, sõnumi või CV" ...@@ -72,12 +69,12 @@ msgstr "Saate lisada teavet enda kohta, lisades linna, sõnumi või CV"
#: public/partials/biuro-contacts-public--employers.php:90 #: public/partials/biuro-contacts-public--employers.php:90
#: public/partials/biuro-contacts-public--position.php:65 #: public/partials/biuro-contacts-public--position.php:65
msgid "OK" msgid "OK"
msgstr "Okei" msgstr "OK"
#: public/partials/biuro-contacts-public--employees.php:90 #: public/partials/biuro-contacts-public--employees.php:90
#: public/partials/biuro-contacts-public--employers.php:89 #: public/partials/biuro-contacts-public--employers.php:89
msgid "Thank You! The information has been successfully supplemented." msgid "Thank You! The information has been successfully supplemented."
msgstr "Thank You! The information has been successfully supplemented." msgstr "Aitäh! Teie andmed on edukalt saadetud."
#: public/partials/biuro-contacts-public--employers--step-1.php:41 #: public/partials/biuro-contacts-public--employers--step-1.php:41
#: public/partials/biuro-contacts-public--position--step-2.php:60 #: public/partials/biuro-contacts-public--position--step-2.php:60
...@@ -134,7 +131,7 @@ msgstr "" ...@@ -134,7 +131,7 @@ msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:134 #: public/partials/biuro-contacts-public--position--step-2.php:134
#: public/partials/biuro-contacts-public--position--step-1.php:24 #: public/partials/biuro-contacts-public--position--step-1.php:24
msgid "Apply" msgid "Apply"
msgstr "Rakenda" msgstr "Kandideeri"
#: public/partials/biuro-contacts-public--employers.php:56 #: public/partials/biuro-contacts-public--employers.php:56
msgid "Thank You for contacting!" msgid "Thank You for contacting!"
...@@ -142,11 +139,11 @@ msgstr "Täname Teid!" ...@@ -142,11 +139,11 @@ msgstr "Täname Teid!"
#: public/partials/biuro-contacts-public--employers.php:57 #: public/partials/biuro-contacts-public--employers.php:57
msgid "You request was send successfully, we will contact You." msgid "You request was send successfully, we will contact You."
msgstr "Teie taotlus saadeti edukalt, võtame Teiega ühendust." msgstr "Teie taotlus on edukalt saadetud, võtame Teiega ühendust."
#: public/partials/biuro-contacts-public--position.php:64 #: public/partials/biuro-contacts-public--position.php:64
msgid "Thank You! Your data was send successfully." msgid "Thank You! Your data was send successfully."
msgstr "Aitäh! Teie andmed saadeti edukalt." msgstr "Aitäh! Teie andmed on edukalt saadetud."
#. Name of the plugin #. Name of the plugin
msgid "Biuro Contacts" msgid "Biuro Contacts"
......
msgid ""
msgstr ""
"Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-01 18:13+0000\n"
"PO-Revision-Date: 2019-05-01 18:54+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Lithuanian\n"
"Language: lt_LT\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 "
"&&(n%100<10||n%100 >= 20)? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.1.1"
#: public/class-biuro-contacts-public.php:151
msgid "This field is required"
msgstr "Būtinas laukas"
#: public/class-biuro-contacts-public.php:162
msgid "Phone or email field is required"
msgstr "Telefono nr. arba el. paštas yra būtinas"
#: public/class-biuro-contacts-public.php:173
msgid "Incorrect phone number"
msgstr "Neteisingas tel. numeris"
#: public/class-biuro-contacts-public.php:183
msgid "Email or phone field is required"
msgstr "Telefono nr. arba el. paštas yra būtinas"
#: public/class-biuro-contacts-public.php:190
msgid "Email format is incorrect"
msgstr "Neteisingas el. pašto formatas."
#: public/class-biuro-contacts-public.php:205
msgid "You have to agree with conditions"
msgstr "Kad galėtume susisiekti, turite sutikti su sąlygomis"
#: public/partials/biuro-contacts-public--employees--step-2.php:23
#: public/partials/biuro-contacts-public--position--step-2.php:98
msgid "City"
msgstr "Miestas"
#: public/partials/biuro-contacts-public--employees--step-2.php:30
#: public/partials/biuro-contacts-public--position--step-2.php:105
#: public/partials/biuro-contacts-public--employers--step-2.php:30
msgid "Message"
msgstr "Žinutė"
#: public/partials/biuro-contacts-public--employees--step-2.php:37
#: public/partials/biuro-contacts-public--position--step-2.php:112
msgid "CV"
msgstr "Prisegti CV (neprivaloma)"
#: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employees--step-1.php:78
#: public/partials/biuro-contacts-public--employers--step-1.php:78
#: public/partials/biuro-contacts-public--employers--step-2.php:47
msgid "Submit"
msgstr "Siųsti"
#: public/partials/biuro-contacts-public--position--step-2.php:60
#: public/partials/biuro-contacts-public--employees--step-1.php:41
#: public/partials/biuro-contacts-public--employers--step-1.php:41
msgid "Name, surname"
msgstr "Vardas, pavardė"
#: public/partials/biuro-contacts-public--position--step-2.php:73
#: public/partials/biuro-contacts-public--employees--step-1.php:53
#: public/partials/biuro-contacts-public--employers--step-1.php:53
msgid "Phone no."
msgstr "Telefonas"
#: public/partials/biuro-contacts-public--position--step-2.php:86
#: public/partials/biuro-contacts-public--employees--step-1.php:65
#: public/partials/biuro-contacts-public--employers--step-1.php:65
msgid "Email address"
msgstr "El. paštas"
#: public/partials/biuro-contacts-public--position--step-2.php:121
#: public/partials/biuro-contacts-public--employees--step-1.php:85
msgid ""
"I agree, that my personal data will be used for offering me a job. For more "
"detailed information view our <a href=\"https://biuro.eu/privacy-en.html\" "
"target=\"_blank\" rel=\"noopener\">Personal Data Protection Policy.</a>"
msgstr ""
"Sutinku, kad mano asmens duomenys būtų tvarkomi pateikti darbo pasiūlymus. "
"Išsamią informaciją rasite <a href=\"https://biuro.eu/privacy-lt.html\" "
"target=\"_blank\" rel=\"noopener\">Asmens duomenų tvarkymo politikoje.</a>"
#: public/partials/biuro-contacts-public--position--step-2.php:132
#: public/partials/biuro-contacts-public--position--step-1.php:24
msgid "Apply"
msgstr "Kandidatuoti"
#: public/partials/biuro-contacts-public--position.php:64
msgid "Thank You! Your data was send successfully."
msgstr "Dėkojame! Informacija išsiųsta sėkmingai."
#: public/partials/biuro-contacts-public--position.php:65
#: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91
#: public/partials/biuro-contacts-public--employers.php:58
#: public/partials/biuro-contacts-public--employers.php:90
msgid "OK"
msgstr "Gerai"
#: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you."
msgstr "Dėkojame, duomenis apie tave sėkmingai gavome. "
#: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV"
msgstr ""
"Informaciją apie save gali papildyti pridėdamas miestą, žinutę arba CV."
#: public/partials/biuro-contacts-public--employees.php:90
#: public/partials/biuro-contacts-public--employers.php:89
msgid "Thank You! The information has been successfully supplemented."
msgstr "Dėkojame! Informacija papildyta sėkmingai."
#: public/partials/biuro-contacts-public--employers.php:56
msgid "Thank You for contacting!"
msgstr "Dėkojame, kad kreipiatės! "
#: public/partials/biuro-contacts-public--employers.php:57
msgid "You request was send successfully, we will contact You."
msgstr "Jūsų užklausa išsiųsta sėkmingai, su Jumis susisieksime."
#: public/partials/biuro-contacts-public--employers--step-1.php:85
msgid ""
"I agree, that my personal data will be used for communicating during the pre-"
"contractual relationship. For more detailed information view our <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Personal Data Protection Policy.</a>"
msgstr ""
"Sutinku, kad mano asmens duomenys būtų tvarkomi būtų tvarkomi komunikuojant "
"ikisutartiniuose santykiuose. Išsamią informaciją rasite <a href=\"https:"
"//biuro.eu/privacy-lt.html\" target=\"_blank\" rel=\"noopener\">Asmens "
"duomenų tvarkymo politikoje.</a>"
#: public/partials/biuro-contacts-public--employers--step-2.php:23
msgid "Company"
msgstr "Įmonė"
#. Name of the plugin
msgid "Biuro Contacts"
msgstr "Biuro Contacts"
#. Description of the plugin
msgid ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
msgstr ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
#. URI of the plugin
#. Author URI of the plugin
msgid "https://www.biuro.lt"
msgstr "https://www.biuro.lt"
#. Author of the plugin
msgid "Biuro"
msgstr "Biuro"
msgid ""
msgstr ""
"Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-27 05:55+0000\n"
"PO-Revision-Date: 2019-06-27 05:55+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Lithuanian\n"
"Language: lt_LT\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 "
"&&(n%100<10||n%100 >= 20)? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.3.0; wp-5.2.2"
#: public/partials/biuro-contacts-public--employees--step-1.php:42
#: public/partials/biuro-contacts-public--employers--step-1.php:41
#: public/partials/biuro-contacts-public--position--step-2.php:65
msgid "Name, surname"
msgstr "Vardas, pavardė"
#: public/partials/biuro-contacts-public--employees--step-1.php:54
#: public/partials/biuro-contacts-public--employers--step-1.php:53
#: public/partials/biuro-contacts-public--position--step-2.php:78
msgid "Phone no."
msgstr "Telefonas"
#: public/partials/biuro-contacts-public--employees--step-1.php:68
#: public/partials/biuro-contacts-public--employers--step-1.php:67
#: public/partials/biuro-contacts-public--position--step-2.php:91
msgid "Email address"
msgstr "El. paštas"
#: public/partials/biuro-contacts-public--employees--step-1.php:88
#: public/partials/biuro-contacts-public--employees--step-2.php:63
#: public/partials/biuro-contacts-public--employees--step-2.php:67
#: public/partials/biuro-contacts-public--employers--step-1.php:80
#: public/partials/biuro-contacts-public--employers--step-2.php:47
msgid "Submit"
msgstr "Siųsti"
#: public/partials/biuro-contacts-public--employees--step-1.php:113
#: public/partials/biuro-contacts-public--position--step-2.php:168
msgid ""
"We process your personal data to offer you jobs. More information at <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Personal Data Protection Policy.</a>"
msgstr ""
#: public/partials/biuro-contacts-public--employees--step-2.php:23
#: public/partials/biuro-contacts-public--position--step-2.php:103
msgid "City"
msgstr "Miestas"
#: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employers--step-2.php:30
#: public/partials/biuro-contacts-public--position--step-2.php:132
msgid "Message"
msgstr "Žinutė"
#: public/partials/biuro-contacts-public--employees--step-2.php:52
#: public/partials/biuro-contacts-public--position--step-2.php:139
msgid "CV"
msgstr "Prisegti CV (neprivaloma)"
#: public/partials/biuro-contacts-public--employees.php:45
msgid "Thank You, we have successfully received data about you."
msgstr "Dėkojame, duomenis apie tave sėkmingai gavome. "
#: public/partials/biuro-contacts-public--employees.php:46
msgid "You can add information about yourself by adding a city, message or CV"
msgstr ""
"Informaciją apie save gali papildyti pridėdamas miestą, žinutę arba CV."
#: public/partials/biuro-contacts-public--employees.php:47
#: public/partials/biuro-contacts-public--employees.php:83
#: public/partials/biuro-contacts-public--employers.php:47
#: public/partials/biuro-contacts-public--employers.php:68
#: public/partials/biuro-contacts-public--position.php:54
msgid "OK"
msgstr "Gerai"
#: public/partials/biuro-contacts-public--employees.php:82
#: public/partials/biuro-contacts-public--employers.php:67
msgid "Thank You! The information has been successfully supplemented."
msgstr "Dėkojame! Informacija papildyta sėkmingai."
#: public/partials/biuro-contacts-public--employers--step-1.php:102
msgid ""
"We process your personal data for service cooperation. More information at "
"<a href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" "
"rel=\"noopener\">Personal Data Protection Policy.</a>"
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-2.php:23
msgid "Company"
msgstr "Įmonė"
#: public/partials/biuro-contacts-public--employers.php:45
msgid "Thank You for contacting!"
msgstr "Dėkojame, kad kreipiatės! "
#: public/partials/biuro-contacts-public--employers.php:46
msgid "You request was send successfully, we will contact You."
msgstr ""
"Jūsų užklausa išsiųsta sėkmingai, su Jumis susisieksime. Galite papildyti "
"užklausą įrašydami įmonės pavadinimą ar žinutę."
#: public/partials/biuro-contacts-public--position--step-1.php:24
#: public/partials/biuro-contacts-public--position--step-2.php:175
msgid "Apply"
msgstr "Kandidatuoti"
#: public/partials/biuro-contacts-public--position.php:53
msgid "Thank You! Your data was send successfully."
msgstr "Dėkojame! Informacija išsiųsta sėkmingai."
#. Name of the plugin
msgid "Biuro Contacts"
msgstr "Biuro Contacts"
#. Description of the plugin
msgid ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
msgstr ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
#. URI of the plugin
#. Author URI of the plugin
msgid "https://www.biuro.lt"
msgstr "https://www.biuro.lt"
#. Author of the plugin
msgid "Biuro"
msgstr "Biuro"
msgid ""
msgstr ""
"Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 11:13+0000\n"
"PO-Revision-Date: 2019-05-31 11:16+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Latvian\n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=n % 10 == 1 && n % 100 != 11 ? 0 : n != 0 ? "
"1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.2.1"
#: public/class-biuro-contacts-public.php:151
msgid "This field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:162
msgid "Phone or email field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:173
msgid "Incorrect phone number"
msgstr ""
#: public/class-biuro-contacts-public.php:183
msgid "Email or phone field is required"
msgstr ""
#: public/class-biuro-contacts-public.php:190
msgid "Email format is incorrect"
msgstr ""
#: public/class-biuro-contacts-public.php:205
msgid "You have to agree with conditions"
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-2.php:23
msgid "Company"
msgstr "Kompānijā "
#: public/partials/biuro-contacts-public--employers--step-2.php:30
#: public/partials/biuro-contacts-public--position--step-2.php:107
#: public/partials/biuro-contacts-public--employees--step-2.php:30
msgid "Message"
msgstr "Ziņojums"
#: public/partials/biuro-contacts-public--employers--step-2.php:47
#: public/partials/biuro-contacts-public--employers--step-1.php:80
#: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employees--step-1.php:80
msgid "Submit"
msgstr "Nosūtīt"
#: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you."
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV"
msgstr ""
#: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91
#: public/partials/biuro-contacts-public--employers.php:58
#: public/partials/biuro-contacts-public--employers.php:90
#: public/partials/biuro-contacts-public--position.php:65
msgid "OK"
msgstr "Labi"
#: public/partials/biuro-contacts-public--employees.php:90
#: public/partials/biuro-contacts-public--employers.php:89
msgid "Thank You! The information has been successfully supplemented."
msgstr ""
#: public/partials/biuro-contacts-public--employers--step-1.php:41
#: public/partials/biuro-contacts-public--position--step-2.php:60
#: public/partials/biuro-contacts-public--employees--step-1.php:41
msgid "Name, surname"
msgstr "Vārds, Uzvārds"
#: public/partials/biuro-contacts-public--employers--step-1.php:53
#: public/partials/biuro-contacts-public--position--step-2.php:73
#: public/partials/biuro-contacts-public--employees--step-1.php:53
msgid "Phone no."
msgstr "Telefons"
#: public/partials/biuro-contacts-public--employers--step-1.php:67
#: public/partials/biuro-contacts-public--position--step-2.php:86
#: public/partials/biuro-contacts-public--employees--step-1.php:67
msgid "Email address"
msgstr "E-pasts"
#: public/partials/biuro-contacts-public--employers--step-1.php:87
msgid ""
"I agree, that my personal data will be used for communicating during the pre-"
"contractual relationship. For more detailed information view our <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Personal Data Protection Policy.</a>"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:98
#: public/partials/biuro-contacts-public--employees--step-2.php:23
msgid "City"
msgstr "Pilsēta"
#: public/partials/biuro-contacts-public--position--step-2.php:114
#: public/partials/biuro-contacts-public--employees--step-2.php:37
msgid "CV"
msgstr "Pievienot CV"
#: public/partials/biuro-contacts-public--position--step-2.php:123
#: public/partials/biuro-contacts-public--employees--step-1.php:87
msgid ""
"I agree, that my personal data will be used for offering me a job. For more "
"detailed information view our <a href=\"https://biuro.eu/privacy-en.html\" "
"target=\"_blank\" rel=\"noopener\">Personal Data Protection Policy.</a>"
msgstr ""
#: public/partials/biuro-contacts-public--position--step-2.php:134
#: public/partials/biuro-contacts-public--position--step-1.php:24
msgid "Apply"
msgstr ""
#: public/partials/biuro-contacts-public--employers.php:56
msgid "Thank You for contacting!"
msgstr ""
#: public/partials/biuro-contacts-public--employers.php:57
msgid "You request was send successfully, we will contact You."
msgstr ""
#: public/partials/biuro-contacts-public--position.php:64
msgid "Thank You! Your data was send successfully."
msgstr ""
#. Name of the plugin
msgid "Biuro Contacts"
msgstr ""
#. Description of the plugin
msgid ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
msgstr ""
#. URI of the plugin
#. Author URI of the plugin
msgid "https://www.biuro.lt"
msgstr "https://www.biuro.lv"
#. Author of the plugin
msgid "Biuro"
msgstr "Biuro"
msgid ""
msgstr ""
"Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-30 14:01+0000\n"
"PO-Revision-Date: 2019-06-18 06:24+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && "
"n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.3.0; wp-5.2.1"
#: public/class-biuro-contacts-public.php:151
msgid "This field is required"
msgstr "Вы должны заполнить это поле"
#: public/class-biuro-contacts-public.php:162
msgid "Phone or email field is required"
msgstr "Требуется телефон или электронная почта"
#: public/class-biuro-contacts-public.php:173
msgid "Incorrect phone number"
msgstr "Неверный номер телефона"
#: public/class-biuro-contacts-public.php:183
msgid "Email or phone field is required"
msgstr "Требуется телефон или электронная почта"
#: public/class-biuro-contacts-public.php:190
msgid "Email format is incorrect"
msgstr "Неверный формат электронной почты"
#: public/class-biuro-contacts-public.php:205
msgid "You have to agree with conditions"
msgstr "Вы должны согласиться с условиями"
#: public/partials/biuro-contacts-public--employers--step-2.php:23
msgid "Company"
msgstr "Компания"
#: public/partials/biuro-contacts-public--employers--step-2.php:30
#: public/partials/biuro-contacts-public--position--step-2.php:107
#: public/partials/biuro-contacts-public--employees--step-2.php:30
msgid "Message"
msgstr "Сообщение"
#: public/partials/biuro-contacts-public--employers--step-2.php:47
#: public/partials/biuro-contacts-public--employers--step-1.php:80
#: public/partials/biuro-contacts-public--employees--step-2.php:45
#: public/partials/biuro-contacts-public--employees--step-1.php:80
msgid "Submit"
msgstr "Отправить"
#: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you."
msgstr "Спасибо, мы успешно получили ваши данные."
#: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV"
msgstr ""
"Вы можете добавить информацию о себе, добавив город, сообщение или резюме"
#: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91
#: public/partials/biuro-contacts-public--employers.php:58
#: public/partials/biuro-contacts-public--employers.php:90
#: public/partials/biuro-contacts-public--position.php:65
msgid "OK"
msgstr "Хорошо"
#: public/partials/biuro-contacts-public--employees.php:90
#: public/partials/biuro-contacts-public--employers.php:89
msgid "Thank You! The information has been successfully supplemented."
msgstr "Спасибо! Информация была успешно дополнена."
#: public/partials/biuro-contacts-public--employers--step-1.php:41
#: public/partials/biuro-contacts-public--position--step-2.php:60
#: public/partials/biuro-contacts-public--employees--step-1.php:41
msgid "Name, surname"
msgstr "Имя, Фамилия"
#: public/partials/biuro-contacts-public--employers--step-1.php:53
#: public/partials/biuro-contacts-public--position--step-2.php:73
#: public/partials/biuro-contacts-public--employees--step-1.php:53
msgid "Phone no."
msgstr "Телефон"
#: public/partials/biuro-contacts-public--employers--step-1.php:67
#: public/partials/biuro-contacts-public--position--step-2.php:86
#: public/partials/biuro-contacts-public--employees--step-1.php:67
msgid "Email address"
msgstr "Адрес электронной почты"
#: public/partials/biuro-contacts-public--employers--step-1.php:87
msgid ""
"I agree, that my personal data will be used for communicating during the pre-"
"contractual relationship. For more detailed information view our <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"Personal Data Protection Policy.</a>"
msgstr ""
"Я согласен, что мои личные данные будут использоваться для общения во время "
"преддоговорных отношений. Для более подробной информации просмотрите наше <a "
"href=\"https://biuro.eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">"
"политику защиты персональных данных.</a>"
#: public/partials/biuro-contacts-public--position--step-2.php:98
#: public/partials/biuro-contacts-public--employees--step-2.php:23
msgid "City"
msgstr "Город"
#: public/partials/biuro-contacts-public--position--step-2.php:114
#: public/partials/biuro-contacts-public--employees--step-2.php:37
msgid "CV"
msgstr "Приложить CV"
#: public/partials/biuro-contacts-public--position--step-2.php:123
#: public/partials/biuro-contacts-public--employees--step-1.php:87
msgid ""
"I agree, that my personal data will be used for offering me a job. For more "
"detailed information view our <a href=\"https://biuro.eu/privacy-en.html\" "
"target=\"_blank\" rel=\"noopener\">Personal Data Protection Policy.</a>"
msgstr ""
"Я согласен, что мои личные данные будут использованы для предложения работы. "
"Для более подробной информации просмотрите наше <a href=\"https://biuro."
"eu/privacy-en.html\" target=\"_blank\" rel=\"noopener\">политику защиты "
"персональных данных.</a>"
#: public/partials/biuro-contacts-public--position--step-2.php:134
#: public/partials/biuro-contacts-public--position--step-1.php:24
msgid "Apply"
msgstr "Подать заявку"
#: public/partials/biuro-contacts-public--employers.php:56
msgid "Thank You for contacting!"
msgstr "Спасибо за обращение!"
#: public/partials/biuro-contacts-public--employers.php:57
msgid "You request was send successfully, we will contact You."
msgstr ""
"Ваш запрос был успешно отправлен, мы свяжемся с Вами. Вы можете добавить в "
"свой запрос название компании или сообщение."
#: public/partials/biuro-contacts-public--position.php:64
msgid "Thank You! Your data was send successfully."
msgstr "Спасибо! Ваши данные были успешно отправлены."
#. Name of the plugin
msgid "Biuro Contacts"
msgstr "Biuro Contacts"
#. Description of the plugin
msgid ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
msgstr ""
"This is a short description of what the plugin does. It's displayed in the "
"WordPress admin area."
#. URI of the plugin
#. Author URI of the plugin
msgid "https://www.biuro.lt"
msgstr "https://www.biuro.ee"
#. Author of the plugin
msgid "Biuro"
msgstr "Biuro"
...@@ -3,7 +3,7 @@ msgstr "" ...@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Biuro Contacts\n" "Project-Id-Version: Biuro Contacts\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-30 14:01+0000\n" "POT-Creation-Date: 2019-05-30 14:01+0000\n"
"PO-Revision-Date: 2019-05-31 10:37+0000\n" "PO-Revision-Date: 2019-06-18 06:24+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n" "Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Russian\n" "Language-Team: Russian\n"
"Language: ru_RU\n" "Language: ru_RU\n"
...@@ -13,7 +13,7 @@ msgstr "" ...@@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n" "X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.2.1" "X-Loco-Version: 2.3.0; wp-5.2.1"
#: public/class-biuro-contacts-public.php:151 #: public/class-biuro-contacts-public.php:151
msgid "This field is required" msgid "This field is required"
...@@ -58,12 +58,12 @@ msgstr "Отправить" ...@@ -58,12 +58,12 @@ msgstr "Отправить"
#: public/partials/biuro-contacts-public--employees.php:56 #: public/partials/biuro-contacts-public--employees.php:56
msgid "Thank You, we have successfully received data about you." msgid "Thank You, we have successfully received data about you."
msgstr "Спасибо, мы успешно получили данные о вас." msgstr "Спасибо, мы успешно получили ваши данные."
#: public/partials/biuro-contacts-public--employees.php:57 #: public/partials/biuro-contacts-public--employees.php:57
msgid "You can add information about yourself by adding a city, message or CV" msgid "You can add information about yourself by adding a city, message or CV"
msgstr "" msgstr ""
"Вы можете добавить информацию о себе, добавив город, сообщение или резюме" "Вы можете дополнить информацию о себе, добавив город, сообщение или резюме"
#: public/partials/biuro-contacts-public--employees.php:58 #: public/partials/biuro-contacts-public--employees.php:58
#: public/partials/biuro-contacts-public--employees.php:91 #: public/partials/biuro-contacts-public--employees.php:91
...@@ -164,7 +164,7 @@ msgstr "" ...@@ -164,7 +164,7 @@ msgstr ""
#. URI of the plugin #. URI of the plugin
#. Author URI of the plugin #. Author URI of the plugin
msgid "https://www.biuro.lt" msgid "https://www.biuro.lt"
msgstr "https://www.biuro.lt" msgstr "https://www.biuro.ee"
#. Author of the plugin #. Author of the plugin
msgid "Biuro" msgid "Biuro"
......
msgid ""
msgstr ""
"Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-04 13:05+0000\n"
"PO-Revision-Date: 2019-05-04 13:05+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: German\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.1.1"
#: 404.php:25
msgid "Sorry, the page you are looking for does not exist!"
msgstr "Sorry, the page you are looking for does not exist!"
#: 404.php:27
msgid "Return to homepage"
msgstr "Zur Startseite zurückkehren"
#: single-job.php:48
msgid "Salary from"
msgstr "Gehalt von"
#: single-job.php:54
msgid "Salary to"
msgstr "Gehalt an"
#: single-job.php:66
msgid "Published"
msgstr "Veröffentlicht"
#: single-job.php:68
msgid "Valid till"
msgstr "Gültig bis"
#: single-job.php:75
msgid "Apply"
msgstr "Sich bewerben"
#: header.php:137
msgid "Get an offer"
msgstr "Erhalte ein Angebot"
#: header.php:155 page-vasaros-darbu-bankas.php:186
#: template-parts/layout/aside-job-list.php:215
msgid "Get a job offer"
msgstr "Erhalte ein Jobangebot"
#: front-page.php:43
msgid "Recent job ads"
msgstr "Aktuelle Stellenanzeigen"
#: front-page.php:70 template-parts/jobs/jobs-not-found.php:25
msgid "More job ads"
msgstr "Weitere Stellenanzeigen"
#: front-page.php:80 sales-page.php:57
msgid "Trust in us"
msgstr "Sie vertrauen uns"
#. Name of the template
msgid "Search & Jobs page"
msgstr "Search & Jobs page"
#: search.php:32 page-vasaros-darbu-bankas.php:39
msgid "Other filters"
msgstr "Andere suchfilter"
#. Name of the template
msgid "VDB page"
msgstr ""
#: page-vasaros-darbu-bankas.php:30
msgid ""
"Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones."
msgstr ""
#: page-vasaros-darbu-bankas.php:170
#: template-parts/layout/aside-job-list.php:199
msgid "Didn't find a job offer you like?"
msgstr ""
#: page-vasaros-darbu-bankas.php:172
#: template-parts/layout/aside-job-list.php:201
msgid "Fill out the form and we will contact you"
msgstr ""
#: page-vasaros-darbu-bankas.php:196
msgid "900"
msgstr ""
#: page-vasaros-darbu-bankas.php:197
msgid ""
"This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!"
msgstr ""
#: searchform.php:114
msgid "Locations"
msgstr "Gebiet"
#: searchform.php:230
msgid "Keyword"
msgstr "Stichwort"
#: searchform.php:238
msgid "Search"
msgstr "Suche"
#. Name of the template
msgid "Sales page"
msgstr "Sales page"
#. Name of the template
msgid "Regions page"
msgstr "Regions-Seite"
#. Name of the template
msgid "Divisions page"
msgstr "Divisions page"
#: page-divisions.php:70
msgid "All"
msgstr "Alles"
#: template-parts/jobs/jobs-none.php:14
msgid "There are currently no job ads."
msgstr ""
"Derzeit gibt es keine Stellenanzeigen in deutscher Sprache. Aber wir haben "
"Job-Anzeigen in <a href=\"https://www.biuro.lt/darbuotojams/darbo-"
"pasiulymai/\">litauischer Sprache - wählen.</a>"
#: template-parts/jobs/jobs-not-found.php:14
msgid "No search results were found."
msgstr "Es wurden keine Suchergebnisse gefunden."
#: template-parts/layout/aside-job-list.php:144
msgid "More ..."
msgstr "Mehr..."
#: template-parts/layout/aside-job-list.php:168
msgid "City"
msgstr "Stadt"
#: template-parts/layout/aside-job-list.php:172
msgid "Job area"
msgstr "Arbeitsbereich"
#: template-parts/layout/aside-job-list.php:176
msgid "Job type"
msgstr "Auftragstyp"
#: template-parts/layout/aside-job-list.php:185
msgid "Reset filters"
msgstr ""
#: template-parts/layout/aside-job.php:11
msgid "Job position"
msgstr "Berufliche Stellung"
#: template-parts/layout/aside-job.php:11
msgid "I think you might like this job offer"
msgstr "Ich denke, dass Ihnen dieses Stellenangebot gefallen könnte"
#: template-parts/layout/aside-job.php:43
msgid "Suggest a friend"
msgstr "Für einen Freund vorschlagen"
#: template-parts/layout/aside-job-inactive.php:1
msgid "Job ad is inactive"
msgstr "Stellenanzeige ist inaktiv"
#. Name of the theme
#. Author of the theme
msgid "Biuro"
msgstr "Biuro"
#. Description of the theme
msgid "Biuro multiregion theme"
msgstr "Biuro multiregion theme"
#. Author URI of the theme
msgid "https://www.biuro.lt/"
msgstr "https://www.biuro.lt/"
msgid ""
msgstr ""
"Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 10:39+0000\n"
"PO-Revision-Date: 2019-06-11 12:43+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: English (United States)\n"
"Language: en_US\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.3.0; wp-5.2.1"
#. Name of the template
msgid "Regions page"
msgstr ""
#. Name of the template
msgid "Divisions page"
msgstr ""
#: page-divisions.php:70
msgid "All"
msgstr ""
#: header.php:139
msgid "Get an offer"
msgstr ""
#: header.php:157 page-vasaros-darbu-bankas.php:186
#: template-parts/layout/aside-job-list.php:215
msgid "Get a job offer"
msgstr ""
#: searchform.php:114
msgid "Locations"
msgstr "Location"
#: searchform.php:230
msgid "Keyword"
msgstr ""
#: searchform.php:238
msgid "Search"
msgstr ""
#: front-page.php:43
msgid "Recent job ads"
msgstr ""
#: front-page.php:70 template-parts/jobs/jobs-not-found.php:25
msgid "More job ads"
msgstr ""
#: front-page.php:80 sales-page.php:57
msgid "Trust in us"
msgstr "Trust in us"
#. Name of the template
msgid "Sales page"
msgstr ""
#: 404.php:25
msgid "Sorry, the page you are looking for does not exist!"
msgstr ""
#: 404.php:27
msgid "Return to homepage"
msgstr ""
#. Name of the template
msgid "VDB page"
msgstr ""
#: page-vasaros-darbu-bankas.php:30
msgid ""
"Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones."
msgstr ""
#: page-vasaros-darbu-bankas.php:39 search.php:32
msgid "Other filters"
msgstr ""
#: page-vasaros-darbu-bankas.php:170
#: template-parts/layout/aside-job-list.php:199
msgid "Didn't find a job offer you like?"
msgstr ""
#: page-vasaros-darbu-bankas.php:172
#: template-parts/layout/aside-job-list.php:201
msgid "Fill out the form and we will contact you"
msgstr ""
#: page-vasaros-darbu-bankas.php:196
msgid "900"
msgstr ""
#: page-vasaros-darbu-bankas.php:197
msgid ""
"This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!"
msgstr ""
#. Name of the template
msgid "Search & Jobs page"
msgstr ""
#: single-job.php:48
msgid "Salary from"
msgstr ""
#: single-job.php:54
msgid "Salary to"
msgstr ""
#: single-job.php:66
msgid "Published"
msgstr ""
#: single-job.php:68
msgid "Valid till"
msgstr ""
#: single-job.php:75
msgid "Apply"
msgstr ""
#: template-parts/layout/aside-job-inactive.php:1
msgid "Job ad is inactive"
msgstr ""
#: template-parts/layout/aside-job.php:11
msgid "Job position"
msgstr ""
#: template-parts/layout/aside-job.php:11
msgid "I think you might like this job offer"
msgstr ""
#: template-parts/layout/aside-job.php:43
msgid "Suggest a friend"
msgstr ""
#: template-parts/layout/aside-job-list.php:144
msgid "More ..."
msgstr ""
#: template-parts/layout/aside-job-list.php:168
msgid "City"
msgstr ""
#: template-parts/layout/aside-job-list.php:172
msgid "Job area"
msgstr ""
#: template-parts/layout/aside-job-list.php:176
msgid "Job type"
msgstr ""
#: template-parts/layout/aside-job-list.php:185
msgid "Reset filters"
msgstr ""
#: template-parts/jobs/jobs-not-found.php:14
msgid "No search results were found."
msgstr ""
#: template-parts/jobs/jobs-none.php:14
msgid "There are currently no job ads."
msgstr ""
"There are currently no job ads in English. However, we have lots of job ads "
"in <a href=\"https://biuro.ee/toeoeotsijatele/toeoepakkumised/\"> estonian - "
"choose the one you like.</a>"
#. Name of the theme
#. Author of the theme
msgid "Biuro"
msgstr ""
#. Description of the theme
msgid "Biuro multiregion theme"
msgstr ""
#. Author URI of the theme
msgid "https://www.biuro.lt/"
msgstr ""
...@@ -3,7 +3,7 @@ msgstr "" ...@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Biuro\n" "Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 10:39+0000\n" "POT-Creation-Date: 2019-05-31 10:39+0000\n"
"PO-Revision-Date: 2019-05-31 10:42+0000\n" "PO-Revision-Date: 2019-06-16 18:39+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n" "Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: English (United States)\n" "Language-Team: English (United States)\n"
"Language: en_US\n" "Language: en_US\n"
...@@ -12,7 +12,7 @@ msgstr "" ...@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n" "X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.2.1" "X-Loco-Version: 2.3.0; wp-5.2.1"
#. Name of the template #. Name of the template
msgid "Regions page" msgid "Regions page"
...@@ -57,7 +57,7 @@ msgstr "" ...@@ -57,7 +57,7 @@ msgstr ""
#: front-page.php:80 sales-page.php:57 #: front-page.php:80 sales-page.php:57
msgid "Trust in us" msgid "Trust in us"
msgstr "They trust in us" msgstr "Trust in us"
#. Name of the template #. Name of the template
msgid "Sales page" msgid "Sales page"
...@@ -173,8 +173,8 @@ msgstr "" ...@@ -173,8 +173,8 @@ msgstr ""
msgid "There are currently no job ads." msgid "There are currently no job ads."
msgstr "" msgstr ""
"There are currently no job ads in English. However, we have lots of job ads " "There are currently no job ads in English. However, we have lots of job ads "
"in <a href=\"https://biuro.ee/toeoeotsijatele/toeoepakkumised/\"> estonian - " "in <a href=\"/toeoeotsijatele/toeoepakkumised/\"> estonian - choose the one "
"choose the one you like.</a>" "you like.</a>"
#. Name of the theme #. Name of the theme
#. Author of the theme #. Author of the theme
......
msgid ""
msgstr ""
"Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-11 22:21+0000\n"
"PO-Revision-Date: 2019-06-26 13:32+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Estonian\n"
"Language: et\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.3.0; wp-5.2.1"
#: 404.php:25
msgid "Sorry, the page you are looking for does not exist!"
msgstr "Kahjuks ei ole otsitav leht olemas!"
#: 404.php:27
msgid "Return to homepage"
msgstr "Tagasi avalehele"
#: single-job.php:48
msgid "Salary from"
msgstr "Palk alates"
#: single-job.php:54
msgid "Salary to"
msgstr "Palk kuni"
#: single-job.php:66
msgid "Published"
msgstr "Avaldatud"
#: single-job.php:68
msgid "Valid till"
msgstr "Kehtiv kuni"
#: single-job.php:75
msgid "Apply"
msgstr "Kandideeri"
#: header.php:100
msgid "Get an offer"
msgstr "Soovin tööpakkumist"
#: header.php:118 page-vasaros-darbu-bankas.php:186
#: template-parts/layout/aside-job-list.php:147
msgid "Get a job offer"
msgstr "Küsi pakkumist"
#: front-page.php:43
msgid "Recent job ads"
msgstr "Viimased töökuulutused"
#: front-page.php:70 template-parts/jobs/jobs-not-found.php:25
msgid "More job ads"
msgstr "Rohkem tööpakkumisi"
#: front-page.php:80 sales-page.php:57
msgid "Trust in us"
msgstr "Meid usaldatakse"
#. Name of the template
msgid "Search & Jobs page"
msgstr "Search & Jobs page"
#: search.php:32 page-vasaros-darbu-bankas.php:39
msgid "Other filters"
msgstr "Muud filtrid"
#. Name of the template
msgid "Employees Landing Page I"
msgstr ""
#. Name of the template
msgid "VDB page"
msgstr "VDB page"
#: page-vasaros-darbu-bankas.php:30
msgid ""
"Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones."
msgstr ""
"Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones."
#: page-vasaros-darbu-bankas.php:170
#: template-parts/layout/aside-job-list.php:131
msgid "Didn't find a job offer you like?"
msgstr "Kas ei leidnud tööpakkumist mis meeldiks?"
#: page-vasaros-darbu-bankas.php:172
#: template-parts/layout/aside-job-list.php:133
msgid "Fill out the form and we will contact you"
msgstr "Täitke päringu vorm ja me võtame Teiega ühendust."
#: page-vasaros-darbu-bankas.php:196
msgid "900"
msgstr "900"
#: page-vasaros-darbu-bankas.php:197
msgid ""
"This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!"
msgstr ""
"This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!"
#: searchform.php:44
msgid "Locations"
msgstr "Asukoht"
#: searchform.php:61
msgid "Keyword"
msgstr "Märksõna"
#: searchform.php:66
msgid "Search"
msgstr "Otsing"
#. Name of the template
msgid "Sales page"
msgstr "Sales page"
#. Name of the template
msgid "Regions page"
msgstr "Regions page"
#. Name of the template
msgid "Divisions page"
msgstr "Divisions page"
#: page-divisions.php:53
msgid "All"
msgstr "Kõik"
#: template-parts/jobs/jobs-none.php:14
msgid "There are currently no job ads."
msgstr "Hetkel pole ühtegi tööpakkumist."
#: template-parts/jobs/jobs-not-found.php:14
msgid "No search results were found."
msgstr "Otsingutulemusi ei leitud."
#: template-parts/layout/aside-job-list.php:67
msgid "More ..."
msgstr "Rohkem..."
#: template-parts/layout/aside-job-list.php:100
msgid "City"
msgstr "Linn"
#: template-parts/layout/aside-job-list.php:104
msgid "Job area"
msgstr "Valdkond"
#: template-parts/layout/aside-job-list.php:108
msgid "Job type"
msgstr "Töötüüp"
#: template-parts/layout/aside-job-list.php:117
msgid "Reset filters"
msgstr "Tühista filtrid"
#: template-parts/layout/aside-job.php:11
msgid "Job position"
msgstr "Töökoht"
#: template-parts/layout/aside-job.php:11
msgid "I think you might like this job offer"
msgstr "Arvan, et sulle võiks see tööpakkumine meeldida"
#: template-parts/layout/aside-job.php:43
msgid "Suggest a friend"
msgstr "Soovita sõbrale"
#: template-parts/layout/aside-job-inactive.php:1
msgid "Job ad is inactive"
msgstr "Tööpakkumine pole aktiivne"
#. Name of the theme
#. Author of the theme
msgid "Biuro"
msgstr "Biuro"
#. Description of the theme
msgid "Biuro multiregion theme"
msgstr "Biuro multiregion theme"
#. Author URI of the theme
msgid "https://www.biuro.lt/"
msgstr "https://www.biuro.ee/"
...@@ -2,8 +2,8 @@ msgid "" ...@@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Biuro\n" "Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 11:52+0000\n" "POT-Creation-Date: 2019-06-11 22:21+0000\n"
"PO-Revision-Date: 2019-05-31 12:07+0000\n" "PO-Revision-Date: 2019-06-26 13:32+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n" "Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Estonian\n" "Language-Team: Estonian\n"
"Language: et\n" "Language: et\n"
...@@ -12,40 +12,44 @@ msgstr "" ...@@ -12,40 +12,44 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n" "X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.2.1" "X-Loco-Version: 2.3.0; wp-5.2.1"
#. Name of the template #: 404.php:25
msgid "Regions page" msgid "Sorry, the page you are looking for does not exist!"
msgstr "Regions page" msgstr "Kahjuks ei ole otsitav leht olemas!"
#. Name of the template #: 404.php:27
msgid "Divisions page" msgid "Return to homepage"
msgstr "Divisions page" msgstr "Tagasi avalehele"
#: page-divisions.php:70 #: single-job.php:48
msgid "All" msgid "Salary from"
msgstr "Kõik" msgstr "Palk alates"
#: header.php:139 #: single-job.php:54
msgid "Get an offer" msgid "Salary to"
msgstr "Saa pakkumist" msgstr "Palk kuni"
#: header.php:157 page-vasaros-darbu-bankas.php:186 #: single-job.php:66
#: template-parts/layout/aside-job-list.php:215 msgid "Published"
msgid "Get a job offer" msgstr "Avaldatud"
msgstr "Saa tööpakkumist"
#: searchform.php:114 #: single-job.php:68
msgid "Locations" msgid "Valid till"
msgstr "Asukoht" msgstr "Kehtiv kuni"
#: searchform.php:230 #: single-job.php:75
msgid "Keyword" msgid "Apply"
msgstr "Märksõna" msgstr "Kandideeri"
#: searchform.php:238 #: header.php:100
msgid "Search" msgid "Get an offer"
msgstr "Otsing" msgstr "Soovin tööpakkumist"
#: header.php:118 page-vasaros-darbu-bankas.php:186
#: template-parts/layout/aside-job-list.php:147
msgid "Get a job offer"
msgstr "Küsi tööpakkumist"
#: front-page.php:43 #: front-page.php:43
msgid "Recent job ads" msgid "Recent job ads"
...@@ -57,19 +61,19 @@ msgstr "Rohkem tööpakkumisi" ...@@ -57,19 +61,19 @@ msgstr "Rohkem tööpakkumisi"
#: front-page.php:80 sales-page.php:57 #: front-page.php:80 sales-page.php:57
msgid "Trust in us" msgid "Trust in us"
msgstr "Meile usaldatakse" msgstr "Meid usaldatakse"
#. Name of the template #. Name of the template
msgid "Sales page" msgid "Search & Jobs page"
msgstr "Sales page" msgstr "Search & Jobs page"
#: 404.php:25 #: search.php:32 page-vasaros-darbu-bankas.php:39
msgid "Sorry, the page you are looking for does not exist!" msgid "Other filters"
msgstr "Kahjuks ei ole otsitav leht olemas!" msgstr "Muud filtrid"
#: 404.php:27 #. Name of the template
msgid "Return to homepage" msgid "Employees Landing Page I"
msgstr "Tagasi avalehele" msgstr ""
#. Name of the template #. Name of the template
msgid "VDB page" msgid "VDB page"
...@@ -83,19 +87,13 @@ msgstr "" ...@@ -83,19 +87,13 @@ msgstr ""
"Find summer job – look through the job ads, we are constantly updating the " "Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones." "list and adding new ones."
#: page-vasaros-darbu-bankas.php:39 search.php:32
msgid "Other filters"
msgstr "Muud filtrid"
#: page-vasaros-darbu-bankas.php:170 #: page-vasaros-darbu-bankas.php:170
#: template-parts/layout/aside-job-list.php:199 #: template-parts/layout/aside-job-list.php:131
msgid "Didn't find a job offer you like?" msgid "Didn't find a job offer you like?"
msgstr "" msgstr "Kas ei leidnud tööpakkumist mis meeldiks?"
"33/5000\n"
"Kas sulle ei meeldinud tööpakkumist?"
#: page-vasaros-darbu-bankas.php:172 #: page-vasaros-darbu-bankas.php:172
#: template-parts/layout/aside-job-list.php:201 #: template-parts/layout/aside-job-list.php:133
msgid "Fill out the form and we will contact you" msgid "Fill out the form and we will contact you"
msgstr "Täitke päringu vorm ja me võtame Teiega ühendust." msgstr "Täitke päringu vorm ja me võtame Teiega ühendust."
...@@ -111,73 +109,77 @@ msgstr "" ...@@ -111,73 +109,77 @@ msgstr ""
"This is how many people we employed during summer at 2018.<br/>Join us this " "This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!" "summer!"
#. Name of the template #: searchform.php:44
msgid "Search & Jobs page" msgid "Locations"
msgstr "Search & Jobs page" msgstr "Asukoht"
#: single-job.php:48
msgid "Salary from"
msgstr "Palk alates"
#: single-job.php:54 #: searchform.php:61
msgid "Salary to" msgid "Keyword"
msgstr "Palk kuni" msgstr "Märksõna"
#: single-job.php:66 #: searchform.php:66
msgid "Published" msgid "Search"
msgstr "Avaldatud" msgstr "Otsing"
#: single-job.php:68 #. Name of the template
msgid "Valid till" msgid "Sales page"
msgstr "Kehtiv kuni" msgstr "Sales page"
#: single-job.php:75 #. Name of the template
msgid "Apply" msgid "Regions page"
msgstr "Rakenda" msgstr "Regions page"
#: template-parts/layout/aside-job-inactive.php:1 #. Name of the template
msgid "Job ad is inactive" msgid "Divisions page"
msgstr "Töö reklaam on mitteaktiivne" msgstr "Divisions page"
#: template-parts/layout/aside-job.php:11 #: page-divisions.php:53
msgid "Job position" msgid "All"
msgstr "Tööpiirkond" msgstr "Kõik"
#: template-parts/layout/aside-job.php:11 #: template-parts/jobs/jobs-none.php:14
msgid "I think you might like this job offer" msgid "There are currently no job ads."
msgstr "Ma arvan, et teile meeldib see tööpakkumine" msgstr "Hetkel pole ühtegi tööpakkumist."
#: template-parts/layout/aside-job.php:43 #: template-parts/jobs/jobs-not-found.php:14
msgid "Suggest a friend" msgid "No search results were found."
msgstr "Soovita sõbrale" msgstr "Otsingutulemusi ei leitud."
#: template-parts/layout/aside-job-list.php:144 #: template-parts/layout/aside-job-list.php:67
msgid "More ..." msgid "More ..."
msgstr "Rohkem..." msgstr "Rohkem..."
#: template-parts/layout/aside-job-list.php:168 #: template-parts/layout/aside-job-list.php:100
msgid "City" msgid "City"
msgstr "Linn" msgstr "Linn"
#: template-parts/layout/aside-job-list.php:172 #: template-parts/layout/aside-job-list.php:104
msgid "Job area" msgid "Job area"
msgstr "Tööpiirkond" msgstr "Valdkond"
#: template-parts/layout/aside-job-list.php:176 #: template-parts/layout/aside-job-list.php:108
msgid "Job type" msgid "Job type"
msgstr "Job type" msgstr "Töötüüp"
#: template-parts/layout/aside-job-list.php:185 #: template-parts/layout/aside-job-list.php:117
msgid "Reset filters" msgid "Reset filters"
msgstr "Nulli filtrid" msgstr "Tühista filtrid"
#: template-parts/jobs/jobs-not-found.php:14 #: template-parts/layout/aside-job.php:11
msgid "No search results were found." msgid "Job position"
msgstr "Otsingutulemusi ei leitud." msgstr "Töökoht"
#: template-parts/jobs/jobs-none.php:14 #: template-parts/layout/aside-job.php:11
msgid "There are currently no job ads." msgid "I think you might like this job offer"
msgstr "Hetkel pole ühtegi tööpakkumist." msgstr "Arvan, et sulle võiks see tööpakkumine meeldida"
#: template-parts/layout/aside-job.php:43
msgid "Suggest a friend"
msgstr "Soovita sõbrale"
#: template-parts/layout/aside-job-inactive.php:1
msgid "Job ad is inactive"
msgstr "Tööpakkumine pole aktiivne"
#. Name of the theme #. Name of the theme
#. Author of the theme #. Author of the theme
......
msgid ""
msgstr ""
"Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-04 13:03+0000\n"
"PO-Revision-Date: 2019-05-04 13:04+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Lithuanian\n"
"Language: lt_LT\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 "
"&&(n%100<10||n%100 >= 20)? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.1.1"
#: 404.php:25
msgid "Sorry, the page you are looking for does not exist!"
msgstr "Atsiprašome, bet puslapis kurio jūs ieškote, neegzistuoja!"
#: 404.php:27
msgid "Return to homepage"
msgstr "Grįžti į pagrindinį puslapį"
#: single-job.php:48
msgid "Salary from"
msgstr "Darbo užmokestis nuo"
#: single-job.php:54
msgid "Salary to"
msgstr "Darbo užmokestis iki"
#: single-job.php:66
msgid "Published"
msgstr "Paskelbta"
#: single-job.php:68
msgid "Valid till"
msgstr "Galioja iki"
#: single-job.php:75
msgid "Apply"
msgstr "Kandidatuoti"
#: header.php:137
msgid "Get an offer"
msgstr "Gaukite pasiūlymą"
#: header.php:155 page-vasaros-darbu-bankas.php:186
#: template-parts/layout/aside-job-list.php:215
msgid "Get a job offer"
msgstr "Gauk darbo pasiūlymą"
#: front-page.php:43
msgid "Recent job ads"
msgstr "Naujausi darbo skelbimai"
#: front-page.php:70 template-parts/jobs/jobs-not-found.php:25
msgid "More job ads"
msgstr "Daugiau darbo skelbimų"
#: front-page.php:80 sales-page.php:57
msgid "Trust in us"
msgstr "Mumis pasitiki"
#. Name of the template
msgid "Search & Jobs page"
msgstr "Paieškos ir darbo skelbimų puslapis"
#: search.php:32 page-vasaros-darbu-bankas.php:39
msgid "Other filters"
msgstr "Kiti paieškos filtrai"
#. Name of the template
msgid "VDB page"
msgstr "VDB puslapis"
#: page-vasaros-darbu-bankas.php:30
msgid ""
"Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones."
msgstr ""
"Kviečiame surasti darbą vasarai - peržvelk pasiūlymus, juos nuolat papildome "
"naujais!"
#: page-vasaros-darbu-bankas.php:170
#: template-parts/layout/aside-job-list.php:199
msgid "Didn't find a job offer you like?"
msgstr "Neradai tau tinkančio pasiūlymo?"
#: page-vasaros-darbu-bankas.php:172
#: template-parts/layout/aside-job-list.php:201
msgid "Fill out the form and we will contact you"
msgstr "Užpildyk formą ir mes su tavimi susisieksime"
#: page-vasaros-darbu-bankas.php:196
msgid "900"
msgstr "900"
#: page-vasaros-darbu-bankas.php:197
msgid ""
"This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!"
msgstr ""
"Tiek 2018 m. vasarą įdarbinome žmonių.<br/>Šiais metais kviečiame "
"prisijungti ir tave!"
#: searchform.php:114
msgid "Locations"
msgstr "Vietovė"
#: searchform.php:230
msgid "Keyword"
msgstr "Raktažodis"
#: searchform.php:238
msgid "Search"
msgstr "Ieškoti"
#. Name of the template
msgid "Sales page"
msgstr "Pardavimų puslapis"
#. Name of the template
msgid "Regions page"
msgstr "Regionų puslapis"
#. Name of the template
msgid "Divisions page"
msgstr "Padalinių puslapis"
#: page-divisions.php:70
msgid "All"
msgstr "Visi"
#: template-parts/jobs/jobs-none.php:14
msgid "There are currently no job ads."
msgstr "Šiuo metu nėra darbo pasiūlymų pagal Jūsų paiešką."
#: template-parts/jobs/jobs-not-found.php:14
msgid "No search results were found."
msgstr "Pagal Jūsų paiešką, darbo skelbimų šiuo metu neturime."
#: template-parts/layout/aside-job-list.php:144
msgid "More ..."
msgstr "Daugiau..."
#: template-parts/layout/aside-job-list.php:168
msgid "City"
msgstr "Miestas"
#: template-parts/layout/aside-job-list.php:172
msgid "Job area"
msgstr "Darbo sritis"
#: template-parts/layout/aside-job-list.php:176
msgid "Job type"
msgstr "Darbo tipas"
#: template-parts/layout/aside-job-list.php:185
msgid "Reset filters"
msgstr "Atstatyti paieškos filtrus"
#: template-parts/layout/aside-job.php:11
msgid "Job position"
msgstr "Darbo pasiūlymas"
#: template-parts/layout/aside-job.php:11
msgid "I think you might like this job offer"
msgstr "Manau, tau turėtų patikti šis darbo pasiūlymas"
#: template-parts/layout/aside-job.php:43
msgid "Suggest a friend"
msgstr "Pasiūlyk draugui"
#: template-parts/layout/aside-job-inactive.php:1
msgid "Job ad is inactive"
msgstr "Darbo skelbimas yra neaktyvus"
#. Name of the theme
#. Author of the theme
msgid "Biuro"
msgstr "Biuro"
#. Description of the theme
msgid "Biuro multiregion theme"
msgstr "Biuro multiregion theme"
#. Author URI of the theme
msgid "https://www.biuro.lt/"
msgstr "https://www.biuro.lt/"
...@@ -3,7 +3,7 @@ msgstr "" ...@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Biuro\n" "Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-04 13:03+0000\n" "POT-Creation-Date: 2019-05-04 13:03+0000\n"
"PO-Revision-Date: 2019-05-04 13:04+0000\n" "PO-Revision-Date: 2019-06-19 05:52+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n" "Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Lithuanian\n" "Language-Team: Lithuanian\n"
"Language: lt_LT\n" "Language: lt_LT\n"
...@@ -13,7 +13,7 @@ msgstr "" ...@@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n" "X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.1.1" "X-Loco-Version: 2.3.0; wp-5.2.1"
#: 404.php:25 #: 404.php:25
msgid "Sorry, the page you are looking for does not exist!" msgid "Sorry, the page you are looking for does not exist!"
...@@ -108,7 +108,7 @@ msgstr "" ...@@ -108,7 +108,7 @@ msgstr ""
#: searchform.php:114 #: searchform.php:114
msgid "Locations" msgid "Locations"
msgstr "Vietovė" msgstr "Miestas"
#: searchform.php:230 #: searchform.php:230
msgid "Keyword" msgid "Keyword"
......
msgid ""
msgstr ""
"Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 11:11+0000\n"
"PO-Revision-Date: 2019-05-31 11:49+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Latvian\n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=n % 10 == 1 && n % 100 != 11 ? 0 : n != 0 ? "
"1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.2.1"
#. Name of the template
msgid "Regions page"
msgstr "Regions page"
#. Name of the template
msgid "Divisions page"
msgstr "Divisions page"
#: page-divisions.php:70
msgid "All"
msgstr "Visi"
#: header.php:139
msgid "Get an offer"
msgstr "Saņemiet piedāvājumu"
#: header.php:157 page-vasaros-darbu-bankas.php:186
#: template-parts/layout/aside-job-list.php:215
msgid "Get a job offer"
msgstr "Saņemiet darba piedāvājumu"
#: searchform.php:114
msgid "Locations"
msgstr "Atrašanās vieta"
#: searchform.php:230
msgid "Keyword"
msgstr "Atslēgvārds"
#: searchform.php:238
msgid "Search"
msgstr "Meklēt"
#: front-page.php:43
msgid "Recent job ads"
msgstr "Jaunākie darba sludinājumi"
#: front-page.php:70 template-parts/jobs/jobs-not-found.php:25
msgid "More job ads"
msgstr "Vairāk darba sludinājumu"
#: front-page.php:80 sales-page.php:57
msgid "Trust in us"
msgstr "Kompānijas, kuras mums uzticas"
#. Name of the template
msgid "Sales page"
msgstr "Sales page"
#: 404.php:25
msgid "Sorry, the page you are looking for does not exist!"
msgstr "Atvainojiet, lapa, kuru meklējat, nepastāv!"
#: 404.php:27
msgid "Return to homepage"
msgstr "Atgriezties sākumlapā"
#. Name of the template
msgid "VDB page"
msgstr "VDB page"
#: page-vasaros-darbu-bankas.php:30
msgid ""
"Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones."
msgstr ""
"Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones."
#: page-vasaros-darbu-bankas.php:39 search.php:32
msgid "Other filters"
msgstr "Citi filtri"
#: page-vasaros-darbu-bankas.php:170
#: template-parts/layout/aside-job-list.php:199
msgid "Didn't find a job offer you like?"
msgstr "Vai neatradāt sev vēlamo darba piedāvājumu?"
#: page-vasaros-darbu-bankas.php:172
#: template-parts/layout/aside-job-list.php:201
msgid "Fill out the form and we will contact you"
msgstr "Aizpildiet pieteikuma formu un mēs sazināsimies ar Jums!"
#: page-vasaros-darbu-bankas.php:196
msgid "900"
msgstr "900"
#: page-vasaros-darbu-bankas.php:197
msgid ""
"This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!"
msgstr ""
"This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!"
#. Name of the template
msgid "Search & Jobs page"
msgstr "Search & Jobs page"
#: single-job.php:48
msgid "Salary from"
msgstr "Alga no "
#: single-job.php:54
msgid "Salary to"
msgstr "Alga līdz"
#: single-job.php:66
msgid "Published"
msgstr "Publicēts"
#: single-job.php:68
msgid "Valid till"
msgstr "Derīgs līdz"
#: single-job.php:75
msgid "Apply"
msgstr "Lietot"
#: template-parts/layout/aside-job-inactive.php:1
msgid "Job ad is inactive"
msgstr "Darba sludinājums ir neaktīvs"
#: template-parts/layout/aside-job.php:11
msgid "Job position"
msgstr "Darba pozīcija"
#: template-parts/layout/aside-job.php:11
msgid "I think you might like this job offer"
msgstr "Es domāju, ka jums varētu patikt šis darba piedāvājums"
#: template-parts/layout/aside-job.php:43
msgid "Suggest a friend"
msgstr "Ieteikt draugam"
#: template-parts/layout/aside-job-list.php:144
msgid "More ..."
msgstr "Vairāk ..."
#: template-parts/layout/aside-job-list.php:168
msgid "City"
msgstr "Pilsēta"
#: template-parts/layout/aside-job-list.php:172
msgid "Job area"
msgstr "Darba joma"
#: template-parts/layout/aside-job-list.php:176
msgid "Job type"
msgstr "Darba veids"
#: template-parts/layout/aside-job-list.php:185
msgid "Reset filters"
msgstr "Atiestatīt filtrus"
#: template-parts/jobs/jobs-not-found.php:14
msgid "No search results were found."
msgstr "Meklēšanas rezultāti netika atrasti."
#: template-parts/jobs/jobs-none.php:14
msgid "There are currently no job ads."
msgstr "Pašlaik nav darba sludinājumu."
#. Name of the theme
#. Author of the theme
msgid "Biuro"
msgstr "Biuro"
#. Description of the theme
msgid "Biuro multiregion theme"
msgstr "Biuro multiregion theme"
#. Author URI of the theme
msgid "https://www.biuro.lt/"
msgstr "https://www.biuro.lv"
...@@ -3,7 +3,7 @@ msgstr "" ...@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Biuro\n" "Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 11:11+0000\n" "POT-Creation-Date: 2019-05-31 11:11+0000\n"
"PO-Revision-Date: 2019-06-09 14:04+0000\n" "PO-Revision-Date: 2019-06-11 12:42+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n" "Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Latvian\n" "Language-Team: Latvian\n"
"Language: lv\n" "Language: lv\n"
...@@ -58,7 +58,7 @@ msgstr "Vairāk darba sludinājumu" ...@@ -58,7 +58,7 @@ msgstr "Vairāk darba sludinājumu"
#: front-page.php:80 sales-page.php:57 #: front-page.php:80 sales-page.php:57
msgid "Trust in us" msgid "Trust in us"
msgstr "Uzticiet mums" msgstr "Mums uzticas"
#. Name of the template #. Name of the template
msgid "Sales page" msgid "Sales page"
......
msgid ""
msgstr ""
"Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 10:43+0000\n"
"PO-Revision-Date: 2019-06-18 06:16+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && "
"n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.3.0; wp-5.2.1"
#. Name of the template
msgid "Regions page"
msgstr "Regions page"
#. Name of the template
msgid "Divisions page"
msgstr "Divisions page"
#: page-divisions.php:70
msgid "All"
msgstr "Все"
#: header.php:139
msgid "Get an offer"
msgstr "Получите предложение"
#: header.php:157 page-vasaros-darbu-bankas.php:186
#: template-parts/layout/aside-job-list.php:215
msgid "Get a job offer"
msgstr "Получи предложение о работе"
#: searchform.php:114
msgid "Locations"
msgstr "Место нахождения"
#: searchform.php:230
msgid "Keyword"
msgstr "Ключевое слово"
#: searchform.php:238
msgid "Search"
msgstr "Поиск"
#: front-page.php:43
msgid "Recent job ads"
msgstr "Недавние объявления о работе"
#: front-page.php:70 template-parts/jobs/jobs-not-found.php:25
msgid "More job ads"
msgstr "Больше объявлений о работе"
#: front-page.php:80 sales-page.php:57
msgid "Trust in us"
msgstr "Они доверяют нам"
#. Name of the template
msgid "Sales page"
msgstr "Sales page"
#: 404.php:25
msgid "Sorry, the page you are looking for does not exist!"
msgstr "Извините, страница, которую вы ищете, не существует!"
#: 404.php:27
msgid "Return to homepage"
msgstr "Вернуться на главную страницу"
#. Name of the template
msgid "VDB page"
msgstr "VDB page"
#: page-vasaros-darbu-bankas.php:30
msgid ""
"Find summer job – look through the job ads, we are constantly updating the "
"list and adding new ones."
msgstr ""
"Найдите летнюю работу - просматривайте объявления о работе, мы постоянно "
"обновляем список и добавляем новые."
#: page-vasaros-darbu-bankas.php:39 search.php:32
msgid "Other filters"
msgstr "Другие поисковые фильтры"
#: page-vasaros-darbu-bankas.php:170
#: template-parts/layout/aside-job-list.php:199
msgid "Didn't find a job offer you like?"
msgstr "Не нашли предложение работы, которое вам нравится?"
#: page-vasaros-darbu-bankas.php:172
#: template-parts/layout/aside-job-list.php:201
msgid "Fill out the form and we will contact you"
msgstr "Заполните форму и мы свяжемся с вами"
#: page-vasaros-darbu-bankas.php:196
msgid "900"
msgstr "900"
#: page-vasaros-darbu-bankas.php:197
msgid ""
"This is how many people we employed during summer at 2018.<br/>Join us this "
"summer!"
msgstr ""
"900 человек были трудоустроены летом 2018 года. <br/> Присоединяйтесь к нам "
"этим летом!"
#. Name of the template
msgid "Search & Jobs page"
msgstr "Search & Jobs page"
#: single-job.php:48
msgid "Salary from"
msgstr "Зарплата от"
#: single-job.php:54
msgid "Salary to"
msgstr "Зарплата до"
#: single-job.php:66
msgid "Published"
msgstr "Публикации"
#: single-job.php:68
msgid "Valid till"
msgstr "Действителен до"
#: single-job.php:75
msgid "Apply"
msgstr "Подать заявку"
#: template-parts/layout/aside-job-inactive.php:1
msgid "Job ad is inactive"
msgstr "Объявление о работе неактивно"
#: template-parts/layout/aside-job.php:11
msgid "Job position"
msgstr "Должность"
#: template-parts/layout/aside-job.php:11
msgid "I think you might like this job offer"
msgstr "Я думаю, что тебе может понравиться это предложение о работе"
#: template-parts/layout/aside-job.php:43
msgid "Suggest a friend"
msgstr "Предложить другу"
#: template-parts/layout/aside-job-list.php:144
msgid "More ..."
msgstr "Больше..."
#: template-parts/layout/aside-job-list.php:168
msgid "City"
msgstr "Город"
#: template-parts/layout/aside-job-list.php:172
msgid "Job area"
msgstr "Категория"
#: template-parts/layout/aside-job-list.php:176
msgid "Job type"
msgstr "Тип работы"
#: template-parts/layout/aside-job-list.php:185
msgid "Reset filters"
msgstr "Сбросить фильтры"
#: template-parts/jobs/jobs-not-found.php:14
msgid "No search results were found."
msgstr "Результаты поиска не были найдены."
#: template-parts/jobs/jobs-none.php:14
msgid "There are currently no job ads."
msgstr ""
"На русском языке нет объявлений о работе. Но есть много объявлений о работе "
"на <a href=\"https://biuro.ee/toeoeotsijatele/toeoepakkumised/\">эстонском "
"языке - выбирайте.</a>"
#. Name of the theme
#. Author of the theme
msgid "Biuro"
msgstr "Biuro"
#. Description of the theme
msgid "Biuro multiregion theme"
msgstr "Biuro multiregion theme"
#. Author URI of the theme
msgid "https://www.biuro.lt/"
msgstr "https://www.biuro.ee/"
...@@ -3,7 +3,7 @@ msgstr "" ...@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Biuro\n" "Project-Id-Version: Biuro\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-31 10:43+0000\n" "POT-Creation-Date: 2019-05-31 10:43+0000\n"
"PO-Revision-Date: 2019-05-31 11:09+0000\n" "PO-Revision-Date: 2019-06-18 06:16+0000\n"
"Last-Translator: biuro <info@biuro.eu>\n" "Last-Translator: biuro <info@biuro.eu>\n"
"Language-Team: Russian\n" "Language-Team: Russian\n"
"Language: ru_RU\n" "Language: ru_RU\n"
...@@ -13,7 +13,7 @@ msgstr "" ...@@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Loco https://localise.biz/\n" "X-Generator: Loco https://localise.biz/\n"
"X-Loco-Version: 2.2.2; wp-5.2.1" "X-Loco-Version: 2.3.0; wp-5.2.1"
#. Name of the template #. Name of the template
msgid "Regions page" msgid "Regions page"
...@@ -34,11 +34,11 @@ msgstr "Получите предложение" ...@@ -34,11 +34,11 @@ msgstr "Получите предложение"
#: header.php:157 page-vasaros-darbu-bankas.php:186 #: header.php:157 page-vasaros-darbu-bankas.php:186
#: template-parts/layout/aside-job-list.php:215 #: template-parts/layout/aside-job-list.php:215
msgid "Get a job offer" msgid "Get a job offer"
msgstr "Получи рабочее предложение" msgstr "Получи предложение о работе"
#: searchform.php:114 #: searchform.php:114
msgid "Locations" msgid "Locations"
msgstr "Местность" msgstr "Место нахождения"
#: searchform.php:230 #: searchform.php:230
msgid "Keyword" msgid "Keyword"
...@@ -50,7 +50,7 @@ msgstr "Поиск" ...@@ -50,7 +50,7 @@ msgstr "Поиск"
#: front-page.php:43 #: front-page.php:43
msgid "Recent job ads" msgid "Recent job ads"
msgstr "Новейшие объявления о работе" msgstr "Новые объявления о работе"
#: front-page.php:70 template-parts/jobs/jobs-not-found.php:25 #: front-page.php:70 template-parts/jobs/jobs-not-found.php:25
msgid "More job ads" msgid "More job ads"
...@@ -160,7 +160,7 @@ msgstr "Город" ...@@ -160,7 +160,7 @@ msgstr "Город"
#: template-parts/layout/aside-job-list.php:172 #: template-parts/layout/aside-job-list.php:172
msgid "Job area" msgid "Job area"
msgstr "Сфера деятельности" msgstr "Категория"
#: template-parts/layout/aside-job-list.php:176 #: template-parts/layout/aside-job-list.php:176
msgid "Job type" msgid "Job type"
...@@ -192,4 +192,4 @@ msgstr "Biuro multiregion theme" ...@@ -192,4 +192,4 @@ msgstr "Biuro multiregion theme"
#. Author URI of the theme #. Author URI of the theme
msgid "https://www.biuro.lt/" msgid "https://www.biuro.lt/"
msgstr "https://www.biuro.lt/" msgstr "https://www.biuro.ee/"
...@@ -152,9 +152,9 @@ class Biuro_Contacts_Public { ...@@ -152,9 +152,9 @@ class Biuro_Contacts_Public {
} }
public static function validate( $str, $key, $value, $post ) { public static function validate( $str, $key, $value, $post ) {
$empty = ['status' => '', 'message' => '']; $empty = ['status' => '', 'message' => '', 'translation' => ''];
$success = ['status' => 'success', 'message' => '']; $success = ['status' => 'success', 'message' => '', 'translation' => ''];
$required = ['status' => 'error', 'message' => 'This field is required']; // __('This field is required', 'biuro-contacts'); $required = ['status' => 'error', 'message' => 'This field is required', 'translation' => __('This field is required', 'biuro-contacts')];
switch($key) { switch($key) {
case 'name': case 'name':
...@@ -165,7 +165,8 @@ class Biuro_Contacts_Public { ...@@ -165,7 +165,8 @@ class Biuro_Contacts_Public {
if (!$value && !is_email($post['email'])): if (!$value && !is_email($post['email'])):
return [ return [
'status' => 'error', 'status' => 'error',
'message' => 'Phone or email field is required' // __('Phone or email field is required', 'biuro-contacts'); 'message' => 'Phone or email field is required',
'translation' => __('Phone or email field is required', 'biuro-contacts')
]; ];
endif; endif;
...@@ -176,7 +177,8 @@ class Biuro_Contacts_Public { ...@@ -176,7 +177,8 @@ class Biuro_Contacts_Public {
if ( strlen($value) < 7 || !preg_match('/^[\d|\s|\+\-]+$/', $value) ): if ( strlen($value) < 7 || !preg_match('/^[\d|\s|\+\-]+$/', $value) ):
return [ return [
'status' => 'error', 'status' => 'error',
'message' => 'Incorrect phone number' // __('Incorrect phone number', 'biuro-contacts'); 'message' => 'Incorrect phone number',
'translation' => __('Incorrect phone number', 'biuro-contacts')
]; ];
endif; endif;
...@@ -186,14 +188,16 @@ class Biuro_Contacts_Public { ...@@ -186,14 +188,16 @@ class Biuro_Contacts_Public {
if (!$post['phone'] && !$value): if (!$post['phone'] && !$value):
return [ return [
'status' => 'error', 'status' => 'error',
'message' => 'Email or phone field is required' // __('Email or phone field is required', 'biuro-contacts'); 'message' => 'Email or phone field is required',
'translation' => __('Email or phone field is required', 'biuro-contacts')
]; ];
endif; endif;
if (!$post['phone'] && !is_email($value)): if (!$post['phone'] && !is_email($value)):
return [ return [
'status' => 'error', 'status' => 'error',
'message' => 'Email format is incorrect' // __('Email format is incorrect', 'biuro-contacts'); 'message' => 'Email format is incorrect',
'translation' => __('Email format is incorrect', 'biuro-contacts')
]; ];
else: else:
...@@ -208,7 +212,8 @@ class Biuro_Contacts_Public { ...@@ -208,7 +212,8 @@ class Biuro_Contacts_Public {
if ($value != "1"): if ($value != "1"):
return [ return [
'status' => 'error', 'status' => 'error',
'message' => 'You have to agree with conditions' // __('You have to agree with conditions', 'biuro-contacts'); 'message' => 'You have to agree with conditions',
'translation' => __('You have to agree with conditions', 'biuro-contacts')
]; ];
endif; endif;
...@@ -286,6 +291,22 @@ class Biuro_Contacts_Public { ...@@ -286,6 +291,22 @@ class Biuro_Contacts_Public {
endif; endif;
} }
public static function isCaptchaValid($code) {
if ($code) {
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6Lc76qoUAAAAAHfGWVZFEzFeYAVpCkhDSoMYvVUi&response=".$code."&remoteip=".$_SERVER['REMOTE_ADDR']);
$response = json_decode($response,true);
if ($response['success'] !=1 ) {
// gal reikia loginti??
return false;
}
return true;
}
return false;
}
/** /**
* Processes shortcode biuro-contacts--employees * Processes shortcode biuro-contacts--employees
* *
...@@ -329,7 +350,7 @@ class Biuro_Contacts_Public { ...@@ -329,7 +350,7 @@ class Biuro_Contacts_Public {
$nonce = $_POST['_wpnonce']; $nonce = $_POST['_wpnonce'];
$referer = $_POST['_wp_http_referer']; $referer = $_POST['_wp_http_referer'];
if ( !isset( $nonce ) || !wp_verify_nonce($nonce, 'employees_post_nonce' ) ) { if ( !isset( $nonce ) || !wp_verify_nonce($nonce, 'employees_post_nonce' ) || !static::isCaptchaValid($_POST['captcha'])) {
wp_redirect( $referer ); wp_redirect( $referer );
exit; exit;
} }
...@@ -365,7 +386,8 @@ class Biuro_Contacts_Public { ...@@ -365,7 +386,8 @@ class Biuro_Contacts_Public {
if (!in_array( $arr_file_type['type'], $allowed_file_types ) ) { if (!in_array( $arr_file_type['type'], $allowed_file_types ) ) {
$_SESSION['position--cv-status'] = 'error'; $_SESSION['position--cv-status'] = 'error';
$_SESSION['position--cv-message'] = 'Incorrect file'; // __('Incorrect file', 'biuro-contacts'); $_SESSION['position--cv-message'] = 'Incorrect file';
$_SESSION['position--cv-translation'] = __('Incorrect file', 'biuro-contacts');
wp_redirect( $referer ); wp_redirect( $referer );
exit; exit;
} }
...@@ -436,7 +458,7 @@ class Biuro_Contacts_Public { ...@@ -436,7 +458,7 @@ class Biuro_Contacts_Public {
$nonce = $_POST['_wpnonce']; $nonce = $_POST['_wpnonce'];
$referer = $_POST['_wp_http_referer']; $referer = $_POST['_wp_http_referer'];
if ( !isset( $nonce ) || !wp_verify_nonce($nonce, 'employers_post_nonce' ) ) { if ( !isset( $nonce ) || !wp_verify_nonce($nonce, 'employers_post_nonce' ) || !static::isCaptchaValid($_POST['captcha']) ) {
wp_redirect( $referer ); wp_redirect( $referer );
exit; exit;
} }
...@@ -688,7 +710,7 @@ class Biuro_Contacts_Public { ...@@ -688,7 +710,7 @@ class Biuro_Contacts_Public {
$referer = $_POST['_wp_http_referer']; $referer = $_POST['_wp_http_referer'];
if ( !isset( $nonce ) || !wp_verify_nonce($nonce, 'position_post_nonce' ) ) { if ( !isset( $nonce ) || !wp_verify_nonce($nonce, 'position_post_nonce' ) || !static::isCaptchaValid($_POST['captcha']) ) {
wp_redirect( $referer ); wp_redirect( $referer );
exit; exit;
} }
...@@ -753,7 +775,8 @@ class Biuro_Contacts_Public { ...@@ -753,7 +775,8 @@ class Biuro_Contacts_Public {
if (!in_array( $arr_file_type['type'], $allowed_file_types ) ) { if (!in_array( $arr_file_type['type'], $allowed_file_types ) ) {
$_SESSION['position--cv-status'] = 'error'; $_SESSION['position--cv-status'] = 'error';
$_SESSION['position--cv-message'] = 'Incorrect file'; // __('Incorrect file', 'biuro-contacts'); $_SESSION['position--cv-message'] = 'Incorrect file';
$_SESSION['position--cv-translation'] = __('Incorrect file', 'biuro-contacts');
wp_redirect( $referer ); wp_redirect( $referer );
exit; exit;
} }
......
...@@ -81,11 +81,11 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -81,11 +81,11 @@ if ( ! defined( 'WPINC' ) ) die;
<?php <?php
if (isset($attr['page']) && $attr['page'] == 'landing-1'): if (isset($attr['page']) && $attr['page'] == 'landing-1'):
?> ?>
<button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="1" onclick="ga('send', 'event', 'ContactFormLanding1', 'Button', 'SendContactFormLanding1');"><?php _e('Get a job offer', 'biuro'); ?></button> <button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="1"><?php _e('Get a job offer', 'biuro'); ?></button>
<?php <?php
else: else:
?> ?>
<button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="1" onclick="ga('send', 'event', 'ContactFormEmployee', 'Button', 'SendContactFormEmployee');"><?php _e('Submit', 'biuro-contacts'); ?></button> <button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="1"><?php _e('Submit', 'biuro-contacts'); ?></button>
<?php <?php
endif; endif;
?> ?>
......
...@@ -57,19 +57,6 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -57,19 +57,6 @@ if ( ! defined( 'WPINC' ) ) die;
<div class="c-form--row"> <div class="c-form--row">
<div class="c-form--submit-wrap"> <div class="c-form--submit-wrap">
<?php <button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="2"><?php _e('Submit', 'biuro-contacts'); ?></button>
if (isset($attr['page']) && $attr['page'] == 'landing-1'):
?>
<button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="2" onclick="ga('send', 'event', 'ContactFormLanding1', 'Button', 'UpdateContactFormLanding1');"><?php _e('Submit', 'biuro-contacts'); ?></button>
<?php
else:
?>
<button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="2" onclick="ga('send', 'event', 'ContactFormEmployee', 'Button', 'UpdateContactFormEmployee');"><?php _e('Submit', 'biuro-contacts'); ?></button>
<?php
endif;
?>
</div> </div>
</div><!-- .c-form--row --> </div><!-- .c-form--row -->
...@@ -32,6 +32,18 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -32,6 +32,18 @@ if ( ! defined( 'WPINC' ) ) die;
?> ?>
<input type="hidden" name="action" value="employees_post"> <input type="hidden" name="action" value="employees_post">
<?php wp_nonce_field('employees_post_nonce'); ?> <?php wp_nonce_field('employees_post_nonce'); ?>
<input type="hidden" id="g-recaptcha-response" name="captcha">
<script src="https://www.google.com/recaptcha/api.js?render=6Lc76qoUAAAAALk0aYR500zOZVG1BicNl3GTb-Hu"></script>
<script>
window.grecaptcha.ready(function () {
window.grecaptcha.execute('6Lc76qoUAAAAALk0aYR500zOZVG1BicNl3GTb-Hu', { action: 'employees' }).then(function (token) {
if (document.getElementById('g-recaptcha-response')) {
document.getElementById('g-recaptcha-response').value = token;
}
});
});
</script>
</form> </form>
<?php if($_SESSION['employees--s'] == 1) { <?php if($_SESSION['employees--s'] == 1) {
...@@ -48,19 +60,19 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -48,19 +60,19 @@ if ( ! defined( 'WPINC' ) ) die;
</div> </div>
</div> </div>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
</script> </script>
<?php <?php
if (isset($attr['page']) && $attr['page'] == 'landing-1'): if (isset($attr['page']) && $attr['page'] == 'landing-1'):
?> ?>
<script> <script>
dataLayer.push({'event': 'b2c_form_submit_success_validated', 'label': 'Landing page 1'}); window.dataLayer.push({ 'event': 'b2c_form_submit_success_validated', 'label': 'Landing page 1' });
</script> </script>
<?php <?php
else: else:
?> ?>
<script> <script>
dataLayer.push({'event': 'b2c_form_submit_success_validated', 'label': 'Contact page'}); window.dataLayer.push({ 'event': 'b2c_form_submit_success_validated', 'label': 'Contact page' });
</script> </script>
<?php <?php
endif; endif;
...@@ -84,19 +96,19 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -84,19 +96,19 @@ if ( ! defined( 'WPINC' ) ) die;
</div> </div>
</div> </div>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
</script> </script>
<?php <?php
if (isset($attr['page']) && $attr['page'] == 'landing-1'): if (isset($attr['page']) && $attr['page'] == 'landing-1'):
?> ?>
<script> <script>
dataLayer.push({'event': 'b2c_form_update_success_validated', 'label': 'Landing page 1'}); window.dataLayer.push({ 'event': 'b2c_form_update_success_validated', 'label': 'Landing page 1' });
</script> </script>
<?php <?php
else: else:
?> ?>
<script> <script>
dataLayer.push({'event': 'b2c_form_update_success_validated', 'label': 'Contact page'}); window.dataLayer.push({ 'event': 'b2c_form_update_success_validated', 'label': 'Contact page' });
</script> </script>
<?php <?php
endif; endif;
......
...@@ -77,7 +77,7 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -77,7 +77,7 @@ if ( ! defined( 'WPINC' ) ) die;
<div class="c-form--row"> <div class="c-form--row">
<div class="c-form--submit-wrap"> <div class="c-form--submit-wrap">
<button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="1" onclick="ga('send', 'event', 'ContactForm', 'Button', 'SendContactForm');"><?php _e('Submit', 'biuro-contacts'); ?></button> <button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="1"><?php _e('Submit', 'biuro-contacts'); ?></button>
</div> </div>
</div><!-- .c-form--row --> </div><!-- .c-form--row -->
......
...@@ -44,6 +44,6 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -44,6 +44,6 @@ if ( ! defined( 'WPINC' ) ) die;
<div class="c-form--row"> <div class="c-form--row">
<div class="c-form--submit-wrap"> <div class="c-form--submit-wrap">
<button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="2" onclick="ga('send', 'event', 'ContactForm', 'Button', 'UpdateContactForm');"><?php _e('Submit', 'biuro-contacts'); ?></button> <button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="2"><?php _e('Submit', 'biuro-contacts'); ?></button>
</div> </div>
</div><!-- .c-form--row --> </div><!-- .c-form--row -->
...@@ -32,6 +32,18 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -32,6 +32,18 @@ if ( ! defined( 'WPINC' ) ) die;
?> ?>
<input type="hidden" name="action" value="employers_post"> <input type="hidden" name="action" value="employers_post">
<?php wp_nonce_field('employers_post_nonce'); ?> <?php wp_nonce_field('employers_post_nonce'); ?>
<input type="hidden" id="g-recaptcha-response" name="captcha">
<script src="https://www.google.com/recaptcha/api.js?render=6Lc76qoUAAAAALk0aYR500zOZVG1BicNl3GTb-Hu"></script>
<script>
window.grecaptcha.ready(function () {
window.grecaptcha.execute('6Lc76qoUAAAAALk0aYR500zOZVG1BicNl3GTb-Hu', { action: 'employers' }).then(function (token) {
if (document.getElementById('g-recaptcha-response')) {
document.getElementById('g-recaptcha-response').value = token;
}
});
});
</script>
</form> </form>
<?php if($_SESSION['employers--s'] == 1) { <?php if($_SESSION['employers--s'] == 1) {
...@@ -49,8 +61,8 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -49,8 +61,8 @@ if ( ! defined( 'WPINC' ) ) die;
</div> </div>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
dataLayer.push({'event': 'b2b_form_submit_success_validated'}); window.dataLayer.push({ 'event': 'b2b_form_submit_success_validated' });
</script> </script>
<?php <?php
unset($_SESSION['employers--s']); unset($_SESSION['employers--s']);
...@@ -70,8 +82,8 @@ unset($_SESSION['employers--s']); ...@@ -70,8 +82,8 @@ unset($_SESSION['employers--s']);
</div> </div>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
dataLayer.push({'event': 'b2b_form_update_success_validated'}); window.dataLayer.push({ 'event': 'b2b_form_update_success_validated' });
</script> </script>
<?php <?php
......
...@@ -21,6 +21,6 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -21,6 +21,6 @@ if ( ! defined( 'WPINC' ) ) die;
?> ?>
<div class="c-form--row"> <div class="c-form--row">
<button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="1" onclick="ga('send', 'event', 'CVForm', 'Button', 'OpenCVForm');"><?php _e('Apply', 'biuro-contacts'); ?></button> <button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="1"><?php _e('Apply', 'biuro-contacts'); ?></button>
</div><!-- .c-form--row --> </div><!-- .c-form--row -->
...@@ -172,6 +172,6 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -172,6 +172,6 @@ if ( ! defined( 'WPINC' ) ) die;
<div class="c-form--row"> <div class="c-form--row">
<div class="c-form--submit-wrap"> <div class="c-form--submit-wrap">
<button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="2" onclick="ga('send', 'event', 'CVForm', 'Button', 'SendCVForm');"><?php _e('Apply', 'biuro-contacts'); ?></button> <button type="submit" class="o-btn c-btn--main c-btn--fill" name="s" value="2"><?php _e('Apply', 'biuro-contacts'); ?></button>
</div> </div>
</div><!-- .c-form--row --> </div><!-- .c-form--row -->
...@@ -33,18 +33,36 @@ if ( ! defined( 'WPINC' ) ) die; ...@@ -33,18 +33,36 @@ if ( ! defined( 'WPINC' ) ) die;
<input type="hidden" name="job_id" value="<?php echo $job_id; ?>"> <input type="hidden" name="job_id" value="<?php echo $job_id; ?>">
<input type="hidden" name="action" value="position_post"> <input type="hidden" name="action" value="position_post">
<?php wp_nonce_field('position_post_nonce'); ?> <?php wp_nonce_field('position_post_nonce'); ?>
<input type="hidden" id="g-recaptcha-response" name="captcha">
<script src="https://www.google.com/recaptcha/api.js?render=6Lc76qoUAAAAALk0aYR500zOZVG1BicNl3GTb-Hu"></script>
<script>
window.grecaptcha.ready(function () {
window.grecaptcha.execute('6Lc76qoUAAAAALk0aYR500zOZVG1BicNl3GTb-Hu', { action: 'position' }).then(function (token) {
if (document.getElementById('g-recaptcha-response')) {
document.getElementById('g-recaptcha-response').value = token;
}
});
});
</script>
</form> </form>
<?php if($_SESSION['position--s'] == 1) { <?php
if($_SESSION['position--s'] == 1) {
?> ?>
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ 'event': 'b2c_form_open_success_validated', 'label': 'Job page' });
</script>
<?php <?php
unset($_SESSION['position--s']); unset($_SESSION['position--s']);
}?> }
<?php if($_SESSION['position--s'] == 2) {
?> ?>
<?php
if ($_SESSION['position--s'] == 2) {
?>
<div class="c-modal"> <div class="c-modal">
<div class="c-modal--inner"> <div class="c-modal--inner">
<svg width="67px" height="67px"> <svg width="67px" height="67px">
...@@ -55,10 +73,11 @@ unset($_SESSION['position--s']); ...@@ -55,10 +73,11 @@ unset($_SESSION['position--s']);
</div> </div>
</div> </div>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
dataLayer.push({'event': 'b2c_form_submit_success_validated', 'label': 'Job page'}); window.dataLayer.push({ 'event': 'b2c_form_submit_success_validated', 'label': 'Job page' });
</script> </script>
<?php <?php
unset($_SESSION['position--s']); unset($_SESSION['position--s']);
}?> }
?>
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @since 2.5 * @since 2.5
*/ */
class PLL_Admin_Block_Editor { class PLL_Admin_Block_Editor {
public $model;
/** /**
* Constructor: setups filters and actions * Constructor: setups filters and actions
...@@ -15,6 +16,9 @@ class PLL_Admin_Block_Editor { ...@@ -15,6 +16,9 @@ class PLL_Admin_Block_Editor {
* @param object $polylang * @param object $polylang
*/ */
public function __construct( &$polylang ) { public function __construct( &$polylang ) {
$this->model = &$polylang->model;
$this->pref_lang = &$polylang->pref_lang;
add_filter( 'block_editor_preload_paths', array( $this, 'preload_paths' ), 10, 2 ); add_filter( 'block_editor_preload_paths', array( $this, 'preload_paths' ), 10, 2 );
} }
...@@ -30,11 +34,17 @@ class PLL_Admin_Block_Editor { ...@@ -30,11 +34,17 @@ class PLL_Admin_Block_Editor {
* @return array * @return array
*/ */
public function preload_paths( $preload_paths, $post ) { public function preload_paths( $preload_paths, $post ) {
$lang = pll_get_post_language( $post->ID ); if ( $this->model->is_translated_post_type( $post->post_type ) ) {
$lang = $this->model->post->get_language( $post->ID );
if ( ! $lang ) {
$lang = $this->pref_lang;
}
foreach ( $preload_paths as $k => $path ) { foreach ( $preload_paths as $k => $path ) {
if ( is_string( $path ) && '/' !== $path ) { if ( is_string( $path ) && '/' !== $path ) {
$preload_paths[ $k ] = $path . "&lang={$lang}"; $preload_paths[ $k ] = $path . "&lang={$lang->slug}";
}
} }
} }
......
...@@ -30,6 +30,9 @@ class PLL_Admin_Classic_Editor { ...@@ -30,6 +30,9 @@ class PLL_Admin_Classic_Editor {
// Filters the pages by language in the parent dropdown list in the page attributes metabox // Filters the pages by language in the parent dropdown list in the page attributes metabox
add_filter( 'page_attributes_dropdown_pages_args', array( $this, 'page_attributes_dropdown_pages_args' ), 10, 2 ); add_filter( 'page_attributes_dropdown_pages_args', array( $this, 'page_attributes_dropdown_pages_args' ), 10, 2 );
// Notice
add_action( 'edit_form_top', array( $this, 'edit_form_top' ) );
} }
/** /**
...@@ -42,7 +45,17 @@ class PLL_Admin_Classic_Editor { ...@@ -42,7 +45,17 @@ class PLL_Admin_Classic_Editor {
*/ */
public function add_meta_boxes( $post_type, $post ) { public function add_meta_boxes( $post_type, $post ) {
if ( $this->model->is_translated_post_type( $post_type ) ) { if ( $this->model->is_translated_post_type( $post_type ) ) {
add_meta_box( 'ml_box', __( 'Languages', 'polylang' ), array( $this, 'post_language' ), $post_type, 'side', 'high' ); add_meta_box(
'ml_box',
__( 'Languages', 'polylang' ),
array( $this, 'post_language' ),
$post_type,
'side',
'high',
array(
'__back_compat_meta_box' => pll_use_block_editor_plugin(),
)
);
} }
} }
...@@ -56,12 +69,26 @@ class PLL_Admin_Classic_Editor { ...@@ -56,12 +69,26 @@ class PLL_Admin_Classic_Editor {
$post_id = $post_ID; $post_id = $post_ID;
$post_type = get_post_type( $post_ID ); $post_type = get_post_type( $post_ID );
$from_post_id = isset( $_GET['from_post'] ) ? (int) $_GET['from_post'] : 0; // phpcs:ignore WordPress.Security.NonceVerification
$lang = ( $lg = $this->model->post->get_language( $post_ID ) ) ? $lg : $lang = ( $lg = $this->model->post->get_language( $post_ID ) ) ? $lg :
( isset( $_GET['new_lang'] ) ? $this->model->get_language( $_GET['new_lang'] ) : ( isset( $_GET['new_lang'] ) ? $this->model->get_language( sanitize_key( $_GET['new_lang'] ) ) : // phpcs:ignore WordPress.Security.NonceVerification
$this->pref_lang ); $this->pref_lang );
$dropdown = new PLL_Walker_Dropdown(); $dropdown = new PLL_Walker_Dropdown();
$id = ( 'attachment' === $post_type ) ? sprintf( 'attachments[%d][language]', (int) $post_ID ) : 'post_lang_choice';
$dropdown_html = $dropdown->walk(
$this->model->get_languages_list(),
array(
'name' => $id,
'class' => 'post_lang_choice tags-input',
'selected' => $lang ? $lang->slug : '',
'flag' => true,
)
);
wp_nonce_field( 'pll_language', '_pll_nonce' ); wp_nonce_field( 'pll_language', '_pll_nonce' );
// NOTE: the class "tags-input" allows to include the field in the autosave $_POST ( see autosave.js ) // NOTE: the class "tags-input" allows to include the field in the autosave $_POST ( see autosave.js )
...@@ -70,17 +97,9 @@ class PLL_Admin_Classic_Editor { ...@@ -70,17 +97,9 @@ class PLL_Admin_Classic_Editor {
<label class="screen-reader-text" for="%2$s">%1$s</label> <label class="screen-reader-text" for="%2$s">%1$s</label>
<div id="select-%3$s-language">%4$s</div>', <div id="select-%3$s-language">%4$s</div>',
esc_html__( 'Language', 'polylang' ), esc_html__( 'Language', 'polylang' ),
$id = ( 'attachment' === $post_type ) ? sprintf( 'attachments[%d][language]', $post_ID ) : 'post_lang_choice', esc_attr( $id ),
'attachment' === $post_type ? 'media' : 'post', ( 'attachment' === $post_type ? 'media' : 'post' ),
$dropdown->walk( $dropdown_html // phpcs:ignore WordPress.Security.EscapeOutput
$this->model->get_languages_list(),
array(
'name' => $id,
'class' => 'post_lang_choice tags-input',
'selected' => $lang ? $lang->slug : '',
'flag' => true,
)
)
); );
/** /**
...@@ -105,11 +124,20 @@ class PLL_Admin_Classic_Editor { ...@@ -105,11 +124,20 @@ class PLL_Admin_Classic_Editor {
public function post_lang_choice() { public function post_lang_choice() {
check_ajax_referer( 'pll_language', '_pll_nonce' ); check_ajax_referer( 'pll_language', '_pll_nonce' );
if ( ! isset( $_POST['post_id'], $_POST['lang'], $_POST['post_type'] ) ) {
wp_die( 0 );
}
global $post_ID; // Obliged to use the global variable for wp_popular_terms_checklist global $post_ID; // Obliged to use the global variable for wp_popular_terms_checklist
$post_id = $post_ID = (int) $_POST['post_id']; $post_id = $post_ID = (int) $_POST['post_id'];
$lang = $this->model->get_language( $_POST['lang'] ); $lang = $this->model->get_language( sanitize_key( $_POST['lang'] ) );
$post_type = sanitize_key( $_POST['post_type'] );
if ( ! post_type_exists( $post_type ) ) {
wp_die( 0 );
}
$post_type = $_POST['post_type'];
$post_type_object = get_post_type_object( $post_type ); $post_type_object = get_post_type_object( $post_type );
if ( ! current_user_can( $post_type_object->cap->edit_post, $post_ID ) ) { if ( ! current_user_can( $post_type_object->cap->edit_post, $post_ID ) ) {
wp_die( -1 ); wp_die( -1 );
...@@ -132,7 +160,7 @@ class PLL_Admin_Classic_Editor { ...@@ -132,7 +160,7 @@ class PLL_Admin_Classic_Editor {
// Categories // Categories
if ( isset( $_POST['taxonomies'] ) ) { if ( isset( $_POST['taxonomies'] ) ) {
// Not set for pages // Not set for pages
foreach ( $_POST['taxonomies'] as $taxname ) { foreach ( array_map( 'sanitize_key', $_POST['taxonomies'] ) as $taxname ) {
$taxonomy = get_taxonomy( $taxname ); $taxonomy = get_taxonomy( $taxname );
ob_start(); ob_start();
...@@ -172,7 +200,7 @@ class PLL_Admin_Classic_Editor { ...@@ -172,7 +200,7 @@ class PLL_Admin_Classic_Editor {
'exclude_tree' => $post->ID, 'exclude_tree' => $post->ID,
'selected' => $post->post_parent, 'selected' => $post->post_parent,
'name' => 'parent_id', 'name' => 'parent_id',
'show_option_none' => __( '(no parent)' ), 'show_option_none' => __( '(no parent)', 'polylang' ),
'sort_column' => 'menu_order, post_title', 'sort_column' => 'menu_order, post_title',
'echo' => 0, 'echo' => 0,
); );
...@@ -180,7 +208,7 @@ class PLL_Admin_Classic_Editor { ...@@ -180,7 +208,7 @@ class PLL_Admin_Classic_Editor {
/** This filter is documented in wp-admin/includes/meta-boxes.php */ /** This filter is documented in wp-admin/includes/meta-boxes.php */
$dropdown_args = apply_filters( 'page_attributes_dropdown_pages_args', $dropdown_args, $post ); // Since WP 3.3 $dropdown_args = apply_filters( 'page_attributes_dropdown_pages_args', $dropdown_args, $post ); // Since WP 3.3
$x->Add( array( 'what' => 'pages', 'data' => wp_dropdown_pages( $dropdown_args ) ) ); $x->Add( array( 'what' => 'pages', 'data' => wp_dropdown_pages( $dropdown_args ) ) ); // phpcs:ignore WordPress.Security.EscapeOutput
} }
// Flag // Flag
...@@ -200,53 +228,32 @@ class PLL_Admin_Classic_Editor { ...@@ -200,53 +228,32 @@ class PLL_Admin_Classic_Editor {
public function ajax_posts_not_translated() { public function ajax_posts_not_translated() {
check_ajax_referer( 'pll_language', '_pll_nonce' ); check_ajax_referer( 'pll_language', '_pll_nonce' );
if ( ! post_type_exists( $_GET['post_type'] ) ) { if ( ! isset( $_GET['post_type'], $_GET['post_language'], $_GET['translation_language'], $_GET['term'], $_GET['pll_post_id'] ) ) {
die( 0 ); wp_die( 0 );
} }
$post_language = $this->model->get_language( $_GET['post_language'] ); $post_type = sanitize_key( $_GET['post_type'] );
$translation_language = $this->model->get_language( $_GET['translation_language'] );
// Don't order by title: see https://wordpress.org/support/topic/find-translated-post-when-10-is-not-enough
$args = array(
's' => wp_unslash( $_GET['term'] ),
'suppress_filters' => 0, // To make the post_fields filter work
'lang' => 0, // Avoid admin language filter
'numberposts' => 20, // Limit to 20 posts
'post_status' => 'any',
'post_type' => $_GET['post_type'],
'tax_query' => array(
array(
'taxonomy' => 'language',
'field' => 'term_taxonomy_id', // WP 3.5+
'terms' => $translation_language->term_taxonomy_id,
),
),
);
/** if ( ! post_type_exists( $post_type ) ) {
* Filter the query args when auto suggesting untranslated posts in the Languages metabox wp_die( 0 );
* This should help plugins to fix some edge cases }
*
* @see https://wordpress.org/support/topic/find-translated-post-when-10-is-not-enough $term = wp_unslash( $_GET['term'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
*
* @since 1.7 $post_language = $this->model->get_language( sanitize_key( $_GET['post_language'] ) );
* $translation_language = $this->model->get_language( sanitize_key( $_GET['translation_language'] ) );
* @param array $args WP_Query arguments
*/
$args = apply_filters( 'pll_ajax_posts_not_translated_args', $args );
$posts = get_posts( $args );
$return = array(); $return = array();
foreach ( $posts as $key => $post ) { $untranslated_posts = $this->model->post->get_untranslated( $post_type, $post_language, $translation_language, $term );
if ( ! $this->model->post->get_translation( $post->ID, $post_language ) ) {
$return[] = array( // format output
'id' => $post->ID, foreach ( $untranslated_posts as $post ) {
'value' => $post->post_title, $return[] = array(
'link' => $this->links->edit_post_translation_link( $post->ID ), 'id' => $post->ID,
); 'value' => $post->post_title,
} 'link' => $this->links->edit_post_translation_link( $post->ID ),
);
} }
// Add current translation in list // Add current translation in list
...@@ -262,7 +269,7 @@ class PLL_Admin_Classic_Editor { ...@@ -262,7 +269,7 @@ class PLL_Admin_Classic_Editor {
); );
} }
wp_die( json_encode( $return ) ); wp_die( wp_json_encode( $return ) );
} }
/** /**
...@@ -275,11 +282,34 @@ class PLL_Admin_Classic_Editor { ...@@ -275,11 +282,34 @@ class PLL_Admin_Classic_Editor {
* @return array Modified arguments * @return array Modified arguments
*/ */
public function page_attributes_dropdown_pages_args( $dropdown_args, $post ) { public function page_attributes_dropdown_pages_args( $dropdown_args, $post ) {
$dropdown_args['lang'] = isset( $_POST['lang'] ) ? $this->model->get_language( $_POST['lang'] ) : $this->model->post->get_language( $post->ID ); // ajax or not ? $dropdown_args['lang'] = isset( $_POST['lang'] ) ? $this->model->get_language( sanitize_key( $_POST['lang'] ) ) : $this->model->post->get_language( $post->ID ); // phpcs:ignore WordPress.Security.NonceVerification
if ( ! $dropdown_args['lang'] ) { if ( ! $dropdown_args['lang'] ) {
$dropdown_args['lang'] = $this->pref_lang; $dropdown_args['lang'] = $this->pref_lang;
} }
return $dropdown_args; return $dropdown_args;
} }
/**
* Displays a notice if the user has not sufficient rights to overwrite synchronized taxonomies and metas
*
* @since 2.6
*
* @param object $post Post currently being edited
*/
public function edit_form_top( $post ) {
if ( ! $this->model->post->current_user_can_synchronize( $post->ID ) ) {
?>
<div class="pll-notice notice notice-warning">
<p>
<?php
esc_html_e( 'Some taxonomies or metadata may be synchronized with existing translations that you are not allowed to modify.', 'polylang' );
echo ' ';
esc_html_e( 'If you attempt to modify them anyway, your changes will not be saved.', 'polylang' );
?>
</p>
</div>
<?php
}
}
} }
...@@ -108,8 +108,8 @@ class PLL_Admin_Filters_Columns { ...@@ -108,8 +108,8 @@ class PLL_Admin_Filters_Columns {
* @param int $post_id * @param int $post_id
*/ */
public function post_column( $column, $post_id ) { public function post_column( $column, $post_id ) {
$inline = wp_doing_ajax() && isset( $_REQUEST['action'], $_POST['inline_lang_choice'] ) && 'inline-save' === $_REQUEST['action']; $inline = wp_doing_ajax() && isset( $_REQUEST['action'], $_POST['inline_lang_choice'] ) && 'inline-save' === $_REQUEST['action']; // phpcs:ignore WordPress.Security.NonceVerification
$lang = $inline ? $this->model->get_language( $_POST['inline_lang_choice'] ) : $this->model->post->get_language( $post_id ); $lang = $inline ? $this->model->get_language( sanitize_key( $_POST['inline_lang_choice'] ) ) : $this->model->post->get_language( $post_id ); // phpcs:ignore WordPress.Security.NonceVerification
if ( false === strpos( $column, 'language_' ) || ! $lang ) { if ( false === strpos( $column, 'language_' ) || ! $lang ) {
return; return;
...@@ -155,7 +155,7 @@ class PLL_Admin_Filters_Columns { ...@@ -155,7 +155,7 @@ class PLL_Admin_Filters_Columns {
} }
// Link to add a new translation // Link to add a new translation
else { else {
echo $this->links->new_post_translation_link( $post_id, $language ); echo $this->links->new_post_translation_link( $post_id, $language ); // phpcs:ignore WordPress.Security.EscapeOutput
} }
} }
...@@ -173,7 +173,7 @@ class PLL_Admin_Filters_Columns { ...@@ -173,7 +173,7 @@ class PLL_Admin_Filters_Columns {
$elements = $this->model->get_languages_list(); $elements = $this->model->get_languages_list();
if ( current_filter() == 'bulk_edit_custom_box' ) { if ( current_filter() == 'bulk_edit_custom_box' ) {
array_unshift( $elements, (object) array( 'slug' => -1, 'name' => __( '&mdash; No Change &mdash;' ) ) ); array_unshift( $elements, (object) array( 'slug' => -1, 'name' => __( '&mdash; No Change &mdash;', 'polylang' ) ) );
} }
$dropdown = new PLL_Walker_Dropdown(); $dropdown = new PLL_Walker_Dropdown();
...@@ -188,7 +188,7 @@ class PLL_Admin_Filters_Columns { ...@@ -188,7 +188,7 @@ class PLL_Admin_Filters_Columns {
</div> </div>
</fieldset>', </fieldset>',
esc_html__( 'Language', 'polylang' ), esc_html__( 'Language', 'polylang' ),
$dropdown->walk( $elements, array( 'name' => 'inline_lang_choice', 'id' => '' ) ) $dropdown->walk( $elements, array( 'name' => 'inline_lang_choice', 'id' => '' ) ) // phpcs:ignore WordPress.Security.EscapeOutput
); );
} }
return $column; return $column;
...@@ -216,13 +216,26 @@ class PLL_Admin_Filters_Columns { ...@@ -216,13 +216,26 @@ class PLL_Admin_Filters_Columns {
* @param int $term_id * @param int $term_id
*/ */
public function term_column( $out, $column, $term_id ) { public function term_column( $out, $column, $term_id ) {
$inline = wp_doing_ajax() && isset( $_REQUEST['action'], $_POST['inline_lang_choice'] ) && 'inline-save-tax' === $_REQUEST['action']; $inline = wp_doing_ajax() && isset( $_REQUEST['action'], $_POST['inline_lang_choice'] ) && 'inline-save-tax' === $_REQUEST['action']; // phpcs:ignore WordPress.Security.NonceVerification
if ( false === strpos( $column, 'language_' ) || ! ( $lang = $inline ? $this->model->get_language( $_POST['inline_lang_choice'] ) : $this->model->term->get_language( $term_id ) ) ) { if ( false === strpos( $column, 'language_' ) || ! ( $lang = $inline ? $this->model->get_language( sanitize_key( $_POST['inline_lang_choice'] ) ) : $this->model->term->get_language( $term_id ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification
return $out; return $out;
} }
$post_type = isset( $GLOBALS['post_type'] ) ? $GLOBALS['post_type'] : $_REQUEST['post_type']; // 2nd case for quick edit if ( isset( $_REQUEST['post_type'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$taxonomy = isset( $GLOBALS['taxonomy'] ) ? $GLOBALS['taxonomy'] : $_REQUEST['taxonomy']; $post_type = sanitize_key( $_REQUEST['post_type'] ); // phpcs:ignore WordPress.Security.NonceVerification
}
if ( isset( $GLOBALS['post_type'] ) ) {
$post_type = $GLOBALS['post_type'];
}
if ( isset( $_REQUEST['taxonomy'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$taxonomy = sanitize_key( $_REQUEST['taxonomy'] ); // phpcs:ignore WordPress.Security.NonceVerification
}
if ( isset( $GLOBALS['taxonomy'] ) ) {
$taxonomy = $GLOBALS['taxonomy'];
}
if ( ! post_type_exists( $post_type ) || ! taxonomy_exists( $taxonomy ) ) { if ( ! post_type_exists( $post_type ) || ! taxonomy_exists( $taxonomy ) ) {
return $out; return $out;
...@@ -282,21 +295,29 @@ class PLL_Admin_Filters_Columns { ...@@ -282,21 +295,29 @@ class PLL_Admin_Filters_Columns {
* @since 1.7 * @since 1.7
*/ */
public function ajax_update_post_rows() { public function ajax_update_post_rows() {
global $wp_list_table; check_ajax_referer( 'inlineeditnonce', '_pll_nonce' );
if ( ! post_type_exists( $post_type = $_POST['post_type'] ) || ! $this->model->is_translated_post_type( $post_type ) ) { if ( ! isset( $_POST['post_type'], $_POST['post_id'], $_POST['screen'] ) ) {
die( 0 ); wp_die( 0 );
} }
check_ajax_referer( 'inlineeditnonce', '_pll_nonce' ); $post_type = sanitize_key( $_POST['post_type'] );
if ( ! post_type_exists( $post_type ) || ! $this->model->is_translated_post_type( $post_type ) ) {
wp_die( 0 );
}
global $wp_list_table;
$wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => sanitize_key( $_POST['screen'] ) ) );
$x = new WP_Ajax_Response(); $x = new WP_Ajax_Response();
$wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => $_POST['screen'] ) );
$translations = empty( $_POST['translations'] ) ? array() : explode( ',', $_POST['translations'] ); // collect old translations // Collect old translations
$translations = array_merge( $translations, array( $_POST['post_id'] ) ); // add current post $translations = empty( $_POST['translations'] ) ? array() : explode( ',', $_POST['translations'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
$translations = array_map( 'intval', $translations ); $translations = array_map( 'intval', $translations );
$translations = array_merge( $translations, array( (int) $_POST['post_id'] ) ); // Add current post
foreach ( $translations as $post_id ) { foreach ( $translations as $post_id ) {
$level = is_post_type_hierarchical( $post_type ) ? count( get_ancestors( $post_id, $post_type ) ) : 0; $level = is_post_type_hierarchical( $post_type ) ? count( get_ancestors( $post_id, $post_type ) ) : 0;
if ( $post = get_post( $post_id ) ) { if ( $post = get_post( $post_id ) ) {
...@@ -316,22 +337,30 @@ class PLL_Admin_Filters_Columns { ...@@ -316,22 +337,30 @@ class PLL_Admin_Filters_Columns {
* @since 1.7 * @since 1.7
*/ */
public function ajax_update_term_rows() { public function ajax_update_term_rows() {
global $wp_list_table; check_ajax_referer( 'pll_language', '_pll_nonce' );
if ( ! taxonomy_exists( $taxonomy = $_POST['taxonomy'] ) || ! $this->model->is_translated_taxonomy( $taxonomy ) ) { if ( ! isset( $_POST['taxonomy'], $_POST['term_id'], $_POST['screen'] ) ) {
die( 0 ); wp_die( 0 );
} }
check_ajax_referer( 'pll_language', '_pll_nonce' ); $taxonomy = sanitize_key( $_POST['taxonomy'] );
if ( ! taxonomy_exists( $taxonomy ) || ! $this->model->is_translated_taxonomy( $taxonomy ) ) {
wp_die( 0 );
}
global $wp_list_table;
$wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => sanitize_key( $_POST['screen'] ) ) );
$x = new WP_Ajax_Response(); $x = new WP_Ajax_Response();
$wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => $_POST['screen'] ) );
$translations = empty( $_POST['translations'] ) ? array() : explode( ',', $_POST['translations'] ); // collect old translations // Collect old translations
$translations = array_merge( $translations, $this->model->term->get_translations( (int) $_POST['term_id'] ) ); // add current translations $translations = empty( $_POST['translations'] ) ? array() : explode( ',', $_POST['translations'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
$translations = array_unique( $translations ); // remove duplicates
$translations = array_map( 'intval', $translations ); $translations = array_map( 'intval', $translations );
$translations = array_merge( $translations, $this->model->term->get_translations( (int) $_POST['term_id'] ) ); // Add current translations
$translations = array_unique( $translations ); // Remove duplicates
foreach ( $translations as $term_id ) { foreach ( $translations as $term_id ) {
$level = is_taxonomy_hierarchical( $taxonomy ) ? count( get_ancestors( $term_id, $taxonomy ) ) : 0; $level = is_taxonomy_hierarchical( $taxonomy ) ? count( get_ancestors( $term_id, $taxonomy ) ) : 0;
if ( $tag = get_term( $term_id, $taxonomy ) ) { if ( $tag = get_term( $term_id, $taxonomy ) ) {
......
...@@ -28,7 +28,7 @@ class PLL_Admin_Filters_Media extends PLL_Admin_Filters_Post_Base { ...@@ -28,7 +28,7 @@ class PLL_Admin_Filters_Media extends PLL_Admin_Filters_Post_Base {
add_filter( 'attachment_fields_to_save', array( $this, 'save_media' ), 10, 2 ); add_filter( 'attachment_fields_to_save', array( $this, 'save_media' ), 10, 2 );
// Creates a media translation // Creates a media translation
if ( isset( $_GET['action'], $_GET['new_lang'], $_GET['from_media'] ) && 'translate_media' === $_GET['action'] ) { if ( isset( $_GET['action'], $_GET['new_lang'], $_GET['from_media'] ) && 'translate_media' === $_GET['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification
add_action( 'admin_init', array( $this, 'translate_media' ) ); add_action( 'admin_init', array( $this, 'translate_media' ) );
} }
} }
...@@ -74,21 +74,23 @@ class PLL_Admin_Filters_Media extends PLL_Admin_Filters_Post_Base { ...@@ -74,21 +74,23 @@ class PLL_Admin_Filters_Media extends PLL_Admin_Filters_Post_Base {
* @since 0.9 * @since 0.9
*/ */
public function translate_media() { public function translate_media() {
// Security check if ( isset( $_GET['from_media'], $_GET['new_lang'] ) ) {
check_admin_referer( 'translate_media' ); // Security check
$post_id = (int) $_GET['from_media']; check_admin_referer( 'translate_media' );
$post_id = (int) $_GET['from_media'];
// Bails if the translations already exists
// See https://wordpress.org/support/topic/edit-translation-in-media-attachments?#post-7322303 // Bails if the translations already exists
// Or if the source media does not exist // See https://wordpress.org/support/topic/edit-translation-in-media-attachments?#post-7322303
if ( $this->model->post->get_translation( $post_id, $_GET['new_lang'] ) || ! get_post( $post_id ) ) { // Or if the source media does not exist
wp_safe_redirect( wp_get_referer() ); if ( $this->model->post->get_translation( $post_id, sanitize_key( $_GET['new_lang'] ) ) || ! get_post( $post_id ) ) {
wp_safe_redirect( wp_get_referer() );
exit;
}
$tr_id = $this->posts->create_media_translation( $post_id, sanitize_key( $_GET['new_lang'] ) );
wp_safe_redirect( admin_url( sprintf( 'post.php?post=%d&action=edit', $tr_id ) ) ); // WP 3.5+
exit; exit;
} }
$tr_id = $this->posts->create_media_translation( $post_id, $_GET['new_lang'] );
wp_safe_redirect( admin_url( sprintf( 'post.php?post=%d&action=edit', $tr_id ) ) ); // WP 3.5+
exit;
} }
/** /**
...@@ -108,8 +110,8 @@ class PLL_Admin_Filters_Media extends PLL_Admin_Filters_Post_Base { ...@@ -108,8 +110,8 @@ class PLL_Admin_Filters_Media extends PLL_Admin_Filters_Post_Base {
$this->model->post->set_language( $post['ID'], $attachment['language'] ); $this->model->post->set_language( $post['ID'], $attachment['language'] );
} }
if ( isset( $_POST['media_tr_lang'] ) ) { if ( isset( $_POST['media_tr_lang'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$this->save_translations( $post['ID'], $_POST['media_tr_lang'] ); $this->save_translations( $post['ID'], array_map( 'absint', $_POST['media_tr_lang'] ) ); // phpcs:ignore WordPress.Security.NonceVerification
} }
return $post; return $post;
......
...@@ -104,17 +104,17 @@ class PLL_Admin_Filters_Post extends PLL_Admin_Filters_Post_Base { ...@@ -104,17 +104,17 @@ class PLL_Admin_Filters_Post extends PLL_Admin_Filters_Post_Base {
* @since 2.3 * @since 2.3
*/ */
public function edit_post() { public function edit_post() {
if ( isset( $_POST['post_lang_choice'], $_POST['post_ID'] ) && $post_id = (int) $_POST['post_ID'] ) { if ( isset( $_POST['post_lang_choice'], $_POST['post_ID'] ) && $post_id = (int) $_POST['post_ID'] ) { // phpcs:ignore WordPress.Security.NonceVerification
check_admin_referer( 'pll_language', '_pll_nonce' ); check_admin_referer( 'pll_language', '_pll_nonce' );
$post = get_post( $post_id ); $post = get_post( $post_id );
$post_type_object = get_post_type_object( $post->post_type ); $post_type_object = get_post_type_object( $post->post_type );
if ( current_user_can( $post_type_object->cap->edit_post, $post_id ) ) { if ( current_user_can( $post_type_object->cap->edit_post, $post_id ) ) {
$this->model->post->set_language( $post_id, $this->model->get_language( $_POST['post_lang_choice'] ) ); $this->model->post->set_language( $post_id, $this->model->get_language( sanitize_key( $_POST['post_lang_choice'] ) ) );
if ( isset( $_POST['post_tr_lang'] ) ) { if ( isset( $_POST['post_tr_lang'] ) ) {
$this->save_translations( $post_id, $_POST['post_tr_lang'] ); $this->save_translations( $post_id, array_map( 'absint', $_POST['post_tr_lang'] ) );
} }
} }
} }
...@@ -160,10 +160,10 @@ class PLL_Admin_Filters_Post extends PLL_Admin_Filters_Post_Base { ...@@ -160,10 +160,10 @@ class PLL_Admin_Filters_Post extends PLL_Admin_Filters_Post_Base {
* @since 2.3 * @since 2.3
*/ */
public function bulk_edit_posts() { public function bulk_edit_posts() {
if ( isset( $_GET['bulk_edit'], $_GET['inline_lang_choice'] ) && -1 !== $_GET['inline_lang_choice'] ) { if ( isset( $_GET['bulk_edit'], $_GET['inline_lang_choice'], $_REQUEST['post'] ) && -1 !== $_GET['inline_lang_choice'] ) { // phpcs:ignore WordPress.Security.NonceVerification
check_admin_referer( 'bulk-posts' ); check_admin_referer( 'bulk-posts' );
if ( $lang = $this->model->get_language( $_GET['inline_lang_choice'] ) ) { if ( $lang = $this->model->get_language( sanitize_key( $_GET['inline_lang_choice'] ) ) ) {
$post_ids = array_map( 'intval', (array) $_REQUEST['post'] ); $post_ids = array_map( 'intval', (array) $_REQUEST['post'] );
foreach ( $post_ids as $post_id ) { foreach ( $post_ids as $post_id ) {
$this->inline_save_language( $post_id, $lang ); $this->inline_save_language( $post_id, $lang );
...@@ -182,7 +182,7 @@ class PLL_Admin_Filters_Post extends PLL_Admin_Filters_Post_Base { ...@@ -182,7 +182,7 @@ class PLL_Admin_Filters_Post extends PLL_Admin_Filters_Post_Base {
if ( isset( $_POST['post_ID'], $_POST['inline_lang_choice'] ) ) { if ( isset( $_POST['post_ID'], $_POST['inline_lang_choice'] ) ) {
$post_id = (int) $_POST['post_ID']; $post_id = (int) $_POST['post_ID'];
$lang = $this->model->get_language( $_POST['inline_lang_choice'] ); $lang = $this->model->get_language( sanitize_key( $_POST['inline_lang_choice'] ) );
if ( $post_id && $lang ) { if ( $post_id && $lang ) {
$this->inline_save_language( $post_id, $lang ); $this->inline_save_language( $post_id, $lang );
} }
......
...@@ -57,24 +57,27 @@ class PLL_Admin_Filters extends PLL_Filters { ...@@ -57,24 +57,27 @@ class PLL_Admin_Filters extends PLL_Filters {
$screen = get_current_screen(); $screen = get_current_screen();
// Test the Widgets screen and the Customizer to avoid displaying the option in page builders // Test the Widgets screen and the Customizer to avoid displaying the option in page builders
// Saving the widget reloads the form. And curiously the action is in $_REQUEST but neither in $_POST, not in $_GET. // Saving the widget reloads the form. And curiously the action is in $_REQUEST but neither in $_POST, nor in $_GET.
if ( ( isset( $screen ) && 'widgets' === $screen->base ) || ( isset( $_REQUEST['action'] ) && 'save-widget' === $_REQUEST['action'] ) || isset( $GLOBALS['wp_customize'] ) ) { if ( ( isset( $screen ) && 'widgets' === $screen->base ) || ( isset( $_REQUEST['action'] ) && 'save-widget' === $_REQUEST['action'] ) || isset( $GLOBALS['wp_customize'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$dropdown = new PLL_Walker_Dropdown(); $dropdown = new PLL_Walker_Dropdown();
$dropdown_html = $dropdown->walk(
array_merge(
array( (object) array( 'slug' => 0, 'name' => __( 'All languages', 'polylang' ) ) ),
$this->model->get_languages_list()
),
array(
'name' => $widget->id . '_lang_choice',
'class' => 'tags-input pll-lang-choice',
'selected' => empty( $instance['pll_lang'] ) ? '' : $instance['pll_lang'],
)
);
printf( printf(
'<p><label for="%1$s">%2$s %3$s</label></p>', '<p><label for="%1$s">%2$s %3$s</label></p>',
esc_attr( $widget->id . '_lang_choice' ), esc_attr( $widget->id . '_lang_choice' ),
esc_html__( 'The widget is displayed for:', 'polylang' ), esc_html__( 'The widget is displayed for:', 'polylang' ),
$dropdown->walk( $dropdown_html // phpcs:ignore WordPress.Security.EscapeOutput
array_merge(
array( (object) array( 'slug' => 0, 'name' => __( 'All languages', 'polylang' ) ) ),
$this->model->get_languages_list()
),
array(
'name' => $widget->id . '_lang_choice',
'class' => 'tags-input pll-lang-choice',
'selected' => empty( $instance['pll_lang'] ) ? '' : $instance['pll_lang'],
)
)
); );
} }
} }
...@@ -92,8 +95,10 @@ class PLL_Admin_Filters extends PLL_Filters { ...@@ -92,8 +95,10 @@ class PLL_Admin_Filters extends PLL_Filters {
* @return array Widget options * @return array Widget options
*/ */
public function widget_update_callback( $instance, $new_instance, $old_instance, $widget ) { public function widget_update_callback( $instance, $new_instance, $old_instance, $widget ) {
if ( ! empty( $_POST[ $key = $widget->id . '_lang_choice' ] ) && in_array( $_POST[ $key ], $this->model->get_languages_list( array( 'fields' => 'slug' ) ) ) ) { $key = $widget->id . '_lang_choice';
$instance['pll_lang'] = $_POST[ $key ];
if ( ! empty( $_POST[ $key ] ) && $lang = $this->model->get_language( sanitize_key( $_POST[ $key ] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$instance['pll_lang'] = $lang->slug;
} else { } else {
unset( $instance['pll_lang'] ); unset( $instance['pll_lang'] );
} }
...@@ -112,7 +117,7 @@ class PLL_Admin_Filters extends PLL_Filters { ...@@ -112,7 +117,7 @@ class PLL_Admin_Filters extends PLL_Filters {
// Biography translations // Biography translations
foreach ( $this->model->get_languages_list() as $lang ) { foreach ( $this->model->get_languages_list() as $lang ) {
$meta = $lang->slug == $this->options['default_lang'] ? 'description' : 'description_' . $lang->slug; $meta = $lang->slug == $this->options['default_lang'] ? 'description' : 'description_' . $lang->slug;
$description = empty( $_POST[ 'description_' . $lang->slug ] ) ? '' : trim( $_POST[ 'description_' . $lang->slug ] ); $description = empty( $_POST[ 'description_' . $lang->slug ] ) ? '' : trim( $_POST[ 'description_' . $lang->slug ] ); // phpcs:ignore WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput
/** This filter is documented in wp-includes/user.php */ /** This filter is documented in wp-includes/user.php */
$description = apply_filters( 'pre_user_description', $description ); // Applies WP default filter wp_filter_kses $description = apply_filters( 'pre_user_description', $description ); // Applies WP default filter wp_filter_kses
...@@ -183,11 +188,11 @@ class PLL_Admin_Filters extends PLL_Filters { ...@@ -183,11 +188,11 @@ class PLL_Admin_Filters extends PLL_Filters {
* @return string * @return string
*/ */
public function get_locale( $locale ) { public function get_locale( $locale ) {
if ( isset( $_POST['post_lang_choice'] ) && $lang = $this->model->get_language( $_POST['post_lang_choice'] ) ) { if ( isset( $_POST['post_lang_choice'] ) && $lang = $this->model->get_language( sanitize_key( $_POST['post_lang_choice'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$locale = $lang->locale; $locale = $lang->locale;
} elseif ( isset( $_POST['term_lang_choice'] ) && $lang = $this->model->get_language( $_POST['term_lang_choice'] ) ) { } elseif ( isset( $_POST['term_lang_choice'] ) && $lang = $this->model->get_language( sanitize_key( $_POST['term_lang_choice'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$locale = $lang->locale; $locale = $lang->locale;
} elseif ( isset( $_POST['inline_lang_choice'] ) && $lang = $this->model->get_language( $_POST['inline_lang_choice'] ) ) { } elseif ( isset( $_POST['inline_lang_choice'] ) && $lang = $this->model->get_language( sanitize_key( $_POST['inline_lang_choice'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$locale = $lang->locale; $locale = $lang->locale;
} elseif ( ! empty( $this->curlang ) ) { } elseif ( ! empty( $this->curlang ) ) {
$locale = $this->curlang->locale; $locale = $this->curlang->locale;
......
...@@ -7,16 +7,63 @@ ...@@ -7,16 +7,63 @@
*/ */
class PLL_Admin_Links extends PLL_Links { class PLL_Admin_Links extends PLL_Links {
/**
* Returns html markup for a new translation link
*
* @since 2.6
*
* @param string $link The new translation link.
* @param object $language The language of the new translation.
* @return string
*/
protected function new_translation_link( $link, $language ) {
$str = '';
if ( $link ) {
/* translators: accessibility text, %s is a native language name */
$hint = sprintf( __( 'Add a translation in %s', 'polylang' ), $language->name );
$str = sprintf(
'<a href="%1$s" title="%2$s" class="pll_icon_add"><span class="screen-reader-text">%3$s</span></a>',
esc_url( $link ),
esc_attr( $hint ),
esc_html( $hint )
);
}
return $str;
}
/**
* Returns html markup for a translation link
*
* @since 2.6
*
* @param string $link The translation link.
* @param object $language The language of the translation.
* @return string
*/
public function edit_translation_link( $link, $language ) {
return $link ? sprintf(
'<a href="%1$s" class="pll_icon_edit"><span class="screen-reader-text">%2$s</span></a>',
esc_url( $link ),
/* translators: accessibility text, %s is a native language name */
esc_html( sprintf( __( 'Edit the translation in %s', 'polylang' ), $language->name ) )
) : '';
}
/** /**
* Get the link to create a new post translation * Get the link to create a new post translation
* *
* @since 1.5 * @since 1.5
* *
* @param int $post_id the source post id * @param int $post_id The source post id.
* @param object $language the language of the new translation * @param object $language The language of the new translation.
* @param string $context Optional. Defaults to 'display' which encodes '&' to '&amp;'.
* Otherwise, preserves '&'.
* @return string * @return string
*/ */
public function get_new_post_translation_link( $post_id, $language ) { public function get_new_post_translation_link( $post_id, $language, $context = 'display' ) {
$post_type = get_post_type( $post_id ); $post_type = get_post_type( $post_id );
$post_type_object = get_post_type_object( get_post_type( $post_id ) ); $post_type_object = get_post_type_object( get_post_type( $post_id ) );
if ( ! current_user_can( $post_type_object->cap->create_posts ) ) { if ( ! current_user_can( $post_type_object->cap->create_posts ) ) {
...@@ -31,15 +78,21 @@ class PLL_Admin_Links extends PLL_Links { ...@@ -31,15 +78,21 @@ class PLL_Admin_Links extends PLL_Links {
} }
} }
if ( 'attachment' == $post_type ) { if ( 'attachment' === $post_type ) {
$args = array( $args = array(
'action' => 'translate_media', 'action' => 'translate_media',
'from_media' => $post_id, 'from_media' => $post_id,
'new_lang' => $language->slug, 'new_lang' => $language->slug,
); );
$link = add_query_arg( $args, admin_url( 'admin.php' ) );
// Add nonce for media as we will directly publish a new attachment from a click on this link // Add nonce for media as we will directly publish a new attachment from a click on this link
$link = wp_nonce_url( add_query_arg( $args, admin_url( 'admin.php' ) ), 'translate_media' ); if ( 'display' === $context ) {
$link = wp_nonce_url( $link, 'translate_media' );
} else {
$link = add_query_arg( '_wpnonce', wp_create_nonce( 'translate_media' ), $link );
}
} else { } else {
$args = array( $args = array(
'post_type' => $post_type, 'post_type' => $post_type,
...@@ -47,7 +100,13 @@ class PLL_Admin_Links extends PLL_Links { ...@@ -47,7 +100,13 @@ class PLL_Admin_Links extends PLL_Links {
'new_lang' => $language->slug, 'new_lang' => $language->slug,
); );
$link = wp_nonce_url( add_query_arg( $args, admin_url( 'post-new.php' ) ), 'new-post-translation' ); $link = add_query_arg( $args, admin_url( 'post-new.php' ) );
if ( 'display' === $context ) {
$link = wp_nonce_url( $link, 'new-post-translation' );
} else {
$link = add_query_arg( '_wpnonce', wp_create_nonce( 'new-post-translation' ), $link );
}
} }
/** /**
...@@ -73,12 +132,7 @@ class PLL_Admin_Links extends PLL_Links { ...@@ -73,12 +132,7 @@ class PLL_Admin_Links extends PLL_Links {
*/ */
public function new_post_translation_link( $post_id, $language ) { public function new_post_translation_link( $post_id, $language ) {
$link = $this->get_new_post_translation_link( $post_id, $language ); $link = $this->get_new_post_translation_link( $post_id, $language );
return $link ? sprintf( return $this->new_translation_link( $link, $language );
'<a href="%1$s" class="pll_icon_add"><span class="screen-reader-text">%2$s</span></a>',
esc_url( $link ),
/* translators: accessibility text, %s is a native language name */
esc_html( sprintf( __( 'Add a translation in %s', 'polylang' ), $language->name ) )
) : '';
} }
/** /**
...@@ -92,12 +146,7 @@ class PLL_Admin_Links extends PLL_Links { ...@@ -92,12 +146,7 @@ class PLL_Admin_Links extends PLL_Links {
public function edit_post_translation_link( $post_id ) { public function edit_post_translation_link( $post_id ) {
$link = get_edit_post_link( $post_id ); $link = get_edit_post_link( $post_id );
$language = $this->model->post->get_language( $post_id ); $language = $this->model->post->get_language( $post_id );
return $link ? sprintf( return $this->edit_translation_link( $link, $language );
'<a href="%1$s" class="pll_icon_edit"><span class="screen-reader-text">%2$s</span></a>',
esc_url( $link ),
/* translators: accessibility text, %s is a native language name */
esc_html( sprintf( __( 'Edit the translation in %s', 'polylang' ), $language->name ) )
) : '';
} }
/** /**
...@@ -153,12 +202,7 @@ class PLL_Admin_Links extends PLL_Links { ...@@ -153,12 +202,7 @@ class PLL_Admin_Links extends PLL_Links {
*/ */
public function new_term_translation_link( $term_id, $taxonomy, $post_type, $language ) { public function new_term_translation_link( $term_id, $taxonomy, $post_type, $language ) {
$link = $this->get_new_term_translation_link( $term_id, $taxonomy, $post_type, $language ); $link = $this->get_new_term_translation_link( $term_id, $taxonomy, $post_type, $language );
return $link ? sprintf( return $this->new_translation_link( $link, $language );
'<a href="%1$s" class="pll_icon_add"><span class="screen-reader-text">%2$s</span></a>',
esc_url( $link ),
/* translators: accessibility text, %s is a native language name */
esc_html( sprintf( __( 'Add a translation in %s', 'polylang' ), $language->name ) )
) : '';
} }
/** /**
...@@ -174,11 +218,6 @@ class PLL_Admin_Links extends PLL_Links { ...@@ -174,11 +218,6 @@ class PLL_Admin_Links extends PLL_Links {
public function edit_term_translation_link( $term_id, $taxonomy, $post_type ) { public function edit_term_translation_link( $term_id, $taxonomy, $post_type ) {
$link = get_edit_term_link( $term_id, $taxonomy, $post_type ); $link = get_edit_term_link( $term_id, $taxonomy, $post_type );
$language = $this->model->term->get_language( $term_id ); $language = $this->model->term->get_language( $term_id );
return $link ? sprintf( return $this->edit_translation_link( $link, $language );
'<a href="%1$s" class="pll_icon_edit"><span class="screen-reader-text">%2$s</span></a>',
esc_url( $link ),
/* translators: accessibility text, %s is a native language name */
esc_html( sprintf( __( 'Edit the translation in %s', 'polylang' ), $language->name ) )
) : '';
} }
} }
...@@ -28,17 +28,17 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -28,17 +28,17 @@ class PLL_Admin_Model extends PLL_Model {
* @return bool true if success / false if failed * @return bool true if success / false if failed
*/ */
public function add_language( $args ) { public function add_language( $args ) {
if ( ! $this->validate_lang( $args ) ) { $errors = $this->validate_lang( $args );
return false; if ( $errors->get_error_code() ) { // Using has_errors() would be more meaningful but is available only since WP 5.0
return $errors;
} }
// First the language taxonomy // First the language taxonomy
$description = serialize( array( 'locale' => $args['locale'], 'rtl' => (int) $args['rtl'], 'flag_code' => empty( $args['flag'] ) ? '' : $args['flag'] ) ); $description = maybe_serialize( array( 'locale' => $args['locale'], 'rtl' => (int) $args['rtl'], 'flag_code' => empty( $args['flag'] ) ? '' : $args['flag'] ) );
$r = wp_insert_term( $args['name'], 'language', array( 'slug' => $args['slug'], 'description' => $description ) ); $r = wp_insert_term( $args['name'], 'language', array( 'slug' => $args['slug'], 'description' => $description ) );
if ( is_wp_error( $r ) ) { if ( is_wp_error( $r ) ) {
// Avoid an ugly fatal error if something went wrong ( reported once in the forum ) // Avoid an ugly fatal error if something went wrong ( reported once in the forum )
add_settings_error( 'general', 'pll_add_language', __( 'Impossible to add the language.', 'polylang' ) ); return new WP_Error( 'pll_add_language', __( 'Impossible to add the language.', 'polylang' ) );
return false;
} }
wp_update_term( (int) $r['term_id'], 'language', array( 'term_group' => (int) $args['term_group'] ) ); // can't set the term group directly in wp_insert_term wp_update_term( (int) $r['term_id'], 'language', array( 'term_group' => (int) $args['term_group'] ) ); // can't set the term group directly in wp_insert_term
...@@ -74,8 +74,6 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -74,8 +74,6 @@ class PLL_Admin_Model extends PLL_Model {
$this->clean_languages_cache(); // Again to set add mo_id in the cached languages list $this->clean_languages_cache(); // Again to set add mo_id in the cached languages list
flush_rewrite_rules(); // Refresh rewrite rules flush_rewrite_rules(); // Refresh rewrite rules
add_settings_error( 'general', 'pll_languages_created', __( 'Language added.', 'polylang' ), 'updated' );
return true; return true;
} }
...@@ -90,7 +88,7 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -90,7 +88,7 @@ class PLL_Admin_Model extends PLL_Model {
$lang = $this->get_language( (int) $lang_id ); $lang = $this->get_language( (int) $lang_id );
if ( empty( $lang ) ) { if ( empty( $lang ) ) {
return; return false;
} }
// Oops ! we are deleting the default language... // Oops ! we are deleting the default language...
...@@ -157,7 +155,7 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -157,7 +155,7 @@ class PLL_Admin_Model extends PLL_Model {
update_option( 'polylang', $this->options ); update_option( 'polylang', $this->options );
flush_rewrite_rules(); // refresh rewrite rules flush_rewrite_rules(); // refresh rewrite rules
add_settings_error( 'general', 'pll_languages_deleted', __( 'Language deleted.', 'polylang' ), 'updated' ); return true;
} }
/** /**
...@@ -181,8 +179,10 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -181,8 +179,10 @@ class PLL_Admin_Model extends PLL_Model {
*/ */
public function update_language( $args ) { public function update_language( $args ) {
$lang = $this->get_language( (int) $args['lang_id'] ); $lang = $this->get_language( (int) $args['lang_id'] );
if ( ! $this->validate_lang( $args, $lang ) ) {
return false; $errors = $this->validate_lang( $args, $lang );
if ( $errors->get_error_code() ) { // Using has_errors() would be more meaningful but is available only since WP 5.0
return $errors;
} }
// Update links to this language in posts and terms in case the slug has been modified // Update links to this language in posts and terms in case the slug has been modified
...@@ -235,7 +235,7 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -235,7 +235,7 @@ class PLL_Admin_Model extends PLL_Model {
update_option( 'polylang', $this->options ); update_option( 'polylang', $this->options );
// And finally update the language itself // And finally update the language itself
$description = serialize( array( 'locale' => $args['locale'], 'rtl' => (int) $args['rtl'], 'flag_code' => empty( $args['flag'] ) ? '' : $args['flag'] ) ); $description = maybe_serialize( array( 'locale' => $args['locale'], 'rtl' => (int) $args['rtl'], 'flag_code' => empty( $args['flag'] ) ? '' : $args['flag'] ) );
wp_update_term( (int) $lang->term_id, 'language', array( 'slug' => $slug, 'name' => $args['name'], 'description' => $description, 'term_group' => (int) $args['term_group'] ) ); wp_update_term( (int) $lang->term_id, 'language', array( 'slug' => $slug, 'name' => $args['name'], 'description' => $description, 'term_group' => (int) $args['term_group'] ) );
wp_update_term( (int) $lang->tl_term_id, 'term_language', array( 'slug' => 'pll_' . $slug, 'name' => $args['name'] ) ); wp_update_term( (int) $lang->tl_term_id, 'term_language', array( 'slug' => 'pll_' . $slug, 'name' => $args['name'] ) );
...@@ -250,7 +250,6 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -250,7 +250,6 @@ class PLL_Admin_Model extends PLL_Model {
$this->clean_languages_cache(); $this->clean_languages_cache();
flush_rewrite_rules(); // Refresh rewrite rules flush_rewrite_rules(); // Refresh rewrite rules
add_settings_error( 'general', 'pll_languages_updated', __( 'Language updated.', 'polylang' ), 'updated' );
return true; return true;
} }
...@@ -266,35 +265,45 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -266,35 +265,45 @@ class PLL_Admin_Model extends PLL_Model {
* @return bool true if success / false if failed * @return bool true if success / false if failed
*/ */
protected function validate_lang( $args, $lang = null ) { protected function validate_lang( $args, $lang = null ) {
$errors = new WP_Error();
// Validate locale with the same pattern as WP 4.3. See #28303 // Validate locale with the same pattern as WP 4.3. See #28303
if ( ! preg_match( '#^[a-z]{2,3}(?:_[A-Z]{2})?(?:_[a-z0-9]+)?$#', $args['locale'], $matches ) ) { if ( ! preg_match( '#^[a-z]{2,3}(?:_[A-Z]{2})?(?:_[a-z0-9]+)?$#', $args['locale'], $matches ) ) {
add_settings_error( 'general', 'pll_invalid_locale', __( 'Enter a valid WordPress locale', 'polylang' ) ); $errors->add( 'pll_invalid_locale', __( 'Enter a valid WordPress locale', 'polylang' ) );
} }
// Validate slug characters // Validate slug characters
if ( ! preg_match( '#^[a-z_-]+$#', $args['slug'] ) ) { if ( ! preg_match( '#^[a-z_-]+$#', $args['slug'] ) ) {
add_settings_error( 'general', 'pll_invalid_slug', __( 'The language code contains invalid characters', 'polylang' ) ); $errors->add( 'pll_invalid_slug', __( 'The language code contains invalid characters', 'polylang' ) );
} }
// Validate slug is unique // Validate slug is unique
foreach ( $this->get_languages_list() as $language ) { foreach ( $this->get_languages_list() as $language ) {
if ( $language->slug === $args['slug'] && ( null === $lang || ( isset( $lang ) && $lang->term_id != $language->term_id ) ) ) { if ( $language->slug === $args['slug'] && ( null === $lang || ( isset( $lang ) && $lang->term_id != $language->term_id ) ) ) {
add_settings_error( 'general', 'pll_non_unique_slug', __( 'The language code must be unique', 'polylang' ) ); $errors->add( 'pll_non_unique_slug', __( 'The language code must be unique', 'polylang' ) );
} }
} }
// Validate name // Validate name
// No need to sanitize it as wp_insert_term will do it for us // No need to sanitize it as wp_insert_term will do it for us
if ( empty( $args['name'] ) ) { if ( empty( $args['name'] ) ) {
add_settings_error( 'general', 'pll_invalid_name', __( 'The language must have a name', 'polylang' ) ); $errors->add( 'pll_invalid_name', __( 'The language must have a name', 'polylang' ) );
} }
// Validate flag // Validate flag
if ( ! empty( $args['flag'] ) && ! file_exists( POLYLANG_DIR . '/flags/' . $args['flag'] . '.png' ) ) { if ( ! empty( $args['flag'] ) && ! file_exists( POLYLANG_DIR . '/flags/' . $args['flag'] . '.png' ) ) {
add_settings_error( 'general', 'pll_invalid_flag', __( 'The flag does not exist', 'polylang' ) ); $flag = PLL_Language::get_flag_informations( $args['flag'] );
if ( ! empty( $flag['url'] ) ) {
$response = function_exists( 'vip_safe_wp_remote_get' ) ? vip_safe_wp_remote_get( esc_url_raw( $flag['url'] ) ) : wp_remote_get( esc_url_raw( $flag['url'] ) );
}
if ( empty( $response ) || is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
$errors->add( 'pll_invalid_flag', __( 'The flag does not exist', 'polylang' ) );
}
} }
return get_settings_errors() ? false : true; return $errors;
} }
/** /**
...@@ -355,7 +364,7 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -355,7 +364,7 @@ class PLL_Admin_Model extends PLL_Model {
$term = uniqid( 'pll_' ); // the term name $term = uniqid( 'pll_' ); // the term name
$terms[] = $wpdb->prepare( '( %s, %s )', $term, $term ); $terms[] = $wpdb->prepare( '( %s, %s )', $term, $term );
$slugs[] = $wpdb->prepare( '%s', $term ); $slugs[] = $wpdb->prepare( '%s', $term );
$description[ $term ] = serialize( $t ); $description[ $term ] = maybe_serialize( $t );
$count[ $term ] = count( $t ); $count[ $term ] = count( $t );
} }
...@@ -386,7 +395,7 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -386,7 +395,7 @@ class PLL_Admin_Model extends PLL_Model {
// Prepare objects relationships // Prepare objects relationships
foreach ( $terms as $term ) { foreach ( $terms as $term ) {
$t = unserialize( $term->description ); $t = maybe_unserialize( $term->description );
if ( in_array( $t, $translations ) ) { if ( in_array( $t, $translations ) ) {
foreach ( $t as $object_id ) { foreach ( $t as $object_id ) {
if ( ! empty( $object_id ) ) { if ( ! empty( $object_id ) ) {
...@@ -446,7 +455,7 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -446,7 +455,7 @@ class PLL_Admin_Model extends PLL_Model {
) )
); );
// PHPCS:disable WordPress.DB.PreparedSQL.NotPrepared // PHPCS:disable WordPress.DB.PreparedSQL
$terms = $wpdb->get_col( $terms = $wpdb->get_col(
sprintf( sprintf(
"SELECT {$wpdb->term_taxonomy}.term_id FROM {$wpdb->term_taxonomy} "SELECT {$wpdb->term_taxonomy}.term_id FROM {$wpdb->term_taxonomy}
...@@ -487,7 +496,7 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -487,7 +496,7 @@ class PLL_Admin_Model extends PLL_Model {
foreach ( $terms as $term ) { foreach ( $terms as $term ) {
$term_ids[ $term->taxonomy ][] = $term->term_id; $term_ids[ $term->taxonomy ][] = $term->term_id;
$tr = unserialize( $term->description ); $tr = maybe_unserialize( $term->description );
if ( ! empty( $tr[ $old_slug ] ) ) { if ( ! empty( $tr[ $old_slug ] ) ) {
if ( $new_slug ) { if ( $new_slug ) {
$tr[ $new_slug ] = $tr[ $old_slug ]; // Suppress this for delete $tr[ $new_slug ] = $tr[ $old_slug ]; // Suppress this for delete
...@@ -501,7 +510,7 @@ class PLL_Admin_Model extends PLL_Model { ...@@ -501,7 +510,7 @@ class PLL_Admin_Model extends PLL_Model {
$dt['t'][] = (int) $term->term_id; $dt['t'][] = (int) $term->term_id;
$dt['tt'][] = (int) $term->term_taxonomy_id; $dt['tt'][] = (int) $term->term_taxonomy_id;
} else { } else {
$ut['case'][] = $wpdb->prepare( 'WHEN %d THEN %s', $term->term_id, serialize( $tr ) ); $ut['case'][] = $wpdb->prepare( 'WHEN %d THEN %s', $term->term_id, maybe_serialize( $tr ) );
$ut['in'][] = (int) $term->term_id; $ut['in'][] = (int) $term->term_id;
} }
} }
......
...@@ -17,8 +17,6 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu { ...@@ -17,8 +17,6 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu {
public function __construct( &$polylang ) { public function __construct( &$polylang ) {
parent::__construct( $polylang ); parent::__construct( $polylang );
$this->theme = get_option( 'stylesheet' );
// Populates nav menus locations // Populates nav menus locations
// Since WP 4.4, must be done before customize_register is fired // Since WP 4.4, must be done before customize_register is fired
add_filter( 'theme_mod_nav_menu_locations', array( $this, 'theme_mod_nav_menu_locations' ), 20 ); add_filter( 'theme_mod_nav_menu_locations', array( $this, 'theme_mod_nav_menu_locations' ), 20 );
...@@ -36,15 +34,11 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu { ...@@ -36,15 +34,11 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu {
public function admin_init() { public function admin_init() {
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
add_action( 'wp_update_nav_menu_item', array( $this, 'wp_update_nav_menu_item' ), 10, 2 ); add_action( 'wp_update_nav_menu_item', array( $this, 'wp_update_nav_menu_item' ), 10, 2 );
add_filter( 'wp_get_nav_menu_items', array( $this, 'translate_switcher_title' ) );
// Translation of menus based on chosen locations // Translation of menus based on chosen locations
add_filter( 'pre_update_option_theme_mods_' . $this->theme, array( $this, 'pre_update_option_theme_mods' ) ); add_filter( 'pre_update_option_theme_mods_' . $this->theme, array( $this, 'pre_update_option_theme_mods' ) );
add_action( 'delete_nav_menu', array( $this, 'delete_nav_menu' ) ); add_action( 'delete_nav_menu', array( $this, 'delete_nav_menu' ) );
// Filter _wp_auto_add_pages_to_menu by language
add_action( 'transition_post_status', array( $this, 'auto_add_pages_to_menu' ), 5, 3 ); // before _wp_auto_add_pages_to_menu
// FIXME is it possible to choose the order ( after theme locations in WP3.5 and older ) ? // FIXME is it possible to choose the order ( after theme locations in WP3.5 and older ) ?
// FIXME not displayed if Polylang is activated before the first time the user goes to nav menus http://core.trac.wordpress.org/ticket/16828 // FIXME not displayed if Polylang is activated before the first time the user goes to nav menus http://core.trac.wordpress.org/ticket/16828
add_meta_box( 'pll_lang_switch_box', __( 'Language switcher', 'polylang' ), array( $this, 'lang_switch' ), 'nav-menus', 'side', 'high' ); add_meta_box( 'pll_lang_switch_box', __( 'Language switcher', 'polylang' ), array( $this, 'lang_switch' ), 'nav-menus', 'side', 'high' );
...@@ -68,17 +62,17 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu { ...@@ -68,17 +62,17 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu {
<ul id="lang-switch-checklist" class="categorychecklist form-no-clear"> <ul id="lang-switch-checklist" class="categorychecklist form-no-clear">
<li> <li>
<label class="menu-item-title"> <label class="menu-item-title">
<input type="checkbox" class="menu-item-checkbox" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-object-id]" value="-1"> <?php esc_html_e( 'Language switcher', 'polylang' ); ?> <input type="checkbox" class="menu-item-checkbox" name="menu-item[<?php echo (int) $_nav_menu_placeholder; ?>][menu-item-object-id]" value="-1"> <?php esc_html_e( 'Languages', 'polylang' ); ?>
</label> </label>
<input type="hidden" class="menu-item-type" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-type]" value="custom"> <input type="hidden" class="menu-item-type" name="menu-item[<?php echo (int) $_nav_menu_placeholder; ?>][menu-item-type]" value="custom">
<input type="hidden" class="menu-item-title" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" value="<?php esc_html_e( 'Language switcher', 'polylang' ); ?>"> <input type="hidden" class="menu-item-title" name="menu-item[<?php echo (int) $_nav_menu_placeholder; ?>][menu-item-title]" value="<?php esc_html_e( 'Languages', 'polylang' ); ?>">
<input type="hidden" class="menu-item-url" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-url]" value="#pll_switcher"> <input type="hidden" class="menu-item-url" name="menu-item[<?php echo (int) $_nav_menu_placeholder; ?>][menu-item-url]" value="#pll_switcher">
</li> </li>
</ul> </ul>
</div> </div>
<p class="button-controls"> <p class="button-controls">
<span class="add-to-menu"> <span class="add-to-menu">
<input type="submit" <?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-post-type-menu-item" id="submit-posttype-lang-switch"> <input type="submit" <?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu', 'polylang' ); ?>" name="add-post-type-menu-item" id="submit-posttype-lang-switch">
<span class="spinner"></span> <span class="spinner"></span>
</span> </span>
</p> </p>
...@@ -101,7 +95,7 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu { ...@@ -101,7 +95,7 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu {
wp_enqueue_script( 'pll_nav_menu', plugins_url( '/js/nav-menu' . $suffix . '.js', POLYLANG_FILE ), array( 'jquery' ), POLYLANG_VERSION ); wp_enqueue_script( 'pll_nav_menu', plugins_url( '/js/nav-menu' . $suffix . '.js', POLYLANG_FILE ), array( 'jquery' ), POLYLANG_VERSION );
$data['strings'] = PLL_Switcher::get_switcher_options( 'menu', 'string' ); // The strings for the options $data['strings'] = PLL_Switcher::get_switcher_options( 'menu', 'string' ); // The strings for the options
$data['title'] = __( 'Language switcher', 'polylang' ); // The title $data['title'] = __( 'Languages', 'polylang' ); // The title
// Get all language switcher menu items // Get all language switcher menu items
$items = get_posts( $items = get_posts(
...@@ -133,7 +127,7 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu { ...@@ -133,7 +127,7 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu {
* @param int $menu_item_db_id * @param int $menu_item_db_id
*/ */
public function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0 ) { public function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0 ) {
if ( empty( $_POST['menu-item-url'][ $menu_item_db_id ] ) || '#pll_switcher' != $_POST['menu-item-url'][ $menu_item_db_id ] ) { if ( empty( $_POST['menu-item-url'][ $menu_item_db_id ] ) || '#pll_switcher' !== $_POST['menu-item-url'][ $menu_item_db_id ] ) { // phpcs:ignore WordPress.Security.NonceVerification
return; return;
} }
...@@ -157,23 +151,6 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu { ...@@ -157,23 +151,6 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu {
} }
} }
/**
* Translates the language switcher menu items title in case the user switches the admin language
*
* @since 1.1.1
*
* @param array $items
* @return array modified $items
*/
public function translate_switcher_title( $items ) {
foreach ( $items as $item ) {
if ( '#pll_switcher' == $item->url ) {
$item->post_title = __( 'Language switcher', 'polylang' );
}
}
return $items;
}
/** /**
* Assign menu languages and translations based on ( temporary ) locations * Assign menu languages and translations based on ( temporary ) locations
* *
...@@ -210,14 +187,14 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu { ...@@ -210,14 +187,14 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu {
if ( current_user_can( 'edit_theme_options' ) && isset( $mods['nav_menu_locations'] ) ) { if ( current_user_can( 'edit_theme_options' ) && isset( $mods['nav_menu_locations'] ) ) {
// Manage Locations tab in Appearance -> Menus // Manage Locations tab in Appearance -> Menus
if ( isset( $_GET['action'] ) && 'locations' == $_GET['action'] ) { if ( isset( $_GET['action'] ) && 'locations' === $_GET['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification
check_admin_referer( 'save-menu-locations' ); check_admin_referer( 'save-menu-locations' );
$this->options['nav_menus'][ $this->theme ] = array(); $this->options['nav_menus'][ $this->theme ] = array();
} }
// Edit Menus tab in Appearance -> Menus // Edit Menus tab in Appearance -> Menus
// Add the test of $_POST['update-nav-menu-nonce'] to avoid conflict with Vantage theme // Add the test of $_POST['update-nav-menu-nonce'] to avoid conflict with Vantage theme
elseif ( isset( $_POST['action'], $_POST['update-nav-menu-nonce'] ) && 'update' == $_POST['action'] ) { elseif ( isset( $_POST['action'], $_POST['update-nav-menu-nonce'] ) && 'update' === $_POST['action'] ) {
check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' ); check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
$this->options['nav_menus'][ $this->theme ] = array(); $this->options['nav_menus'][ $this->theme ] = array();
} }
...@@ -289,48 +266,4 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu { ...@@ -289,48 +266,4 @@ class PLL_Admin_Nav_Menu extends PLL_Nav_Menu {
update_option( 'polylang', $this->options ); update_option( 'polylang', $this->options );
} }
} }
/**
* Filters the option nav_menu_options for auto added pages to menu
*
* @since 0.9.4
*
* @param array $options
* @return array Modified options
*/
public function nav_menu_options( $options ) {
$options['auto_add'] = array_intersect( $options['auto_add'], $this->auto_add_menus );
return $options;
}
/**
* Filters _wp_auto_add_pages_to_menu by language
*
* @since 0.9.4
*
* @param string $new_status Transition to this post status.
* @param string $old_status Previous post status.
* @param object $post Post data.
*/
public function auto_add_pages_to_menu( $new_status, $old_status, $post ) {
if ( 'publish' != $new_status || 'publish' == $old_status || 'page' != $post->post_type || ! empty( $post->post_parent ) ) {
return;
}
if ( ! empty( $this->options['nav_menus'][ $this->theme ] ) ) {
$this->auto_add_menus = array();
$lang = $this->model->post->get_language( $post->ID );
$lang = empty( $lang ) ? $this->options['default_lang'] : $lang->slug; // If the page has no language yet, the default language will be assigned
// Get all the menus in the page language
foreach ( $this->options['nav_menus'][ $this->theme ] as $loc ) {
if ( ! empty( $loc[ $lang ] ) ) {
$this->auto_add_menus[] = $loc[ $lang ];
}
}
add_filter( 'option_nav_menu_options', array( $this, 'nav_menu_options' ) );
}
}
} }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* @since 2.3.9 * @since 2.3.9
*/ */
class PLL_Admin_Notices { class PLL_Admin_Notices {
static private $notices = array(); private static $notices = array();
/** /**
* Constructor * Constructor
...@@ -155,7 +155,8 @@ class PLL_Admin_Notices { ...@@ -155,7 +155,8 @@ class PLL_Admin_Notices {
printf( printf(
'<a class="notice-dismiss" href="%s"><span class="screen-reader-text">%s</span></a>', '<a class="notice-dismiss" href="%s"><span class="screen-reader-text">%s</span></a>',
esc_url( wp_nonce_url( add_query_arg( 'pll-hide-notice', $name ), $name, '_pll_notice_nonce' ) ), esc_url( wp_nonce_url( add_query_arg( 'pll-hide-notice', $name ), $name, '_pll_notice_nonce' ) ),
esc_html__( 'Dismiss this notice.' ) /* translators: accessibility text */
esc_html__( 'Dismiss this notice.', 'polylang' )
); );
} }
...@@ -173,7 +174,7 @@ class PLL_Admin_Notices { ...@@ -173,7 +174,7 @@ class PLL_Admin_Notices {
<?php <?php
printf( printf(
/* translators: %1$s is link start tag, %2$s is link end tag. */ /* translators: %1$s is link start tag, %2$s is link end tag. */
esc_html__( 'We have noticed that you are using Polylang with WooCommerce. We recommend you to use %1$sPolylang for WooCommerce%2$s to ensure the compatibility.', 'polylang' ), esc_html__( 'We have noticed that you are using Polylang with WooCommerce. To ensure compatibility, we recommend you use %1$sPolylang for WooCommerce%2$s.', 'polylang' ),
'<a href="https://polylang.pro/downloads/polylang-for-woocommerce/">', '<a href="https://polylang.pro/downloads/polylang-for-woocommerce/">',
'</a>' '</a>'
); );
...@@ -198,7 +199,7 @@ class PLL_Admin_Notices { ...@@ -198,7 +199,7 @@ class PLL_Admin_Notices {
<?php <?php
printf( printf(
/* translators: %1$s is link start tag, %2$s is link end tag. */ /* translators: %1$s is link start tag, %2$s is link end tag. */
esc_html__( 'We have noticed that you are using Polylang for some time. We hope that you love it! We would be thrilled if you could %1$sgive us a 5 stars rating%2$s.', 'polylang' ), esc_html__( 'We have noticed that you have been using Polylang for some time. We hope you love it, and we would really appreciate it if you would %1$sgive us a 5 stars rating%2$s.', 'polylang' ),
'<a href="https://wordpress.org/support/plugin/polylang/reviews/?rate=5#new-post">', '<a href="https://wordpress.org/support/plugin/polylang/reviews/?rate=5#new-post">',
'</a>' '</a>'
); );
......
This diff is collapsed.
...@@ -18,22 +18,20 @@ if ( ! defined( 'ABSPATH' ) ) { ...@@ -18,22 +18,20 @@ if ( ! defined( 'ABSPATH' ) ) {
} }
?> ?>
<tr> <tr>
<td class = "pll-media-language-column"><span class = "pll-translation-flag"><?php echo $language->flag; ?></span><?php echo esc_html( $language->name ); ?></td> <td class = "pll-media-language-column"><span class = "pll-translation-flag"><?php echo $language->flag; // phpcs:ignore WordPress.Security.EscapeOutput ?></span><?php echo esc_html( $language->name ); ?></td>
<td class = "pll-media-edit-column"> <td class = "pll-media-edit-column">
<?php <?php
// The translation exists
if ( ( $translation_id = $this->model->post->get_translation( $post_id, $language ) ) && $translation_id !== $post_id ) { if ( ( $translation_id = $this->model->post->get_translation( $post_id, $language ) ) && $translation_id !== $post_id ) {
// The translation exists
printf( printf(
'<input type="hidden" name="media_tr_lang[%s]" value="%d" />%s', '<input type="hidden" name="media_tr_lang[%s]" value="%d" />',
esc_attr( $language->slug ), esc_attr( $language->slug ),
esc_attr( $translation_id ), esc_attr( $translation_id )
$this->links->edit_post_translation_link( $translation_id )
); );
} echo $this->links->edit_post_translation_link( $translation_id ); // phpcs:ignore WordPress.Security.EscapeOutput
} else {
// No translation // No translation
else { echo $this->links->new_post_translation_link( $post_id, $language ); // phpcs:ignore WordPress.Security.EscapeOutput
echo $this->links->new_post_translation_link( $post_id, $language );
} }
?> ?>
</td> </td>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment