Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/Updates/2.16.1-b3.php25
-rw-r--r--core/Version.php2
-rw-r--r--lang/el.json6
-rw-r--r--lang/fi.json20
-rw-r--r--lang/ko.json4
-rw-r--r--lang/nb.json1
-rw-r--r--lang/ru.json15
-rw-r--r--lang/sq.json2
-rw-r--r--lang/sv.json2
-rw-r--r--lang/tr.json2
-rw-r--r--libs/Zend/Validate/Hostname.php140
-rw-r--r--plugins/API/lang/fi.json6
-rw-r--r--plugins/API/lang/ru.json5
-rw-r--r--plugins/Actions/lang/fi.json5
-rw-r--r--plugins/Actions/lang/ru.json4
-rw-r--r--plugins/Contents/lang/ru.json6
-rw-r--r--plugins/CoreAdminHome/lang/ru.json12
-rw-r--r--plugins/CoreHome/lang/fi.json11
-rw-r--r--plugins/CoreHome/lang/ko.json1
-rw-r--r--plugins/CoreUpdater/lang/fi.json10
-rw-r--r--plugins/CustomVariables/lang/fi.json6
-rw-r--r--plugins/DBStats/lang/fi.json1
-rw-r--r--plugins/Dashboard/lang/fi.json2
-rw-r--r--plugins/Dashboard/lang/lt.json2
-rw-r--r--plugins/DevicePlugins/lang/fi.json2
-rw-r--r--plugins/Diagnostics/lang/fi.json6
-rw-r--r--plugins/Ecommerce/lang/fi.json8
-rw-r--r--plugins/Feedback/lang/fi.json8
-rw-r--r--plugins/Goals/API.php1
-rw-r--r--plugins/Goals/lang/el.json2
-rw-r--r--plugins/Goals/lang/lt.json2
-rw-r--r--plugins/Goals/lang/nb.json1
-rw-r--r--plugins/Goals/tests/Integration/APITest.php7
-rw-r--r--plugins/ImageGraph/lang/fi.json3
-rw-r--r--plugins/Installation/ServerFilesGenerator.php2
-rw-r--r--plugins/Installation/lang/fi.json14
-rw-r--r--plugins/Live/lang/fi.json4
-rw-r--r--plugins/Live/lang/nb.json1
-rw-r--r--plugins/Live/stylesheets/live.less4
-rw-r--r--plugins/MobileAppMeasurable/lang/fi.json7
-rw-r--r--plugins/PrivacyManager/lang/fi.json7
-rw-r--r--plugins/PrivacyManager/lang/nb.json2
-rw-r--r--plugins/Provider/lang/fi.json4
-rw-r--r--plugins/Referrers/lang/fi.json2
-rw-r--r--plugins/SEO/lang/fi.json1
-rw-r--r--plugins/SegmentEditor/lang/fi.json9
-rw-r--r--plugins/SitesManager/lang/el.json2
-rw-r--r--plugins/Transitions/lang/fi.json1
-rw-r--r--plugins/UserCountry/lang/fi.json1
-rw-r--r--plugins/UserCountry/lang/nb.json1
-rw-r--r--plugins/UserCountryMap/lang/fi.json5
-rw-r--r--plugins/UserLanguage/lang/fi.json3
-rw-r--r--plugins/UsersManager/lang/fi.json12
-rw-r--r--plugins/VisitFrequency/lang/fi.json2
-rw-r--r--plugins/VisitTime/lang/fi.json1
-rw-r--r--plugins/VisitorInterest/lang/fi.json1
-rw-r--r--plugins/VisitsSummary/lang/fi.json1
-rw-r--r--plugins/WebsiteMeasurable/lang/fi.json7
-rw-r--r--tests/PHPUnit/Integration/EmailValidatorTest.php57
59 files changed, 443 insertions, 38 deletions
diff --git a/core/Updates/2.16.1-b3.php b/core/Updates/2.16.1-b3.php
new file mode 100644
index 0000000000..cb46053660
--- /dev/null
+++ b/core/Updates/2.16.1-b3.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Updates;
+
+use Piwik\Plugins\Installation\ServerFilesGenerator;
+use Piwik\Updates;
+use Piwik\Updater;
+
+/**
+ */
+class Updates_2_16_1_b3 extends Updates
+{
+ public function doUpdate(Updater $updater)
+ {
+ // added .eot whitelisted file for apache webserver
+ ServerFilesGenerator::deleteHtAccessFiles();
+ ServerFilesGenerator::createHtAccessFiles();
+ }
+} \ No newline at end of file
diff --git a/core/Version.php b/core/Version.php
index c85b9d829f..a07b0cca53 100644
--- a/core/Version.php
+++ b/core/Version.php
@@ -20,7 +20,7 @@ final class Version
* The current Piwik version.
* @var string
*/
- const VERSION = '2.16.1-b2';
+ const VERSION = '2.16.1-b3';
public function isStableVersion($version)
{
diff --git a/lang/el.json b/lang/el.json
index fcceae2a81..c141191e32 100644
--- a/lang/el.json
+++ b/lang/el.json
@@ -62,11 +62,11 @@
"ColumnNbActions": "Δραστηριότητες",
"ColumnNbActionsDocumentation": "Ο αριθμός των δραστηριοτήτων που έγιναν από τους επισκέπτες σας. Οι δραστηριότητες μπορεί να είναι προβολές σελίδων, λήψεις ή εξωτερικοί σύνδεσμοι.",
"ColumnNbUniqVisitors": "Μοναδικοί επισκέπτες",
- "ColumnNbUniqVisitorsDocumentation": "Ο αριθμός των μη διπλών επισκεπτών που έρχονται στην ιστοσελίδα. Κάθε χρήστης καταγράφετε μόνο μια φορά, ακόμα και αν επισκέπτεται την ιστοσελίδα περισσότερες φορές τη μέρα.",
+ "ColumnNbUniqVisitorsDocumentation": "Ο αριθμός των μη διπλών επισκεπτών που έρχονται στην ιστοσελίδα. Κάθε χρήστης καταγράφεται μόνο μια φορά, ακόμα και αν επισκέπτεται την ιστοσελίδα περισσότερες φορές τη μέρα.",
"ColumnNbUsers": "Χρήστες",
"ColumnNbUsersDocumentation": "Ο αριθμός χρηστών που έχουν κάνει είσοδο στον ιστοτόπο σας. Είναι ο αριθμός των μοναδικών ενεργών χρηστών που έχουν καθορισμένο αναγνωριστικό χρήστη (μέσω της συνάρτησης παρακολούθησης 'setUserId').",
"ColumnNbVisits": "Επισκέψεις",
- "ColumnNbVisitsDocumentation": "Αν ένας επισκέπτης έρθει στην ιστοσελίδα για πρώτη φορά ή αν επισκέπτεται μια σελίδα για περισσότερο από 30 λεπτά μετά την τελευταία προβολή σελίδας, αυτό θα καταγράφετε ως νέα επίσκεψη.",
+ "ColumnNbVisitsDocumentation": "Αν ένας επισκέπτης έρθει στην ιστοσελίδα για πρώτη φορά ή αν επισκέπτεται μια σελίδα για περισσότερο από 30 λεπτά μετά την τελευταία προβολή σελίδας, αυτό θα καταγράφεται ως νέα επίσκεψη.",
"ColumnPageBounceRateDocumentation": "Το ποσοστό των επισκέψεων που ξεκίνησαν σε αυτή τη σελίδα και άφησαν την ιστοσελίδα αμέσως.",
"ColumnPageviews": "Προβολές σελίδων",
"ColumnPageviewsDocumentation": "Οι επισκέψεις αυτής της σελίδας.",
@@ -77,7 +77,7 @@
"ColumnUniqueEntrances": "Μοναδικές είσοδοι",
"ColumnUniqueExits": "Μοναδικές έξοδοι",
"ColumnUniquePageviews": "Μοναδικές προβολές σελίδων",
- "ColumnUniquePageviewsDocumentation": "Ο αριθμός των επισκέψεων που περιελάμβαναν αυτή τη σελίδα. Αν μια σελίδα προβλήθηκε πολλές φορές σε μια επίσκεψη, καταγράφετε μόνο μια φορά..",
+ "ColumnUniquePageviewsDocumentation": "Ο αριθμός των επισκέψεων που περιελάμβαναν αυτή την σελίδα. Αν μια σελίδα προβλήθηκε πολλές φορές σε μια επίσκεψη, καταγράφεται μόνο μια φορά.",
"ColumnValuePerVisit": "Τιμή ανά Επίσκεψη",
"ColumnViewedAfterSearch": "Πατημένο στα αποτελέσματα αναζήτησης",
"ColumnViewedAfterSearchDocumentation": "Ο αριθμός των επισκέψεων σε αυτή τη σελίδα, έπειτα από αναζήτηση ενός επισκέπτη στην ιστοσελίδα σας και αφού στη συνέχεια έκανε κλικ σε αυτή τη σελίδα από τα αποτελέσματα αναζήτησης.",
diff --git a/lang/fi.json b/lang/fi.json
index 715c3afc41..a864ac39be 100644
--- a/lang/fi.json
+++ b/lang/fi.json
@@ -1,5 +1,7 @@
{
"General": {
+ "12HourClock": "12-tuntinen kello",
+ "24HourClock": "24-tuntinen kello",
"AbandonedCarts": "Hylätyt ostoskorit",
"AboutPiwikX": "Tietoja Piwikistä %s",
"Action": "Toiminto",
@@ -10,6 +12,7 @@
"AllWebsitesDashboard": "Kaikkien verkkosivujen työpöytä",
"And": "ja",
"API": "API",
+ "Apply": "Käytä",
"ArchivingInlineHelp": "Keskikokoisilla ja vilkkailla sivulla on suositeltavaa kieltää arkistointi selaimesta. Parempi vaihtoehto on käyttää cron-työtä arkistointiin joka tunti.",
"ArchivingTriggerDescription": "Suositeltavaa suuremmissa Piwik-asennuksissa. Sinun täytyy %1$sasentaa cron-työ%2$s, jotta raportit käsitellään oikein.",
"AuthenticationMethodSmtp": "SMTP:n autentikointimenetelmä",
@@ -23,6 +26,7 @@
"CannotUnzipFile": "Ei voi purkaa tiedostoa %1$s: %2$s",
"ChangePassword": "Vaihda salasana",
"ChangeTagCloudView": "Voit katsoa raporttia myös muissa muodoissa. Käytä nappuloita raportin alareunassa.",
+ "ChooseDate": "Valitse päivä, nyt valittu päivä: %s",
"ChooseLanguage": "Valitse kieli",
"ChoosePeriod": "Valitse aikaväli",
"ClickHere": "Klikkaa tästä lisätietoja.",
@@ -81,6 +85,8 @@
"ConfigFileIsNotWritable": "Piwikin asetustiedostoon %1$s ei voi kirjoittaa. Kaikkia muutoksia ei voi tallentaa. %2$s Muuta tiedoston oikeuksia niin, että kirjoittaminen on sallittua.",
"Continue": "Jatka",
"ContinueToPiwik": "Jatka Piwikiin",
+ "CurrentlyUsingUnsecureHttp": "Käytät Piwikiä epäturvallisen HTTP:n yli. Suosittelemme säätämään Piwikin käyttämään SSL:ää (HTTPS).",
+ "CreatedByUser": "luoja %s",
"CurrentMonth": "Tämä kuukausi",
"CurrentWeek": "Tämä viikko",
"CurrentYear": "Tämä vuosi",
@@ -94,6 +100,7 @@
"Date": "Päiväys",
"DateRange": "Aikaväli:",
"DateRangeFrom": "Alkaen",
+ "DateRangeInPeriodList": "päiväysalue",
"DateRangeTo": "Mihin",
"DaysHours": "%1$s päivää %2$s tuntia",
"DaysSinceFirstVisit": "Päiviä ensimmäisestä käynnistä",
@@ -221,6 +228,7 @@
"Name": "Nimi",
"NbActions": "Toimintojen määrä",
"NbSearches": "Sisäisten hakujen määrä",
+ "NeedMoreHelp": "Tarvitsetko lisää apua?",
"Never": "Ei koskaan",
"NewReportsWillBeProcessedByCron": "Kun Piwikin arkistointia ei käynnistetä selaimesta, uudet raportit luodaan cronilla.",
"NewUpdatePiwikX": "Uusi päivitys: Piwik %s",
@@ -233,6 +241,7 @@
"NotDefined": "%s ei ole määritetty.",
"Note": "Huomio",
"NotInstalled": "Ei asennettu",
+ "NotRecommended": "ei suositella",
"NotValid": "%s on virheellinen",
"NumberOfVisits": "Käyntien lukumäärä",
"NUsers": "%s käyttäjää",
@@ -256,6 +265,7 @@
"OperationNotEquals": "Ei täsmää",
"OptionalSmtpPort": "Valinnainen. Oletus 25 salaamattomalle ja TLS:lle ja 465 SSL:lle.",
"Options": "Asetukset",
+ "Or": "tai",
"OrCancel": "tai %1$s peruuta %2$s",
"Others": "Muut",
"Outlink": "Lähtevä linkki",
@@ -283,10 +293,13 @@
"Price": "Hinta",
"ProductConversionRate": "Tuotteen konversiot",
"ProductRevenue": "Tuotteiden tulot",
+ "Measurable": "Mitattava",
+ "Measurables": "Mitattavat",
"PurchasedProducts": "Ostetut tuotteet",
"Quantity": "Määrä",
"RangeReports": "Oma aikaväli",
"ReadThisToLearnMore": "%1$sLue täältä lisätietoa.%2$s",
+ "Recommended": "Suositeltu",
"RecordsToPlot": "Piirrettävät tietueet",
"Refresh": "Päivitä",
"RefreshPage": "Päivitä sivu",
@@ -297,6 +310,7 @@
"ReportGeneratedFrom": "Tämä raportti on luotu %s:n tiedoista.",
"ReportRatioTooltip": "'%1$s' kuvaa %2$s :ta %3$s %4$s :ssa %5$s:n kanssa.",
"Reports": "Raportit",
+ "ReportsContainingTodayWillBeProcessedAtMostEvery": "Arkistoi enintään joka X sekunti",
"ReportsWillBeProcessedAtMostEveryHour": "Raportit päivitetään enintään kerran tunnissa.",
"RequestTimedOut": "Pyyntö osoitteeseen %s aikakatkaistiin. Ole hyvä ja yritä uudelleen.",
"Required": "%s vaaditaan",
@@ -334,10 +348,14 @@
"TagCloud": "Avainsanapilvi",
"Tax": "Verot",
"TimeAgo": "%s sitten",
+ "TimeFormat": "Aikamuoto",
"TimeOnPage": "Aika sivulla",
"Total": "Yhteensä",
"TotalRatioTooltip": "Tämä on %1$s kaikista %2$s %3$s.",
"TotalRevenue": "Tulot yhteensä",
+ "TrackingScopeAction": "Toiminto",
+ "TrackingScopePage": "Sivu",
+ "TrackingScopeVisit": "Käynti",
"TransitionsRowActionTooltip": "Näe mitä kävijät tekivät ennen ja jälkeen tällä sivulla käymistä",
"TransitionsRowActionTooltipTitle": "Avaa muutokset",
"TranslatorName": "<a href=\"http:\/\/olli.jarva.fi\/\">Olli Jarva<\/a>",
@@ -363,6 +381,7 @@
"Visitors": "Kävijät",
"VisitsWith": "Käynnit %s:n kanssa",
"VisitorSettings": "Kävijöiden asetukset",
+ "VisitType": "Käyntityyppi",
"VisitTypeExample": "Voit esimerkiksi valita kaikki kävijät jotka palasivat sivulle ja ostivat edellisellä käynnillä. Esimerkki pyynnöstä on %s",
"Warning": "Varoitus",
"WarningPhpVersionXIsTooOld": "Käyttämäsi PHP versio %s on ohittanut EOL (End of Life) ajankohdan. Suosittelemme vakavasti ohjelmiston päivittämistä uudempaan versioon, sillä käyttämäsi versio voi altistaa sivuston tietoturva-aukoille ja virheille, jotka ovat korjattu PHP:n uudemmissa versioissa.",
@@ -384,6 +403,7 @@
"YearsDays": "%1$s vuotta %2$s päivää",
"Yes": "Kyllä",
"YouAreCurrentlyUsing": "Käytät Piwik %s:ää",
+ "YouAreViewingDemoShortMessage": "Katsot Piwikin demoversiota",
"YouMustBeLoggedIn": "Sinun täytyy kirjautua sisään ennen tämän toiminnallisuuden käyttämistä.",
"YourChangesHaveBeenSaved": "Muutokset on tallennettu"
},
diff --git a/lang/ko.json b/lang/ko.json
index 615e8bf383..761a278d51 100644
--- a/lang/ko.json
+++ b/lang/ko.json
@@ -27,6 +27,7 @@
"CannotUnzipFile": "%1$s 파일의 압축을 풀 수 없습니다: %2$s",
"ChangePassword": "비밀번호 변경",
"ChangeTagCloudView": "태그 클라우드가 아닌 다른 방법으로 보고서를 볼 수 있습니다. 보고서의 아래쪽에있는 컨트롤을 사용하세요.",
+ "ChooseDate": "날짜를 선택하세요, 현재 선택된 날짜는 %s",
"ChooseLanguage": "언어 선택",
"ChoosePeriod": "기간 선택",
"ClickHere": "자세한 내용은 이곳을 클릭하세요.",
@@ -84,6 +85,7 @@
"Continue": "계속",
"ContinueToPiwik": "Piwik 계속 하기",
"CurrentlyUsingUnsecureHttp": "현재 위험할 수 있는 불안전한 HTTP를 통해 Piwik를 이용하고 있습니다. 우리는 SSL (HTTPS)를 설치하여 보안을 향상시킬 것을 추천합니다.",
+ "CreatedByUser": "%s가 만듬",
"CurrentMonth": "이번달",
"CurrentWeek": "이번주",
"CurrentYear": "올해",
@@ -242,6 +244,7 @@
"OperationDoesNotContain": "포함하지 않기",
"OptionalSmtpPort": "옵션입니다. 비 암호화 및 TLS SMTP는 25가 SSL SMTP는 465이 기본입니다.",
"Options": "설정",
+ "Or": "혹은",
"OrCancel": "또는 %1$s 취소 %2$s",
"Others": "기타",
"Outlink": "외부링크",
@@ -298,6 +301,7 @@
"Save": "저장",
"SaveImageOnYourComputer": "이미지를 저장하려면 이미지를 오른쪽으로 클릭하여 \"다른 이름으로 그림 저장...\"을 선택합니다",
"Search": "검색",
+ "SearchNoResults": "결과 없음",
"SeeAll": "다 보기",
"SeeTheOfficialDocumentationForMoreInformation": "자세한 내용은 %1$s 공식 문서 %2$s를 참조하세요.",
"SelectYesIfYouWantToSendEmailsViaServer": "로컬 mail() 함수 대신 메일서버를 통해 이메일을 보낼 경우, \"예\"를 선택합니다",
diff --git a/lang/nb.json b/lang/nb.json
index c20d68cb56..c307c41792 100644
--- a/lang/nb.json
+++ b/lang/nb.json
@@ -231,6 +231,7 @@
"Name": "Navn",
"NbActions": "Antall handlinger",
"NbSearches": "Antall interne søk",
+ "NeedMoreHelp": "Trenger du mer hjelp?",
"Never": "Aldri",
"NewReportsWillBeProcessedByCron": "Hvis Piwik-arkivering ikke blir utløst av nettleseren, så vil nye rapporter bli prosessert ved hjelp av crontab.",
"NewUpdatePiwikX": "Ny utgave: Piwik %s",
diff --git a/lang/ru.json b/lang/ru.json
index 79d4aed2c4..9ec7aa55b0 100644
--- a/lang/ru.json
+++ b/lang/ru.json
@@ -1,5 +1,7 @@
{
"General": {
+ "12HourClock": "12-часовой формат времени",
+ "24HourClock": "24-часовой формат времени",
"AbandonedCarts": "Нереализованные покупки",
"AboutPiwikX": "О Piwik %s",
"Action": "Действие",
@@ -25,6 +27,7 @@
"CannotUnzipFile": "Не могу распаковать файл %1$s: %2$s",
"ChangePassword": "Изменить пароль",
"ChangeTagCloudView": "Учтите, что Вы можете просматривать отчет не только через облако тегов. Используйте элементы управления внизу отчета для переключения вариантов просмотра.",
+ "ChooseDate": "Выбор даты, сейчас выбрана дата %s",
"ChooseLanguage": "Выбрать язык",
"ChoosePeriod": "Выбрать период",
"ClickHere": "Нажмите здесь, чтобы узнать больше",
@@ -83,6 +86,8 @@
"ConfigFileIsNotWritable": "Файл конфигурации Piwik %1$s закрыт для записи, ваши изменения не будут сохранены. %2$s Пожалуйста, измените разрешения конфигурационного файла и разрешите запись в него.",
"Continue": "Продолжить",
"ContinueToPiwik": "Перейти к Piwik",
+ "CurrentlyUsingUnsecureHttp": "В данный момент вы используете Piwik через небезопасное соединение HTTP, что может быть рискованно. Мы рекомендуем настроить Piwik на использование SSL (HTTPS) для повышения уровня безопасности.",
+ "CreatedByUser": "сделано %s",
"CurrentMonth": "Текущий месяц",
"CurrentWeek": "Текущая неделя",
"CurrentYear": "Текущий год",
@@ -225,6 +230,7 @@
"Name": "Имя",
"NbActions": "Количество действий",
"NbSearches": "Количество обращений к внутреннему поиску",
+ "NeedMoreHelp": "Нужна помощь?",
"Never": "Никогда",
"NewReportsWillBeProcessedByCron": "Если архивирование Piwik не провоцируется браузером, новые отчеты производятся с помощью crontab-задач.",
"NewUpdatePiwikX": "Новое обновление: Piwik %s",
@@ -259,8 +265,11 @@
"OperationIsNot": "Не",
"OperationLessThan": "Меньше чем",
"OperationNotEquals": "Не равно",
+ "OperationStartsWith": "Начинается с",
+ "OperationEndsWith": "Заканчивается с",
"OptionalSmtpPort": "Необязательно. По умолчанию используется 25 для незашифрованного и TLS SMTP соединения, и 465 для SSL SMTP.",
"Options": "Настройки",
+ "Or": "или",
"OrCancel": "или %1$s отмените %2$s",
"Others": "Другие",
"Outlink": "Исходящая ссылка",
@@ -289,6 +298,8 @@
"Price": "Цена",
"ProductConversionRate": "Конверсия для товара",
"ProductRevenue": "Прибыль с товара",
+ "Measurable": "Единица измерения",
+ "Measurables": "Единицы измерения",
"PurchasedProducts": "Купленные товары",
"Quantity": "Количество",
"RangeReports": "Другие периоды",
@@ -349,6 +360,9 @@
"TotalRatioTooltip": "Это %1$s из всех %2$s %3$s.",
"TotalRevenue": "Общая прибыль",
"TotalVisitsPageviewsActionsRevenue": "(Всего: %1$s визиты, %2$s просмотры страниц, %3$s действия, %4$s выручка)",
+ "TrackingScopeAction": "Действие",
+ "TrackingScopePage": "Страница",
+ "TrackingScopeVisit": "Посещение",
"TransitionsRowActionTooltip": "Посмотрите, что посетители делали до и после просмотра этой страницы",
"TransitionsRowActionTooltipTitle": "Открыть переходы",
"TranslatorName": "Ademaro, Joker Interactive, Важенин Илья (компания Codax), Nelde Maxim, Andrey, Vadim Nekhai, UptimePal",
@@ -383,6 +397,7 @@
"WarningFileIntegrityNoManifestDeployingFromGit": "Если вы делаете деплой Piwik из Git, это сообщение является нормальным.",
"WarningFileIntegrityNoMd5file": "Проверка целостности не может быть проведена из-за отсутствия функции md5_file().",
"WarningPasswordStored": "%1$sВнимание:%2$s Этот пароль будет сохранен в конфигурационном файле на сервере в незашифрованном виде, и будет виден любому, кто имеет доступ к файловой системе сервера.",
+ "WarningDebugOnDemandEnabled": "Режим слежения за %1$s включен. Из соображений безопасности он должен быть включен только в небольшой период времени. Чтобы отключить его, установите %2$s на %3$s в %4$s",
"Website": "Сайт",
"Weekly": "Еженедельно",
"WeeklyReport": "еженедельно",
diff --git a/lang/sq.json b/lang/sq.json
index 175075db1d..c071259db9 100644
--- a/lang/sq.json
+++ b/lang/sq.json
@@ -208,6 +208,7 @@
"NoDataForGraph": "Pa të dhëna për këtë grafik",
"NoDataForTagCloud": "Pa të dhëna për këtë re etiketash.",
"NotDefined": "%s pa u përkufizuar",
+ "NotRecommended": "jo e këshillueshme",
"NotValid": "%s nuk është e vlefshme",
"NumberOfVisits": "Numër vizitash",
"NVisits": "%s vizita",
@@ -273,6 +274,7 @@
"Total": "Gjithsej",
"TotalRevenue": "Të ardhura Gjithsej",
"TotalVisitsPageviewsActionsRevenue": "(Gjithsej: %1$s vizita, %2$s parje faqesh, %3$s veprime, %4$s të ardhura)",
+ "TrackingScopePage": "Faqe",
"TranslatorName": "Besnik Bleta",
"UniquePurchases": "Blerje Unike",
"Unknown": "I panjohur",
diff --git a/lang/sv.json b/lang/sv.json
index 9628ac2bf3..312eb24a1b 100644
--- a/lang/sv.json
+++ b/lang/sv.json
@@ -366,7 +366,7 @@
"TrackingScopeVisit": "Besök",
"TransitionsRowActionTooltip": "Se vad besökarna gjorde före och efter att ha tittat på den här sidan",
"TransitionsRowActionTooltipTitle": "Öppna övergångar",
- "TranslatorName": "Sökmotoroptimering.se, Kampanjjakt.se, Fredrik Astrom, Tony",
+ "TranslatorName": "Sökmotoroptimering.se, Kampanjjakt.se, Fredrik Astrom, Tony, <a href=\"http:\/\/www.kb.se\/\">National Library of Sweden<\/a>, <a href=\"https:\/\/www.facebook.com\/Rabattkod-147619931946607\">Yegane Shirazi<\/a>",
"UniquePurchases": "Unika beställningar",
"Unknown": "Okänt",
"Upload": "Ladda upp",
diff --git a/lang/tr.json b/lang/tr.json
index 219a429305..faa035cf35 100644
--- a/lang/tr.json
+++ b/lang/tr.json
@@ -285,7 +285,7 @@
"TrackingScopePage": "Sayfa",
"TrackingScopeVisit": "Ziyaret",
"TransitionsRowActionTooltipTitle": "Açık Geçişler",
- "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu, Uğur Eskici, Umut ARICAN",
+ "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu, Uğur Eskici, <a href=\"https:\/\/sourceforge.net\/u\/umutarcn\/profile\/\">Umut ARICAN<\/a>",
"UniquePurchases": "Tekil Satın Alımlar",
"Unknown": "Bilinmeyen",
"Upload": "Yükle",
diff --git a/libs/Zend/Validate/Hostname.php b/libs/Zend/Validate/Hostname.php
index cd5db5abcb..5dc6e818d7 100644
--- a/libs/Zend/Validate/Hostname.php
+++ b/libs/Zend/Validate/Hostname.php
@@ -201,16 +201,7 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract
'villas', 'vin', 'vip', 'virgin', 'vision', 'vista', 'vistaprint', 'viva', 'vlaanderen', 'vn', 'vodka', 'vote',
'voting', 'voto', 'voyage', 'vu', 'wales', 'walter', 'wang', 'wanggou', 'watch', 'watches', 'webcam', 'weber',
'website', 'wed', 'wedding', 'weir', 'wf', 'whoswho', 'wien', 'wiki', 'williamhill', 'win', 'windows', 'wine',
- 'wme', 'work', 'works', 'world', 'ws', 'wtc', 'wtf', 'xbox', 'xerox', 'xin', 'कॉम', '佛山', '慈善', '集团',
- '在线', '한국', '点看', 'คอม', 'ভারত', '八卦', 'موقع', '公益', '公司', '移动', '我爱你', 'москва', 'қаз', 'онлайн',
- 'сайт', 'срб', 'бел', 'קום', '时尚', '淡马锡', 'орг', 'नेट', '삼성', 'சிங்கப்பூர்', '商标', '商店', '商城', 'дети',
- 'мкд', 'ポイント', '新闻', '工行', 'كوم', '中文网', '中信', '中国', '中國', '娱乐', '谷歌', 'భారత్', 'ලංකා', 'ભારત',
- 'भारत', '网店', 'संगठन', '餐厅', '网络', 'ком', 'укр', '香港', '诺基亚', '飞利浦', '台湾', '台灣', '手表', '手机',
- 'мон', 'الجزائر', 'عمان', 'ارامكو', 'ایران', 'امارات', 'بازار', 'الاردن', 'موبايلي', 'بھارت', 'المغرب',
- 'السعودية', 'سودان', 'همراه', 'عراق', 'مليسيا', '닷컴', '政府', 'شبكة', 'بيتك', 'გე', '机构', '组织机构',
- '健康', 'ไทย', 'سورية', 'рус', 'рф', '珠宝', 'تونس', '大拿', 'みんな', 'グーグル', 'ελ', '世界', 'ਭਾਰਤ', '网址',
- '닷넷', 'コム', '游戏', 'vermögensberater', 'vermögensberatung', '企业', '信息', 'مصر', 'قطر', '广东', 'இலங்கை',
- 'இந்தியா', 'հայ', '新加坡', 'فلسطين', '政务', 'xperia', 'xxx', 'xyz', 'yachts', 'yamaxun', 'yandex', 'ye',
+ 'wme', 'work', 'works', 'world', 'ws', 'wtc', 'wtf', 'xbox', 'xerox', 'xin', 'xperia', 'xxx', 'xyz', 'yachts', 'yamaxun', 'yandex', 'ye',
'yodobashi', 'yoga', 'yokohama', 'youtube', 'yt', 'za', 'zara', 'zero', 'zip', 'zm', 'zone', 'zuerich', 'zw'
);
@@ -371,9 +362,134 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract
'ایران' => array(1 => '/^[\x{0621}-\x{0624}\x{0626}-\x{063A}\x{0641}\x{0642}\x{0644}-\x{0648}\x{067E}\x{0686}\x{0698}\x{06A9}\x{06AF}\x{06CC}\x{06F0}-\x{06F9}]{1,30}$/iu'),
'中国' => 'Hostname/Cn.php',
'公司' => 'Hostname/Cn.php',
- '网络' => 'Hostname/Cn.php'
+ '网络' => 'Hostname/Cn.php',
+ 'कॉम' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'セール' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '佛山' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '慈善' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '集团' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '在线' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '한국' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '点看' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'คอม' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ভারত' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '八卦' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'موقع' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '公益' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '公司' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '移动' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '我爱你' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'москва' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'қаз' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'онлайн' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'сайт' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '联通' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'срб' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'бел' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'קום' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '时尚' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '淡马锡' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ファッション' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'орг' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'नेट' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ストア' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '삼성' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'சிங்கப்பூர்' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '商标' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '商店' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '商城' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'дети' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'мкд' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ею' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ポイント' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '新闻' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '工行' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'كوم' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '中文网' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '中信' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '中国' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '中國' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '娱乐' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '谷歌' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'భారత్' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ලංකා' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '购物' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'クラウド' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ભારત' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'भारत' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '网店' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'संगठन' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '餐厅' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '网络' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ком' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'укр' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '香港' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '诺基亚' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '食品' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '飞利浦' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '台湾' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '台灣' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '手表' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '手机' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'мон' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'الجزائر' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'عمان' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ارامكو' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ایران' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'امارات' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'بازار' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'الاردن' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'موبايلي' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'بھارت' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'المغرب' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'السعودية' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'سودان' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'همراه' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'عراق' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'مليسيا' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '澳門' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '닷컴' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '政府' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'شبكة' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'بيتك' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'გე' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '机构' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '组织机构' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '健康' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ไทย' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'سورية' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'рус' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'рф' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '珠宝' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'تونس' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '大拿' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'みんな' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'グーグル' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ελ' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '世界' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '書籍' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'ਭਾਰਤ' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '网址' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '닷넷' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'コム' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '游戏' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'VERMöGENSBERATER' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'VERMöGENSBERATUNG' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '企业' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '信息' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '嘉里大酒店' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'مصر' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'قطر' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '广东' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'இலங்கை' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'இந்தியா' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'հայ' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '新加坡' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ 'فلسطين' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'),
+ '政务' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu')
);
+
protected $_idnLength = array(
'BIZ' => array(5 => 17, 11 => 15, 12 => 20),
'CN' => array(1 => 20),
@@ -744,7 +860,7 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract
// Check for URI Syntax (RFC3986)
if ($this->_options['allow'] & self::ALLOW_URI) {
- if (preg_match("/^([a-zA-Z0-9-._~!$&\'()*+,;=]|%[[:xdigit:]]{2}){1,254}$/i", $value)) {
+ if (preg_match("/^([a-zA-Z0-9-._~!$&'()*+,;=]|%[[:xdigit:]]{2}){1,254}$/i", $value)) {
return true;
} else {
$this->_error(self::INVALID_URI);
diff --git a/plugins/API/lang/fi.json b/plugins/API/lang/fi.json
index 22e886ce2c..27db066e77 100644
--- a/plugins/API/lang/fi.json
+++ b/plugins/API/lang/fi.json
@@ -4,8 +4,12 @@
"KeepTokenSecret": "Tämä token_auth on yhtä salainen kuin salasanasi, %1$s älä jaa sitä%2$s!",
"LoadedAPIs": "Ladattiin %s APIa",
"MoreInformation": "Lisätietoa Piwikin APIsta löytyy sivulta %1$sJohdatus Piwikin APIin%2$s ja %3$sPiwikin API%4$s.",
+ "PluginDescription": "Kaikki Piwikissä olevat tiedot on saatavilla yksinkertaisten APIen kautta. Tämä lisäosa on API verkkosivuille. Tämän lisäosan kautta voit ladata tiedot xml:nä, json:na, php:nä, csv:nä jne.",
+ "ReportingApiReference": "Raportointi-API:n referenssi",
"TopLinkTooltip": "Hae analytiikkatietoja automaattisesti yksinkertaisella API:lla JSON:lla, XML:llä jne.",
"UserAuthentication": "Käyttäjän autentikointi",
- "UsingTokenAuth": "Jos haluat %1$s hakea tietoja skriptillä, crontabista jne. %2$s sinun täytyy lisätä parametri %3$s API-kutsujen osoitteisiin, jos kutsu vaatii autentikoinnin."
+ "UsingTokenAuth": "Jos haluat %1$s hakea tietoja skriptillä, crontabista jne. %2$s sinun täytyy lisätä parametri %3$s API-kutsujen osoitteisiin, jos kutsu vaatii autentikoinnin.",
+ "Glossary": "Sanasto",
+ "LearnAboutCommonlyUsedTerms": "Opi lisää yleisistä termeistä Piwikissä: %1$s ja %2$s."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/ru.json b/plugins/API/lang/ru.json
index fd5378fa78..b1f33d003e 100644
--- a/plugins/API/lang/ru.json
+++ b/plugins/API/lang/ru.json
@@ -5,8 +5,11 @@
"LoadedAPIs": "%s API успешно загружен",
"MoreInformation": "Чтобы узнать больше информации о Piwik API, пожалуйста, посмотрите раздел %1$s Introduction to Piwik API %2$s в %3$s Piwik API Reference %4$s.",
"PluginDescription": "Все данные из Piwik доступны через простые API. Этот плагин является входной точкой для веб сервиса, который можно вызвать чтобы получить данные веб аналитики в xml, json, php, csv и др.",
+ "ReportingApiReference": "Сообщение справочной информации по API",
"TopLinkTooltip": "Получайте доступ к вашей веб-аналитике с помощью простого API и использования json, xml и др.",
"UserAuthentication": "Аутентификация пользователя",
- "UsingTokenAuth": "Если вам необходимо %1$s запрашивать данные в ваших скриптах, cron-задачах, или другого источника, то вам %2$s необходимо добавить следующий ключ %3$s к URL API-вызова, который требует аутентификации."
+ "UsingTokenAuth": "Если вам необходимо %1$s запрашивать данные в ваших скриптах, cron-задачах, или другого источника, то вам %2$s необходимо добавить следующий ключ %3$s к URL API-вызова, который требует аутентификации.",
+ "Glossary": "Глоссарий",
+ "LearnAboutCommonlyUsedTerms": "Изучите часто используемые термины, чтобы извлечь максимум пользы из Piwik Analytics: %1$s and %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Actions/lang/fi.json b/plugins/Actions/lang/fi.json
index cb7a0a31ca..26f23e5629 100644
--- a/plugins/Actions/lang/fi.json
+++ b/plugins/Actions/lang/fi.json
@@ -2,6 +2,7 @@
"Actions": {
"AvgGenerationTimeTooltip": "Keskiarvo %1$s osumasta %2$s %3$s - %4$s",
"ColumnClickedURL": "Klikattu URL",
+ "ColumnActionURL": "Toiminnon osoite",
"ColumnClicks": "Klikkaukset",
"ColumnClicksDocumentation": "Tämän linkin klikkausten määrä.",
"ColumnDownloadURL": "Ladattu URL",
@@ -39,6 +40,7 @@
"PagesReportDocumentation": "Tämä raportti sisältää tietoa sivuista, joilla on käyty. %s Taulukko on organisoitu hierarkisesti, URL:t näytetään puurakenteena.",
"PageTitlesReportDocumentation": "Tämä raportti sisältää tietoa käytyjen sivujen otsikoista. %1$s Sivun otsikko on HTML:n %2$s-tagi, jonka useimmat selaimet näyttävät ikkunan otsikossa.",
"PageUrls": "Sivujen URL:t",
+ "PluginDescription": "Raportoi sivukatselut ja sivujen otsikot. Mahdollistaa sivun sisäisen hakukoneen mittaamisen. Seuraa automaattisesti ulospäin suuntautuvia linkkejä ja latauksia.",
"SiteSearchCategories1": "Tämä raportti listaa kategoriat jotka kävijät valitsivat.",
"SiteSearchCategories2": "Esimerkiksi e-kauppojen sivuilla on tyypillisesti \"Kategoria\"-valitsin, jolla käyttäjät voivat rajoittaa hakutuloksia.",
"SiteSearchFollowingPagesDoc": "Kun kävijät hakevat sivuiltasi, he etsivät tiettyä sivua, sisältöä, tuotetta tai palvelua. Tämä raportti listaa sivut joita klikattiin useiten haun jälkeen.",
@@ -59,6 +61,7 @@
"WidgetPageUrlsFollowingSearch": "Verkkosivuhaun tuloksena löytyneet sivut",
"WidgetSearchCategories": "Haun kategoriat",
"WidgetSearchKeywords": "Sivuhaun hakusanat",
- "WidgetSearchNoResultKeywords": "Hakusanat ilman tuloksia"
+ "WidgetSearchNoResultKeywords": "Hakusanat ilman tuloksia",
+ "ActionType": "Toiminnon tyyppi"
}
} \ No newline at end of file
diff --git a/plugins/Actions/lang/ru.json b/plugins/Actions/lang/ru.json
index 04b3e49b5e..61d49c8364 100644
--- a/plugins/Actions/lang/ru.json
+++ b/plugins/Actions/lang/ru.json
@@ -2,6 +2,7 @@
"Actions": {
"AvgGenerationTimeTooltip": "В среднем по %1$s хит(ов) %2$s между %3$s и %4$s",
"ColumnClickedURL": "URL кликов",
+ "ColumnActionURL": "URL действия",
"ColumnClicks": "Клики",
"ColumnClicksDocumentation": "Количество кликов по этой ссылке.",
"ColumnDownloadURL": "Ссылка для загрузки",
@@ -60,6 +61,7 @@
"WidgetPageUrlsFollowingSearch": "Страницы, которые нашлись в поиске",
"WidgetSearchCategories": "Категории поиска",
"WidgetSearchKeywords": "Поисковые ключевые слова сайта",
- "WidgetSearchNoResultKeywords": "Поисковые ключевые слова без результатов"
+ "WidgetSearchNoResultKeywords": "Поисковые ключевые слова без результатов",
+ "ActionType": "Тип действия"
}
} \ No newline at end of file
diff --git a/plugins/Contents/lang/ru.json b/plugins/Contents/lang/ru.json
index b4d5864720..bddfd2799c 100644
--- a/plugins/Contents/lang/ru.json
+++ b/plugins/Contents/lang/ru.json
@@ -1,5 +1,6 @@
{
"Contents": {
+ "PluginDescription": "Отслеживание контента и баннеров позволяет вам измерять эффективность (просмотры, клики, CTR) любой части контента на ваших страницах (баннер-реклама, изображение, любой элемент).",
"Impressions": "Показы",
"Interactions": "Взаимодествия",
"Interaction": "Взаимодествие",
@@ -7,6 +8,9 @@
"ContentName": "Название публикации",
"ContentPiece": "Часть публикации",
"ContentTarget": "Цель публикации",
- "Contents": "Публикации"
+ "Contents": "Публикации",
+ "InteractionsMetricDocumentation": "Сколько раз с блоком контента происходило взаимодействие (например, 'клик' по баннеру или рекламе).",
+ "ImpressionsMetricDocumentation": "Сколько раз блок контента, такой как баннер или реклама, был показан на странице.",
+ "InteractionRateMetricDocumentation": "Соотношение представления контента и взаимодействий."
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/ru.json b/plugins/CoreAdminHome/lang/ru.json
index 92b61015dc..f1c55ce85b 100644
--- a/plugins/CoreAdminHome/lang/ru.json
+++ b/plugins/CoreAdminHome/lang/ru.json
@@ -1,8 +1,10 @@
{
"CoreAdminHome": {
+ "AddNewTrustedHost": "Добавить новый доверенный хост",
"Administration": "Администрирование",
"ArchivingSettings": "Настройка архивации",
"BrandingSettings": "Настройки логотипа",
+ "ReleaseChannel": "Канал выпуска",
"ClickHereToOptIn": "Кликните, чтобы вы учитывались в аналитике.",
"ClickHereToOptOut": "Кликните, чтобы отказаться от учета вас в аналитике.",
"CustomLogoFeedbackInfo": "Если вы используйете свой логотип, вам, возможно, также понадобится скрыть ссылку %1$s в верхнем меню. Для этого просто отключите плагин Feedback (обратная связь) на странице %2$sУправление плагинами%3$s.",
@@ -20,6 +22,9 @@
"InvalidPluginsWarning": "Следующие плагины не совместимы с %1$s и не могут быть загружены: %2$s.",
"InvalidPluginsYouCanUninstall": "Вы можете обновить или удалить эти плагины на странице %1$sУправления плагинами%2$s.",
"JavaScriptTracking": "JavaScript-отслеживание",
+ "JSTracking_CampaignKwdParam": "Параметр Ключевого слова кампании",
+ "JSTracking_CampaignNameParam": "Параметр Имени кампании",
+ "JSTracking_CodeNoteBeforeClosingHead": "Удостоверьтесь, что этот код находится на каждой странице вашего вебсайта. Мы рекомендуем вставлять его сразу перед закрытием тега %1$s.",
"JSTracking_CustomCampaignQueryParam": "Использовать пользовательские имена параметров в запросе для названия кампании и ключевого слова",
"JSTracking_CustomCampaignQueryParamDesc": "Примечание: %1$sPiwik автоматически определит параметры Google Analytics.%2$s",
"JSTracking_DisableCookies": "Отключить все отслеживания cookies",
@@ -44,6 +49,7 @@
"JSTrackingIntro5": "Если вы хотите больше, чем простое отслеживание страниц, пожалуйста, ознакомьтесь с %1$sPiwik Javascript Tracking documentation%2$s для просмотра всех функций. С помощью этих функций вы можете отслеживать цели, пользовательские переменные, заказы электронной коммерции, неоформленные заказы и многое другое.",
"LogoNotWriteableInstruction": "Чтобы использовать собственное лого вместо стандартного Piwik, откройте для записи эту папку: %1$s Piwik нужен доступ на запись к вашим лого, храняшимся в файлах %2$s.",
"FileUploadDisabled": "Загрузка файлов не включена в вашей конфигурации PHP. Для загрузки другого логотипа выставите %s в php.ini и перезапустите веб-сервер.",
+ "LogoUploadFailed": "Загруженный файл не может быть обработан. Пожалуйста, проверьте, что файл имеет нужный формат.",
"LogoUpload": "Выберите лого для загрузки",
"FaviconUpload": "Выбрать Favicon для загрузки",
"LogoUploadHelp": "Пожалуйста, закачивайте файлы в %1$s форматах, минимальное ограничение по высоте – %2$s пикселей.",
@@ -53,6 +59,7 @@
"MenuDevelopment": "Разработка",
"OptOutComplete": "Исключение из политики конфиденциальности завершено; ваши посещения на данный сайт не будут учитываться системой веб аналитики. Мы уважаем ваш выбор.",
"OptOutCompleteBis": "Заметьте, что если вы очистите cookies браузера, то, скорее всего, удалится и исключительный cookie, или если вы поменяете компьютер или браузер, то необходимо будет пройти процедуру исключения снова.",
+ "OptOutDntFound": "Ваши действия не отслеживались, так как ваш браузер сообщает, что вы не хотите этого. Это настройка вашего браузера, поэтому у вас не будет возможности включить ее до тех пор, пока вы не отключите опцию \"Не отслеживать\".",
"OptOutExplanation": "Piwik – за сохранение личных данных в сети. Поэтому данная система может предложить вашим пользователям выбор исключения из политики конфиденциальности (отказ от дальнейшего сбора статистики о пользователе). Вы можете вставить следующий HTML-код на одну из ваших страниц сайта, например на страницу о гарантиях конфиденциальности.",
"OptOutExplanationBis": "Тег покаже \"iframe\", в якому міститиметься посилання для ваших відвідувачів, клацнувши на яке, вони зможуть відмовитися від потрапляння в веб-аналітику через отримання відповідного файлу cookie. %1$s Клацніть тут%2$s, щоб переглянути вміст що буде показано в \"iframe\".",
"OptOutForYourVisitors": "Исключение из политики конфиденциальности Piwik для посетителей",
@@ -67,6 +74,7 @@
"SendPluginUpdateCommunication": "Отправить email с уведомлением, когда для плагина будет доступна новая версия",
"SendPluginUpdateCommunicationHelp": "Письмо будет отправлено суперпользователю когда будет доступна новая версия плагина.",
"StableReleases": "Если Piwik является важной частью вашего бизнеса, мы рекомендуем использовать последнюю стабильную версию. Если вы используете последнюю бета версию, и вы нашли ошибку или есть предложение, пожалуйста, %1$sперейдите по ссылке%2$s.",
+ "LtsReleases": "Версии LTS (Долгосрочная поддержка) получают только исправления, касающиеся безопасности и ошибок.",
"SystemPluginSettings": "Системные настройки плагинов",
"TrackAGoal": "Отслеживать цель",
"TrackingCode": "Код отслеживания",
@@ -79,6 +87,8 @@
"YouAreOptedIn": "Статистика о вас собирается.",
"YouAreOptedOut": "Вы отказались от сбора статистических данных.",
"YouMayOptOut": "Вы можете отказаться от уникального cookie, привязанному к вашему браузеру, и идентифицирующего вас в системе аналитики данного сайта, тем самым отказавшись от любого сбора сведений о вас и их анализа на данном сайте.",
- "YouMayOptOutBis": "Снимите галочку и получите исключающий cookie для отказа сбора данных."
+ "YouMayOptOutBis": "Снимите галочку и получите исключающий cookie для отказа сбора данных.",
+ "ProtocolNotDetectedCorrectly": "В данный момент вы просматриваете Piwik через безопасное соединение SSL (используя https), но Piwic смог обнаружить только небезопасное соединение на сервере.",
+ "ProtocolNotDetectedCorrectlySolution": "Чтобы удостовериться, что Piwic безопасно запрашивает и обрабатывает ваш контент через HTTPS, вы можете отредактировать свой файл %1$s или настроить ваши настройки прокси, или вы можете добавить линию %2$s под разделом %3$s. %4$sУзнать больше%5$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/fi.json b/plugins/CoreHome/lang/fi.json
index 382429907e..401eb9fdfc 100644
--- a/plugins/CoreHome/lang/fi.json
+++ b/plugins/CoreHome/lang/fi.json
@@ -3,6 +3,7 @@
"CategoryNoData": "Tässä kategoriassa ei ole tietoja. Kokeile linkkiä \"Kaikki esiintymät\".",
"CheckForUpdates": "Tarkista päivitykset",
"CheckPiwikOut": "Tutustu Piwikiin!",
+ "ClickToEditX": "Muokkaa %s klikkaamalla",
"CloseWidgetDirections": "Voit sulkea tämän widget-käyttöliittymän klikkaamalla \"X\"-ikonia käyttöliittymän yläreunassa.",
"DataForThisReportHasBeenPurged": "Tämän raportin data on yli %s kuukautta vanhaa ja on poistettu.",
"DataTableExcludeAggregateRows": "Yhdistetyt rivit ovat näkyvillä %s Piilota",
@@ -23,8 +24,10 @@
"InjectedHostSuperUserWarning": "Piwik saattaa olla väärin asennettu (esim. jos Piwik on hiljattain siirretty uuteen serveriin tai URL:ään). Voit joko %1$sklikata tästä ja lisätä %2$s ja lisätä päteväksi Piwik isäntänimeksi (jos luotat siihen)%3$s, tai %4$sklikata tästä ja %5$s siirtyäksesi Piwikiin turvallisesti%6$s.",
"InjectedHostWarningIntro": "Käytät Piwikiä osoitteesta %1$s, mutta Piwik on konfiguroitu ajettavaksi tässä osoitteessa: %2$s.",
"JavascriptDisabled": "JavaScriptin täytyy olla käytössä normaalinäkymässä.<br \/>JavaScript ei ole päällä tai ei ole tuettu selaimessasi.<br \/>Ota JavaScript käyttöön selaimesi asetuksista ja %1$syritä uudelleen%2$s.<br\/>",
+ "MainNavigation": "Päänavigointi",
"MakeADifference": "Ole mukana vaikuttamassa: %1$sTee lahjoitus%2$s Piwik 2.0 version rahoittamiseksi!",
"MakeOneTimeDonation": "Lahjoita kertasumma.",
+ "Menu": "Valikko",
"NoPrivilegesAskPiwikAdmin": "Olet kirjautuneena sisään käyttäjänä '%1$s', mutta sinulla ei ole mitään oikeuksia Piwikissä. %2$sPyydä Piwikin ylläpitäjää (klikkaa avataksesi sähköpostin)%3$s antamaan katseluoikeudet verkkosivuun.",
"OnlyForSuperUserAccess": "Tämä widget näkyy ainoastaan käyttäjille, joilla on Superkäyttäjän oikeudet.",
"PageOf": "%1$s of %2$s",
@@ -35,6 +38,7 @@
"SharePiwikShort": "Piwik! Ilmainen ja avoimen lähdekoodin verkkoanalyysi. Hallitse omaa dataasi.",
"ShareThis": "Jaa tämä",
"ShowJSCode": "Näytä lisättävä Javascript-koodi",
+ "SkipToContent": "Siirry sisältöön",
"SubscribeAndBecomePiwikSupporter": "Jatka turvalliselle luottokorttimaksusivulle (Paypal) ryhtyäksesi Piwikin tukijaksi!",
"SupportPiwik": "Tue Piwikiä!",
"TableNoData": "Ei tietoja tässä taulukossa",
@@ -45,6 +49,11 @@
"YouAreUsingTheLatestVersion": "Käytössäsi on uusin versio Piwikistä!",
"ClickRowToExpandOrContract": "Klikkaa tätä riviä avataksesi tai sulkeaksesi alataulukon.",
"UndoPivotBySubtable": "Tämä raportti on käännetty %s:llä. Kumoa kääntö",
- "PivotBySubtable": "Tämä raportti ei ole käännetty %1$s:n mukaan. Käännetty %2$s:llä."
+ "PivotBySubtable": "Tämä raportti ei ole käännetty %1$s:n mukaan. Käännetty %2$s:llä.",
+ "QuickAccessTitle": "Hae %s:llä. Käytä nuolia navigointiin. Oikotie: haku aukeaa painamalla f-näppäintä.",
+ "MenuEntries": "Valikon sisältö",
+ "Segments": "Segmentit",
+ "AdblockIsMaybeUsed": "Jos käytät mainostenestoa (ad blocker), poista se käytöstä tällä sivulla, jotta Piwik toimii ongelmitta.",
+ "ChangeCurrentWebsite": "Valitse verkkosivu, nyt valittuna %s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/ko.json b/plugins/CoreHome/lang/ko.json
index 53f815c4cc..1288435bf2 100644
--- a/plugins/CoreHome/lang/ko.json
+++ b/plugins/CoreHome/lang/ko.json
@@ -49,6 +49,7 @@
"ClickRowToExpandOrContract": "하위 테이블의 행을 확장하거나 축소하기 위해 클릭하세요.",
"UndoPivotBySubtable": "이 보고서는 %s Undo pivot에 의해 결정되었습니다.",
"PivotBySubtable": "이 보고서는 %1$s Pivot이 %2$s에 의해 결정되지 않았습니다.",
+ "QuickAccessTitle": "%s 검색. 검색 결과를 확인할 때 방향키를 사용하세요. 단축키: 'f'는 검색",
"MenuEntries": "메뉴",
"Segments": "세그멘트",
"AdblockIsMaybeUsed": "Piwik가 문제 없이 동작하기 위해서 광고 차단기능이 있는 플러그인을 꺼주시길 바랍니다.",
diff --git a/plugins/CoreUpdater/lang/fi.json b/plugins/CoreUpdater/lang/fi.json
index 87b362e1e2..28915e6f2f 100644
--- a/plugins/CoreUpdater/lang/fi.json
+++ b/plugins/CoreUpdater/lang/fi.json
@@ -25,6 +25,11 @@
"HighTrafficPiwikServerEnableMaintenance": "Jos Piwik-palvelimellasi on suuria määriä liikennettä, suosittelemme %1$spoistamaan käyttäjäseurannan hetkellisesti käytöstä ja laittamaan Piwikin käyttäjäliittymän huoltotilaan%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Huom. Osa lisäosista ei ole yhteensopivia Piwikin kanssa: %s. Nämä poistetaan käytöstä kun päivität:",
"InstallingTheLatestVersion": "Asennetaan uusinta versiota",
+ "LatestBetaRelease": "Viimeisin beta-julkaisu",
+ "LatestStableRelease": "Viimeisin vakaa julkaisu",
+ "Latest2XStableRelease": "Viimeisin vakaa 2.X",
+ "Latest2XBetaRelease": "Viimeisin beta 2.X",
+ "LtsSupportVersion": "Pitkään tuettu versio",
"MajorUpdateWarning1": "Tämä on iso päivitys! Päivityksessä kestää kauemmin kuin normaalisti.",
"MajorUpdateWarning2": "Seuraavat ohjeet ovat erityisen tärkeitä suurille asennuksille.",
"NoteForLargePiwikInstances": "Tärkeä tiedotus suurille Piwikin asennuksille",
@@ -48,6 +53,8 @@
"UpdateHasBeenCancelledExplanation": "Piwikin yhden klikkauksen päivitys on peruutettu. Jos et voi korjata alla olevaa virhettä, on suositeltavaa päivittää Piwik manuaalisesti. %1$s Ole hyvä ja tarkista %2$sPäivitysdokumentaatio%3$s",
"UpdateTitle": "Piwik › Päivitys",
"UpdateSuccessTitle": "Piwik on päivitetty onnistuneesti!",
+ "UpdateErrorTitle": "Päivitysvirhe",
+ "Updating": "Päivitetään",
"UpgradeComplete": "Päivitys valmis!",
"UpgradePiwik": "Päivitä Piwik",
"VerifyingUnpackedFiles": "Tarkistetaan purettuja tiedostoja",
@@ -56,6 +63,7 @@
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Voit päivittää versioon %s automaattisesti tai ladata paketin ja asentaa sen manuaalisesti:",
"YouCouldManuallyExecuteSqlQueries": "Jos et voi käyttää komentorivin päivitysohjelmaa ja Piwikin päivitys epäonnistuu (aikakatkaisu tai jokin muu virhe), voit ajaa SQL-kyselyt itse.",
"YouMustDownloadPackageOrFixPermissions": "Piwik ei voi ylikirjoittaa nykyistä asennusta. Voit joko korjata hakemistojen\/tiedostojen oikeudet tai ladata paketin ja asentaa version %s itse:",
- "YourDatabaseIsOutOfDate": "Piwikin tietokanta on vanhentunut ja se tulee päivittää ennen jatkamista."
+ "YourDatabaseIsOutOfDate": "Piwikin tietokanta on vanhentunut ja se tulee päivittää ennen jatkamista.",
+ "ViewVersionChangelog": "katso muutostiedot tälle versiolle:"
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/fi.json b/plugins/CustomVariables/lang/fi.json
index 51c8ee0f1f..0dfd138a41 100644
--- a/plugins/CustomVariables/lang/fi.json
+++ b/plugins/CustomVariables/lang/fi.json
@@ -5,6 +5,10 @@
"CustomVariables": "Kustomoidut muuttujat",
"CustomVariablesReportDocumentation": "Tämä raportti sisältää tietoa kustomoiduista muuttujastasi. Voit tarkastella eri arvojen määrää klikkaamalla muuttujan nimeä. %1$s Saat lisätietoa kustomoiduista muuttujista %2$sCustom Variables%3$s-sivulta piwik.orgista (englanninkielinen)",
"ScopePage": "alueena sivu",
- "ScopeVisit": "alueena käynti"
+ "ScopeVisit": "alueena käynti",
+ "ManageDescription": "Tämä on yleiskatsaus kaikista kustomoiduista muuttujista ja niiden käytöstä verkkosivulla '%s'. Nimet on järjestetty käyttömäärien mukaan.",
+ "Index": "Indeksi",
+ "Usages": "Käytöt",
+ "Unused": "Käyttämätön"
}
} \ No newline at end of file
diff --git a/plugins/DBStats/lang/fi.json b/plugins/DBStats/lang/fi.json
index edb42aeadd..9232287c22 100644
--- a/plugins/DBStats/lang/fi.json
+++ b/plugins/DBStats/lang/fi.json
@@ -10,6 +10,7 @@
"MetricDataByYear": "Metriikat vuosittain",
"MetricTables": "Metriikkataulut",
"OtherTables": "Muut taulut",
+ "PluginDescription": "Tarjoaa tietoa MySQL-tietokannan käytöstä. Saatavilla pääkäyttäjille Diagnostiikka-sivun alla.",
"ReportDataByYear": "Raporttitaulut vuosittain",
"ReportTables": "Raporttitaulut",
"RowCount": "Rivien määrä",
diff --git a/plugins/Dashboard/lang/fi.json b/plugins/Dashboard/lang/fi.json
index c888edd724..14a6dd65b1 100644
--- a/plugins/Dashboard/lang/fi.json
+++ b/plugins/Dashboard/lang/fi.json
@@ -18,8 +18,10 @@
"Maximise": "Suurenna",
"Minimise": "Pienennä",
"NotUndo": "Et voi peruuttaa tätä operaatiota.",
+ "PluginDescription": "Web-analytiikkojen työpöytä. Muokkaa työpöytääsi lisäämällä uusia osia, siirtämällä osia eri kohtiin, ja vaihtamalla työpöydän sisältöä. Jokainen käyttäjä voi hallita omaa työpöytäänsä.",
"RemoveDashboard": "Poista näkymä",
"RemoveDashboardConfirm": "Haluatko varmasti poistaa työpöydän \"%s\"?",
+ "RemoveDefaultDashboardNotPossible": "Oletustyöpöytää ei voi poistaa",
"RenameDashboard": "Uudelleenimeä näkymä",
"ResetDashboard": "Nollaa työpöytä",
"ResetDashboardConfirm": "Haluatko varmasti nollata työpöydän asettelun takaisin oletusasetuksiin?",
diff --git a/plugins/Dashboard/lang/lt.json b/plugins/Dashboard/lang/lt.json
index dc83d12c30..b7ac2a7f30 100644
--- a/plugins/Dashboard/lang/lt.json
+++ b/plugins/Dashboard/lang/lt.json
@@ -9,6 +9,7 @@
"DashboardCopied": "Esamas skydelis sėkmingai nukopijuotas pasirinktam naudotojui.",
"DashboardEmptyNotification": "Jūsų Skydelyje nėra jokių valdiklių. Pradėkite, pridėdami kelis valdiklius arba, tiesiog, atstatykite skydelį į numatytąjį valdiklių pasirinkimą.",
"DashboardName": "Skydelio pavadinimas:",
+ "DashboardOf": "%s skydelis",
"DefaultDashboard": "Numatytasis skydelis - Naudojamas numatytųjų valdiklių pasirinkimo ir stulpelių išdėstymas",
"DeleteWidgetConfirm": "Ar tikrai norite pašalinti šį valdiklį iš skydelio?",
"EmptyDashboard": "Tuščias skydelis - Parinkite savo mėgiamus valdiklius",
@@ -20,6 +21,7 @@
"PluginDescription": "Jūsų Saityno Analitikos Skydelis. Tinkinkite savo skydelį, pridėdami naujų valdiklių, vilkdami juos iš vienos vietos į kitą ir keisdami skydelio stulpelių išdėstymą. Kiekvienas naudotojas gali tvarkyti savo asmeninį pasirinktiną skydelį.",
"RemoveDashboard": "Šalinti skydelį",
"RemoveDashboardConfirm": "Ar tikrai norite pašalinti skydelį \"%s\"?",
+ "RemoveDefaultDashboardNotPossible": "Numatytasis skydelis negali būti pašalintas",
"RenameDashboard": "Pervadinti skydelį",
"ResetDashboard": "Atstatyti skydelį",
"ResetDashboardConfirm": "Ar tikrai norite atstatyti savo skydelio išdėstymą į numatytąjį Valdiklių pasirinkimą?",
diff --git a/plugins/DevicePlugins/lang/fi.json b/plugins/DevicePlugins/lang/fi.json
index 8011625ef1..de4ac1ac6b 100644
--- a/plugins/DevicePlugins/lang/fi.json
+++ b/plugins/DevicePlugins/lang/fi.json
@@ -2,6 +2,8 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s ilman liitännäisiä aktivoitu",
"BrowserWithPluginsEnabled": "%1$s liitännäisillä %2$s on aktivoitu",
+ "PluginDescription": "Lista lisäosista joita kävijöiden selaimet tukevat.",
+ "PluginDetectionDoesNotWorkInIE": "Huom. Lisäosien tunnistus ei toimi Internet Explorerissa ennen versiota 11. Tässä raportissa on mukana vain uudet IE:t ja muut selaimet.",
"WidgetPlugins": "Lista lisäosista",
"WidgetPluginsDocumentation": "Tämä raportti näyttää, mitä selainlisäosia vierailijoillasi oli käytössä. Tästä tiedosta voi olla hyötyä, kun joudut valitsemaan, miten tietoa esitetään ja välitetään vierailijoille."
}
diff --git a/plugins/Diagnostics/lang/fi.json b/plugins/Diagnostics/lang/fi.json
new file mode 100644
index 0000000000..28051d0630
--- /dev/null
+++ b/plugins/Diagnostics/lang/fi.json
@@ -0,0 +1,6 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "Asetustiedosto",
+ "Sections": "Osiot"
+ }
+} \ No newline at end of file
diff --git a/plugins/Ecommerce/lang/fi.json b/plugins/Ecommerce/lang/fi.json
new file mode 100644
index 0000000000..6942b9eb21
--- /dev/null
+++ b/plugins/Ecommerce/lang/fi.json
@@ -0,0 +1,8 @@
+{
+ "Ecommerce": {
+ "PluginDescription": "E-kauppa mahdollistaa myyntiin liittyvien toimintojen seuraamisen: tuotteiden lisäämisen ostoskoriin ja ostosten tekemisen. Myös tuotteiden ja tuotekategorioiden katselu, ja hylätyt ostoskorit seurataan.",
+ "Sales": "Myynnit",
+ "SalesBy": "Myynnit %s:n mukaan",
+ "SalesAdjective": "Myynnit %s"
+ }
+} \ No newline at end of file
diff --git a/plugins/Feedback/lang/fi.json b/plugins/Feedback/lang/fi.json
index 6ab6ec2a91..f665cbf2da 100644
--- a/plugins/Feedback/lang/fi.json
+++ b/plugins/Feedback/lang/fi.json
@@ -10,6 +10,12 @@
"RateFeatureTitle": "Pidätkö ominaisuudesta '%s'? Jätä arvostelu ja kommentti",
"SendFeedback": "Lähetä palaute",
"ThankYou": "Kiitos että autat parantamaan Piwikiä!",
- "TopLinkTooltip": "Kerro meille mitä ajattelet, tai osta tukipalveluita (englanniksi)."
+ "TopLinkTooltip": "Kerro meille mitä ajattelet, tai osta tukipalveluita (englanniksi).",
+ "CommunityHelp": "Yhteisön apu",
+ "ProfessionalHelp": "Ammattilaisapu",
+ "PiwikProReviewPiwikSetup": "Piwik-asennuksesi arviointi",
+ "PiwikProPhoneEmailSupport": "Puhelin- ja sähköpostituki",
+ "PiwikProPremiumFeatures": "Premium-ominaisuudet",
+ "ContactUs": "Ota yhteyttä"
}
} \ No newline at end of file
diff --git a/plugins/Goals/API.php b/plugins/Goals/API.php
index 113bea5ec9..9b24a59c76 100644
--- a/plugins/Goals/API.php
+++ b/plugins/Goals/API.php
@@ -183,6 +183,7 @@ class API extends \Piwik\Plugin\API
if ($patternType == 'exact'
&& substr($pattern, 0, 4) != 'http'
&& substr($matchAttribute, 0, 6) != 'event_'
+ && $matchAttribute != 'title'
) {
throw new Exception(Piwik::translate('Goals_ExceptionInvalidMatchingString', array("http:// or https://", "http://www.yourwebsite.com/newsletter/subscribed.html")));
}
diff --git a/plugins/Goals/lang/el.json b/plugins/Goals/lang/el.json
index 612438258b..b2cce6c204 100644
--- a/plugins/Goals/lang/el.json
+++ b/plugins/Goals/lang/el.json
@@ -66,7 +66,7 @@
"GoalsOverview": "Επισκόπηση στόχων",
"GoalsOverviewDocumentation": "Αυτό είναι μια επισκόπηση των μετατροπών των στόχων σας. Αρχικά, το διάγραμμα δείχνει το άθροισμα όλων των μετατροπών. %s Κάτω από το διάγραμμα, μπορείτε να αναφορές μετατροπής για κάθε έναν από τους στόχους. Τα μικροδιαγράμματα μπορούν να μεγεθυνθούν πατώντας επάνω τους.",
"GoalX": "Στόχος %s",
- "HelpOneConversionPerVisit": "Αν μια Σελίδα ταιριάζει, αυτός ο Στόχος ανανεώνεται ή προβάλεται περισσόερες φορές ανά Επίσκεψη και ο Στόχος θα καταγράφετε μόνο την πρώτη φορά που φορτώθηκε η σελίδα κατά την επίσκεψη.",
+ "HelpOneConversionPerVisit": "Αν μια Σελίδα ταιριάζει, αυτός ο Στόχος ανανεώνεται ή προβάλλεται περισσότερες φορές ανά Επίσκεψη και ο Στόχος θα καταγράφεται μόνο την πρώτη φορά που φορτώθηκε η σελίδα κατά την επίσκεψη.",
"IsExactly": "είναι ακριβώς %s",
"LearnMoreAboutGoalTrackingDocumentation": "Δείτε περισσότερα για την %1$sΠαρακολούθηση των Στόχων στο Piwik%2$s στην τεκμηρίωση για το χρήστη.",
"LeftInCart": "%s απομένουν στο καλάθι",
diff --git a/plugins/Goals/lang/lt.json b/plugins/Goals/lang/lt.json
index 10bcee0e28..c32adb2a5b 100644
--- a/plugins/Goals/lang/lt.json
+++ b/plugins/Goals/lang/lt.json
@@ -6,7 +6,7 @@
"BestCountries": "Jūsų geriausios konversijos šalys:",
"BestKeywords": "Jū9sų geriausi konversijos raktažodžiai:",
"BestReferrers": "Jūsų geriausios konversijos svetainės:",
- "CaseSensitive": "Linksnių atitikimas",
+ "CaseSensitive": "Raidžių dydžio sutapimas",
"ClickOutlink": "Paspauskite ant nuorodos į išorinį puslapį",
"ColumnConversions": "Konversijos",
"Contains": "turi %s",
diff --git a/plugins/Goals/lang/nb.json b/plugins/Goals/lang/nb.json
index 415c58bff0..62627850be 100644
--- a/plugins/Goals/lang/nb.json
+++ b/plugins/Goals/lang/nb.json
@@ -16,6 +16,7 @@
"ColumnConversions": "Konvertering",
"ColumnConversionsDocumentation": "Antall konverteringer for %s.",
"Contains": "inneholder %s",
+ "ConversionRate": "%s konverteringsrate",
"Conversions": "%s konverteringer",
"DaysToConv": "Dager til konvertering",
"Details": "Måldetaljer",
diff --git a/plugins/Goals/tests/Integration/APITest.php b/plugins/Goals/tests/Integration/APITest.php
index 913bebf0a6..7dcb79eef5 100644
--- a/plugins/Goals/tests/Integration/APITest.php
+++ b/plugins/Goals/tests/Integration/APITest.php
@@ -62,6 +62,13 @@ class APITest extends IntegrationTestCase
$this->assertGoal($idGoal, 'MyName', 'url', 'http://www.test.de', 'exact', 1, 50, 1);
}
+ public function test_addGoal_ShouldSucceed_IfExactPageTitle()
+ {
+ $idGoal = $this->api->addGoal($this->idSite, 'MyName', 'title', 'normal title', 'exact', true, 50, true);
+
+ $this->assertGoal($idGoal, 'MyName', 'title', 'normal title', 'exact', 1, 50, 1);
+ }
+
/**
* @expectedException \Exception
* @expectedExceptionMessage Goals_ExceptionInvalidMatchingString
diff --git a/plugins/ImageGraph/lang/fi.json b/plugins/ImageGraph/lang/fi.json
index 5dac1b5f20..06af13adfe 100644
--- a/plugins/ImageGraph/lang/fi.json
+++ b/plugins/ImageGraph/lang/fi.json
@@ -1,5 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Kolumnia '%1$s' ei löydetty tässä raportissa. Kokeile mitä tahansa %2$s"
+ "ColumnOrdinateMissing": "Kolumnia '%1$s' ei löydetty tässä raportissa. Kokeile mitä tahansa %2$s",
+ "PluginDescription": "Luo kauniita staattisia PNG-kuvaajia mistä tahansa raportista."
}
} \ No newline at end of file
diff --git a/plugins/Installation/ServerFilesGenerator.php b/plugins/Installation/ServerFilesGenerator.php
index 6009854544..927f403ccb 100644
--- a/plugins/Installation/ServerFilesGenerator.php
+++ b/plugins/Installation/ServerFilesGenerator.php
@@ -37,7 +37,7 @@ class ServerFilesGenerator
"</IfModule>\n\n" .
"# Allow to serve static files which are safe\n" .
- "<Files ~ \"\\.(gif|ico|jpg|png|svg|js|css|htm|html|swf|mp3|mp4|wav|ogg|avi|ttf)$\">\n" .
+ "<Files ~ \"\\.(gif|ico|jpg|png|svg|js|css|htm|html|swf|mp3|mp4|wav|ogg|avi|ttf|eot)$\">\n" .
$allow . "\n" .
"</Files>\n";
diff --git a/plugins/Installation/lang/fi.json b/plugins/Installation/lang/fi.json
index 0a3a2579dd..25a3b390af 100644
--- a/plugins/Installation/lang/fi.json
+++ b/plugins/Installation/lang/fi.json
@@ -15,6 +15,7 @@
"DatabaseSetupLogin": "käyttäjätunnus",
"DatabaseSetupServer": "tietokantapalvelin",
"DatabaseSetupTablePrefix": "taulujen etuliite",
+ "Email": "Sähköposti",
"Extension": "lisäosa",
"Filesystem": "Tiedostojärjestelmä",
"GetInvolved": "Jos pidät näkemästäsi, myös sinä voit %1$sosallistua%2$s.",
@@ -24,6 +25,7 @@
"InstallationStatus": "Asennuksen tila",
"InsufficientPrivilegesHelp": "Voit lisätä nämä oikeudet esim. phpMyAdminilla tai ajamalla oikeat SQL-kyselyt. Jos et tiedä miten tehdä nämä asiat, pyydä järjestelmän ylläpitäjää säätämään oikeudet oikein.",
"InsufficientPrivilegesMain": "Joko tietokantaa ei ole olemassa (eikä sitä voitu luoda), tai tällä käyttäjällä ei ole tarvittavia oikeuksia. Tietokannan käyttäjällä täytyy olla seuraavat oikeudet: %s",
+ "InvalidStateError": "Virhe: Piwik on jo asennettu. %1$s Mene takaisin %2$s Piwikiin%3$s.",
"JsTagArchivingHelp1": "Kohtalaisen ja korkean liikenteen verkkosivuille on tiettyjä optimointeja, jotka tulisi tehdä, jotta Piwik voi toimia nopeammin (kuten %1$sautomaattisen arkistoinnin asettaminen%2$s).",
"JSTracking_EndNote": "Huom: Asennuksen jälkeen voit luoda omia seurantakoodeja ylläpitosivun osastolla %1$sSeurantakoodi%2$s",
"JSTracking_Intro": "Voidaksesi seurata liikennettä Piwikin avulla, sinun tulee lisätä ekstrakoodi jokaiselle verkkosivullesi.",
@@ -36,9 +38,14 @@
"NfsFilesystemWarningSuffixInstall": "Tiedostopohjaisten sessioiden käyttäminen NFS:ssä on todella hidasta, joten Piwik käyttää tietokantasessioita. Jos sinulla on monia samanaikaisia ohjauspaneelin käyttäjiä, sinun tarvitsee ehkä lisätä tietokantaserverin käyttäjäyhteyksien maksimimäärää.",
"NoConfigFound": "Piwikin asetustiedostoa ei löydy ja yrität siirtyä Piwikin sivuille.<br \/><b>  » Voit <a href='index.php'>asentaa Piwikin nyt<\/a><\/b><br \/><small>Jos asensit Piwikin aikaisemmin ja tietokannassa on jo tietoja, älä murehdi, tietoja ei hävitetä.<\/small>",
"Optional": "Optionaalinen",
+ "Password": "Salasana",
"PasswordDoNotMatch": "salasanat eivät täsmää",
+ "PasswordRepeat": "Salasana (uudelleen)",
"PercentDone": "%s %% valmiina",
+ "PiwikProAdTitle": "Edistynyt analytiikka ja palvelut",
"PleaseFixTheFollowingErrors": "Korjaa seuraavat virheet",
+ "DefaultSettings": "Oletusasetukset",
+ "DefaultSettingsHelp": "Piwikissä on oletusasetukset. Voit muuttaa asetuksia nyt tai myöhemmin hallintasivulta.",
"Requirements": "Piwikin vaatimukset",
"RestartWebServer": "Käynnistä web-palvelimesi uudelleen näiden muutosten jälkeen.",
"ReusingTables": "Taulukoiden uudelleenkäyttö",
@@ -46,15 +53,19 @@
"SeeBelowForMoreInfo": "Katso alempaa lisätietoja.",
"SetupWebsite": "Lisää verkkosivu",
"SetupWebsiteError": "Virhe verkkosivun lisäämisessä",
+ "SetupWebSiteName": "Verkkosivun nimi",
"SetupWebsiteSetupSuccess": "Sivu %s luotiin onnistuneesti!",
+ "SetupWebSiteURL": "Verkkosivun osoite",
"SiteSetup": "Luo ensimmäinen seurattava verkkosivu:",
"SiteSetupFootnote": "Huom: kun asennus on valmis, voit lisätä lisää verkkosivuja!",
"SuperUser": "Pääkäyttäjä",
+ "SuperUserLogin": "Pääkäyttäjän kirjautuminen",
"SuperUserSetupError": "Superkäyttäjää lisätessä tapahtui virhe.",
"SuperUserSetupSuccess": "Pääkäyttäjän luominen onnistui!",
"SystemCheck": "Järjestelmän asetukset",
"SystemCheckAutoUpdateHelp": "Huomioi: Piwikin yhden klikkauksen päivitys vaatii kirjoitusoikeudet Piwikin kansioon ja kansion kaikkeen sisältöön.",
"SystemCheckCreateFunctionHelp": "Piwik käyttää anonyymejä funktioita takaisinkutsuihin.",
+ "SystemCheckDatabaseExtensions": "MySQL-lisäosat",
"SystemCheckDatabaseHelp": "Piwik vaatii joko mysqli-lisäosan tai sekä PDO- että pdo_mysql-lisäosat..",
"SystemCheckDebugBacktraceHelp": "View::factory ei voi luoda näkymää kutsuvalle moduulille.",
"SystemCheckError": "Tapahtui virhe - täytyy korjata ennen jatkamista",
@@ -62,6 +73,7 @@
"SystemCheckExtensions": "Muut vaaditut lisäosat",
"SystemCheckFileIntegrity": "Tiedoston eheys",
"SystemCheckFunctions": "Vaaditut funktiot",
+ "SystemCheckFunctionHelp": "Sinun täytyy ottaa käyttöön tämä sisäänrakennettu funktio.",
"SystemCheckGDFreeType": "GD > 2.x + Freetype (grafiikka)",
"SystemCheckGDHelp": "Pienet graafit eivät toimi.",
"SystemCheckGlobHelp": "Tämä sisäänrakennettu toiminnallisuus on poistettu käytöstä palvelimellasi. Piwik yrittää emuloida toimintoa, mutta saattaa törmätä uusiin turvallisuusrajoituksiin. Suorituskyky heikkenee.",
@@ -99,6 +111,7 @@
"SystemCheckZlibHelp": "PHP pitää olla asennettuna zlib-lisäosan kanssa, --with-zlib.",
"SystemCheckCronArchiveProcess": "Arkistointityö",
"SystemCheckCronArchiveProcessCLI": "Prosessien hallinta komentoriviltä",
+ "SystemCheckUpdateHttps": "Päivitä HTTPS:n yli",
"NotSupported": "ei tuettu",
"Tables": "Luodaan taulut",
"TablesCreatedSuccess": "Taulut luotu onnistuneesti!",
@@ -109,6 +122,7 @@
"TablesUpdatedSuccess": "Tietokanta on päivitetty onnistuneesti: %1$s > %2$s!",
"TablesWarningHelp": "Valitse joko nykyisten taulujen käyttö tai luo taulut uudelleen (vanhat tiedot menetetään).",
"TablesWithSameNamesFound": "Osalla %1$s tauluista tietokannassa %2$s on sama nimi kuin tauluilla, joita Piwik yrittää luoda.",
+ "Timezone": "Verkkosivun aikavyöhyke",
"WeHopeYouWillEnjoyPiwik": "Toivomme että nautit Piwikin käytöstä yhtä paljon kuin me nautimme sen luomisesta!",
"Welcome": "Tervetuloa!",
"WelcomeHelp": "<p>Piwik on vapaan lähdekoodin verkkosivujen analysointityökalu, joka tekee kävijöiden tietojen keräämisen ja analysoinnin helpoksi.<\/p><p>Tämä prosessi on jaettu %s helppoon osaan ja vie aikaa noin viisi minuuttia.<\/p>",
diff --git a/plugins/Live/lang/fi.json b/plugins/Live/lang/fi.json
index 505ef58e1b..a273a5d133 100644
--- a/plugins/Live/lang/fi.json
+++ b/plugins/Live/lang/fi.json
@@ -31,6 +31,8 @@
"VisitorProfile": "Kävijäprofiili",
"VisitorsInRealTime": "Reaaliaikaiset kävijätiedot",
"VisitorsLastVisit": "Tämän kävijän edellinen käynti oli %s päivää sitten.",
- "VisitsFrom": "%1$s%2$s käyntiä%3$s lähteestä"
+ "VisitsFrom": "%1$s%2$s käyntiä%3$s lähteestä",
+ "OnClickPause": "%s on käynnissä. Pysäytä klikkaamalla.",
+ "OnClickStart": "%s on pysäytetty. Aloita klikkaamalla."
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/nb.json b/plugins/Live/lang/nb.json
index f70474f6c6..5ac8a3275c 100644
--- a/plugins/Live/lang/nb.json
+++ b/plugins/Live/lang/nb.json
@@ -23,6 +23,7 @@
"VisitorProfile": "Besøksprofil",
"VisitorsInRealTime": "Besøkende i sanntid",
"VisitsFrom": "%1$s%2$s besøk%3$s fra",
+ "VisitSummaryWithActionDetails": "Brukte totalt %1$s%2$s på nettsiden%3$s og utførte %4$s handlinger%5$s (%6$s) over %7$s besøk%8$s.",
"OnClickPause": "%s er startet. Klikk for å sette på pause.",
"OnClickStart": "%s er stoppet. Klikk for å starte."
}
diff --git a/plugins/Live/stylesheets/live.less b/plugins/Live/stylesheets/live.less
index 7bbdde4044..bf71c90c2c 100644
--- a/plugins/Live/stylesheets/live.less
+++ b/plugins/Live/stylesheets/live.less
@@ -119,6 +119,10 @@ ol.visitorLog li {
margin-right: 4px;
}
+.visitorReferrer .visitorRank {
+ display: inline-block;
+}
+
.visitorRank {
border: 1px solid #D8D8D8;
color: #474747;
diff --git a/plugins/MobileAppMeasurable/lang/fi.json b/plugins/MobileAppMeasurable/lang/fi.json
new file mode 100644
index 0000000000..8300bfb476
--- /dev/null
+++ b/plugins/MobileAppMeasurable/lang/fi.json
@@ -0,0 +1,7 @@
+{
+ "MobileAppMeasurable": {
+ "MobileApp": "Mobiili-app",
+ "MobileApps": "Mobiili-appit",
+ "MobileAppDescription": "Natiiviohjelmat iOS:llä, Androidilla tai millä tahansa muulla mobiilikäyttöjärjestelmällä"
+ }
+} \ No newline at end of file
diff --git a/plugins/PrivacyManager/lang/fi.json b/plugins/PrivacyManager/lang/fi.json
index bc8d0c0085..af20fe9d0c 100644
--- a/plugins/PrivacyManager/lang/fi.json
+++ b/plugins/PrivacyManager/lang/fi.json
@@ -2,6 +2,7 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Valitse \"Kyllä\", jos et halua, että Piwik seuraa kokonaisia IP-osoitteita.",
"AnonymizeIpInlineHelp": "Poistaa viimeisen tavun vierailijoiden IP-osoitteista, mikäli paikalliset yksityiseensuojalait\/-ohjeistukset vaativat.",
+ "AnonymizeIpExtendedHelp": "Kun käyttäjät vierailevat sivullasi, Piwik ei tallenna täyttä IP-osoitetta (esim. %1$s), vaan sen sijaan osoite anonymisoidaan (esim. %2$s). IP-osoitteen anonymisointi on osa yksityisyydensuojasta määrääviä lakeja esimerkiksi Saksassa.",
"AnonymizeIpMaskLengtDescription": "Valitse, montako tavua käyttäjien IP-osoitteista piilotetaan.",
"AnonymizeIpMaskLength": "%1$s tavua - esim. %2$s",
"CannotLockSoDeleteLogActions": "log_action-taulua ei ole tyhjätty. Lisää \"LOCK TABLES\"-oikeus käyttäjälle %s.",
@@ -12,6 +13,8 @@
"DeleteDataDescription": "Voit säätää Piwikin poistamaan vanhat kävijätiedot ja\/tai luodut raportit, jotta tietokannan koko pysyy pienenä.",
"DeleteDataDescription2": "Voit valita, että etukäteen luodut raportit säilytetäänja ainoastaan käynnit, avatut sivut ja seurantalogit poistetaan. Tai raportit voidaan poistaa ja logit säilyttää.",
"DeleteDataInterval": "Poista vanhat tiedot joka",
+ "DeleteOldVisitorLogs": "Poista vanhat kävijälogit",
+ "DeleteOldArchivedReports": "Poista arkistoidut raportit",
"DeleteLogDescription2": "Kun lokeja poistetaan automaattisesti, sinun täytyy tarkistaa, että kaikki aikaisemmat päivittäiset raportit on prosessoitu, jotta tietoja ei häviä.",
"DeleteLogInfo": "Lokit seuraavista tauluista poistetaan: %s",
"DeleteLogsConfirm": "Olet ottamassa käyttöön lokitietojen poistamisen. Jos vanhat tiedot poistetaan ja raportteja ei ole vielä luotu, et näe historiatietoja. Haluatko varmasti tehdä tämän?",
@@ -24,6 +27,7 @@
"DeleteReportsInfo2": "Jos et ole ottanut käyttöön \"%s\":ää, vanhat raportit luodaan automaattisesti uudelleen tarvittaessa.",
"DeleteReportsInfo3": "Jos olet ottanut käyttöön \"%s\":n, vanhat tiedot poistetaan lopullisesti.",
"DeleteReportsOlderThan": "Poista raportit, jotka ovat vanhempia kuin",
+ "DeleteSchedulingSettings": "Ajoita vanhojen tietojen poisto",
"DeleteDataSettings": "Poista vanhat lokit ja raportit",
"DoNotTrack_Description": "\"Do not Track\" (älä seuraa) on teknologia, jolla käyttäjät voivat ilmoittaa etteivät halua tulla seuratuiksi.",
"DoNotTrack_Disable": "Poista \"Älä seuraa minua\" (\"do not track\") -tuki käytöstä",
@@ -38,15 +42,18 @@
"GeolocationAnonymizeIpNote": "Huom: Geopaikannuksella on suurin piirtein samat tulokset, kun 1 tavu on salattu. Jos 2 tavua tai enemmän on salattu, Geopaikannus on epätarkka.",
"GetPurgeEstimate": "Kokoarviot tietojen poistamisesta",
"KeepBasicMetrics": "Kerää yksinkertaiset metriikat (käynnit, sivujen katselut, kauppatiedot jne.)",
+ "KeepDataFor": "Säilytä kaikki tiedot",
"KeepReportSegments": "Säilytä alla listattujen tietojen lisäksi segmentoidut raportit",
"LastDelete": "Edellinen poistaminen oli",
"LeastDaysInput": "Päiviä täytyy olla enemmän kuin %s.",
"LeastMonthsInput": "Kuukausien lukumäärän täytyy olla suurempi kuin %s.",
"MenuPrivacySettings": "Yksityisyys",
"NextDelete": "Seuraava poistaminen on",
+ "PluginDescription": "Paranna kävijöiden yksityisyydensuojaa ja säädä Piwik-asennuksesi noudattamaan paikallista lainsäädäntöä",
"PurgeNow": "Siivoa tietokanta nyt",
"PurgeNowConfirm": "Olet poistamassa tietoja lopullisesti. Haluatko varmasti jatkaa?",
"PurgingData": "Siivotaan tietoja...",
+ "RecommendedForPrivacy": "Suositellaan yksityisyydensuojaan",
"ReportsDataSavedEstimate": "Tietokannan koko",
"SaveSettingsBeforePurge": "Olet muuttanut tietojen poistamisen asetuksia. Tallenna muutokset ennen jatkamista.",
"SeeAlsoOurOfficialGuidePrivacy": "Lue myös virallinen oppaamme: %1$sVerkkoanalyysi ja yksityisyys%2$s",
diff --git a/plugins/PrivacyManager/lang/nb.json b/plugins/PrivacyManager/lang/nb.json
index 87b96e9d56..8642afedbf 100644
--- a/plugins/PrivacyManager/lang/nb.json
+++ b/plugins/PrivacyManager/lang/nb.json
@@ -12,6 +12,8 @@
"DeleteMaxRowsNoLimit": "ingen grense",
"DeleteReportsOlderThan": "Slett rapporter eldre enn",
"DeleteDataSettings": "Slett gamle besøkslogger og -rapporter",
+ "DoNotTrack_Disable": "Deaktiver Do Not Track støtte",
+ "DoNotTrack_Enable": "Aktiver Do Not Track støtte",
"EstimatedSpaceSaved": "Estimert plassbesparelse",
"GeolocationAnonymizeIpNote": "Merk: Geoposisjonering vil ha omtrent de samme resultatene med en byte anonymisert. Med to byte eller mer, vil geoposisjonering være unøyaktig.",
"KeepDataFor": "Behold all data for",
diff --git a/plugins/Provider/lang/fi.json b/plugins/Provider/lang/fi.json
index bf079428c4..cce8a9cac5 100644
--- a/plugins/Provider/lang/fi.json
+++ b/plugins/Provider/lang/fi.json
@@ -1,7 +1,9 @@
{
"Provider": {
"ColumnProvider": "Palveluntarjoajat",
+ "PluginDescription": "Raportoi kävijöiden internetoperaattorin",
"ProviderReportDocumentation": "Tämä raportti näyttää, mitä internetin toimittajia kävijäsi käyttivät sivuillasi. Saat lisätietoja klikkaamalla toimittajan nimeä. %s Jos Piwik ei tunnista toimittajan nimeä, kävijästä näytetään IP.",
- "WidgetProviders": "Palveluntarjoajat"
+ "WidgetProviders": "Palveluntarjoajat",
+ "ProviderReportFooter": "Tuntematon toimittaja ei selvitä IP-osoitteita"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/fi.json b/plugins/Referrers/lang/fi.json
index a4e985a12b..3f877a70ea 100644
--- a/plugins/Referrers/lang/fi.json
+++ b/plugins/Referrers/lang/fi.json
@@ -20,10 +20,12 @@
"EvolutionDocumentationMoreInfo": "Löydät lisätietoja erilaisista viittaustyypeistä taulun %s dokumentaatiosta.",
"Keywords": "Avainsanat",
"KeywordsReportDocumentation": "Tämä rapotti näyttää, millä hakusanoilla kävijät tulivat sivuillesi. %s Näet hakukoneiden määrän klikkaamalla hakusanaa.",
+ "PluginDescription": "Raportoi viittaajiin liittyvää tietoa: hakukoneet, hakusanat, verkkosivut, kampanjat, sosiaalisen median, suorat saapumiset.",
"Referrer": "Viittaukset",
"ReferrerName": "Viittauksen nimi",
"Referrers": "Viittaajat",
"ReferrersOverview": "Viittauksien yleiskatsaus",
+ "ReferrerTypes": "Viittaajatyypit",
"SearchEngines": "Hakukoneet",
"SearchEnginesDocumentation": "Kävijä tuli sivullesi hakukoneesta. %1$s Katso %2$s raportista lisätietoja.",
"SearchEnginesReportDocumentation": "Tämä raportti näyttää, mitkä hakukoneet viittasivat kävijöitä sivuillesi. %s Näet hakusanat klikkaamalla hakukoneen nimeä.",
diff --git a/plugins/SEO/lang/fi.json b/plugins/SEO/lang/fi.json
index 354270e2d3..02accf4536 100644
--- a/plugins/SEO/lang/fi.json
+++ b/plugins/SEO/lang/fi.json
@@ -1,5 +1,6 @@
{
"SEO": {
+ "PluginDescription": "Tämä lisäosa hakee ja näyttää SEO-tietoja: Alexan web ranking, Googlen Pagerank, indeksoitujen sivujen lukumäärän, ja takaisin osoittavien linkkien määrän valitulle sivulle.",
"AlexaRank": "Alexa-tulos",
"Bing_IndexedPages": "Bingin indeksoidut sivut",
"Dmoz": "DMOZ tulossivut",
diff --git a/plugins/SegmentEditor/lang/fi.json b/plugins/SegmentEditor/lang/fi.json
index de72617253..7aab90628c 100644
--- a/plugins/SegmentEditor/lang/fi.json
+++ b/plugins/SegmentEditor/lang/fi.json
@@ -16,10 +16,17 @@
"SegmentDisplayedAllWebsites": "kaikki sivut",
"SegmentDisplayedThisWebsiteOnly": "vain tällä verkkosivulla",
"SegmentNotApplied": "Segmenttiä '%s' ei sovelleta",
+ "SelectSegmentOfVisits": "Valitse segmentit käynnille:",
"ThisSegmentIsVisibleTo": "Tämä segmentti näytetään seuraaville:",
"VisibleToAllUsers": "kaikki käyttäjät",
"VisibleToMe": "minä",
"YouMayChangeSetting": "Vaihtoehtoisesti voit vaihtaa asetuksen tiedostosta %1$s, tai muuttaa tätä segmenttiä ja valita '%2$s'.",
- "YouMustBeLoggedInToCreateSegments": "Sinun täytyy olla sisäänkirjautuneena voidaksesi luoda tai muokata kävijäsegmenttejä."
+ "VisibleToSuperUser": "Näkyvissä sinulle, koska sinulla on pääkäyttäjän oikeudet",
+ "SharedWithYou": "Jaettu kanssasi",
+ "YouMustBeLoggedInToCreateSegments": "Sinun täytyy olla sisäänkirjautuneena voidaksesi luoda tai muokata kävijäsegmenttejä.",
+ "AddingSegmentForAllWebsitesDisabled": "Segmenttien lisääminen kaikille verkkosivuille on poistettu käytöstä.",
+ "CustomSegment": "Kustomoidut segmentit",
+ "SegmentOperatorIsNullOrEmpty": "on tyhjä",
+ "SegmentOperatorIsNotNullNorEmpty": "ei ole tyhjä"
}
} \ No newline at end of file
diff --git a/plugins/SitesManager/lang/el.json b/plugins/SitesManager/lang/el.json
index e8636db0ad..a6b2092a5a 100644
--- a/plugins/SitesManager/lang/el.json
+++ b/plugins/SitesManager/lang/el.json
@@ -11,7 +11,7 @@
"DefaultCurrencyForNewWebsites": "Προεπιλεγμένο Νόμισμα για νέες ιστοσελίδες",
"DefaultTimezoneForNewWebsites": "Προεπιλεγμένη Ζώνη ώρας για νέες ιστοσελίδες",
"DeleteConfirm": "Είστε σίγουρος ότι θέλετε να διαγράψετε την ιστοσελίδα %s?",
- "DisableSiteSearch": "Να μην καταγράφετε η Αναζήτηση Σελίδας",
+ "DisableSiteSearch": "Να μην καταγράφεται η Αναζήτηση Σελίδας",
"EcommerceHelp": "Όταν ενεργοποιηθεί, η αναφορά «Στόχοι» θα έχει ένα νέο τομέα «Ηλεκτρονικό Εμπόριο».",
"EnableEcommerce": "Το Ηλεκτρονικό Εμπόριο ενεργοποιήθηκε",
"EnableSiteSearch": "Η καταγραφή Αναζήτησης Ιστοσελίδας είναι ενεργοποιημένη",
diff --git a/plugins/Transitions/lang/fi.json b/plugins/Transitions/lang/fi.json
index 246303c4df..df5c6bc3a8 100644
--- a/plugins/Transitions/lang/fi.json
+++ b/plugins/Transitions/lang/fi.json
@@ -16,6 +16,7 @@
"NoDataForAction": "%s:lle ei ole tietoja",
"NoDataForActionDetails": "Joko toiminnolle ei ole tietoja aikavälille %s tai toiminto on virheellinen.",
"OutgoingTraffic": "Lähtevä liikenne",
+ "PluginDescription": "Raportoi edellisen ja seuraavat toiminnot jokaiselle sivulle. Saatavilla \"Toiminnot\"-raportissa uuden ikonin takaa.",
"ShareOfAllPageviews": "Tällä sivulla on %1$s sivunavausta (%2$s kaikista)",
"ToFollowingPages": "Sisäisille sivuille",
"ToFollowingPagesInline": "%s sisäisille sivuille",
diff --git a/plugins/UserCountry/lang/fi.json b/plugins/UserCountry/lang/fi.json
index 98ea0c0518..1cb6e70cb2 100644
--- a/plugins/UserCountry/lang/fi.json
+++ b/plugins/UserCountry/lang/fi.json
@@ -16,6 +16,7 @@
"country_a2": "Satelliittiyhteys",
"country_cat": "Katalaania puhuvat alueet",
"country_o1": "Muu maa",
+ "country_ti": "Tiibet",
"CurrentLocationIntro": "Tämän toteutuksen mukaan nykyinen sijaintisi on",
"DefaultLocationProviderDesc1": "Oletustoteutus arvaa käyttäjien maan kielen perusteella.",
"DefaultLocationProviderDesc2": "Tämä ei ole erityisen tarkkaa, joten %1$ssuosittelemme asentamaan ja käyttämään %2$sGeoIp:tä%3$s.%4$s",
diff --git a/plugins/UserCountry/lang/nb.json b/plugins/UserCountry/lang/nb.json
index 34b842e32d..a0c714d458 100644
--- a/plugins/UserCountry/lang/nb.json
+++ b/plugins/UserCountry/lang/nb.json
@@ -24,6 +24,7 @@
"HowToInstallGeoIpPecl": "Hvordan installerer jeg GeoIP PECL-utvidelsen?",
"HowToInstallNginxModule": "Hvordan installerer jeg GeoIP-modulen for Nginx?",
"HowToSetupGeoIP_Step1": "%1$sLast ned%2$s GeoLite City-databasen fra %3$sMaxMind%4$s.",
+ "HttpServerModule": "HTTP Server-modul",
"ISPDatabase": "ISP-database",
"IWantToDownloadFreeGeoIP": "Jeg vil laste ned gratis GeoIP-database...",
"Latitude": "Breddegrad",
diff --git a/plugins/UserCountryMap/lang/fi.json b/plugins/UserCountryMap/lang/fi.json
index 9da534097e..ab377390bd 100644
--- a/plugins/UserCountryMap/lang/fi.json
+++ b/plugins/UserCountryMap/lang/fi.json
@@ -1,5 +1,6 @@
{
"UserCountryMap": {
+ "PluginDescription": "Tämä lisäosa tarjoaa käyttäjäkartan ja reaaliaikakartan. Huom: \"UserCountry\"-lisäosan täytyy olla päällä.",
"AndNOthers": "ja %s muuta",
"Cities": "Kaupunkeja",
"Countries": "Maita",
@@ -17,6 +18,8 @@
"ShowingVisits": "Geopaikannetut käynnit viimeiset",
"Unlocated": "<b>%s<\/b> %p käynneistä %c:sta ei voitu geopaikantaa.",
"VisitorMap": "Kartta kävijöistä",
- "WorldWide": "Maailmanlaajuinen"
+ "WorldWide": "Maailmanlaajuinen",
+ "WithUnknownRegion": "%s tuntemattomalta alueelta",
+ "WithUnknownCity": "%s tuntemattomista kaupungeista"
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/fi.json b/plugins/UserLanguage/lang/fi.json
index 57a7794cc9..140e43780b 100644
--- a/plugins/UserLanguage/lang/fi.json
+++ b/plugins/UserLanguage/lang/fi.json
@@ -1,6 +1,7 @@
{
"UserLanguage": {
"BrowserLanguage": "Selaimen kieli",
- "LanguageCode": "Kielikoodi"
+ "LanguageCode": "Kielikoodi",
+ "PluginDescription": "Raportoi käyttäjän selaimen kieliasetukset."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/fi.json b/plugins/UsersManager/lang/fi.json
index 8a39276cae..9fb8873852 100644
--- a/plugins/UsersManager/lang/fi.json
+++ b/plugins/UsersManager/lang/fi.json
@@ -3,9 +3,11 @@
"AddUser": "Lisää uusi käyttäjä",
"Alias": "Alias",
"AllWebsites": "Kaikki sivut",
+ "AnonymousUser": "Anonyymi käyttäjä",
"AnonymousUserHasViewAccess": "Huom: käyttäjällä %1$s on %2$s pääsy tälle verkkosivulle.",
"AnonymousUserHasViewAccess2": "Analyysiraporttisi ja kävijätietosi ovat julkisia.",
"ApplyToAllWebsites": "Päivitä kaikille sivuille",
+ "ChangeAllConfirm": "Haluatko varmasti antaa käyttäjälle '%s' pääsyn kaikille verkkosivuille?",
"ChangePasswordConfirm": "Salasanan vaihtaminen vaihtaa myös käyttäjän token_auth:n. Haluatko varmasti jatkaa?",
"ClickHereToDeleteTheCookie": "Paina tästä poistaaksesi cookie",
"ClickHereToSetTheCookieOnDomain": "Paina tästä luodaksesi cookie sivulle %s",
@@ -14,6 +16,7 @@
"DeleteConfirm": "Haluatko varmasti poistaa käyttäjän %s?",
"Email": "Sähköposti",
"EmailYourAdministrator": "%1$sLähetä ylläpitäjällesi sähköpostia ongelmasta%2$s.",
+ "EnterUsernameOrEmail": "Kirjoita käyttäjätunnus tai sähköpostiosoite",
"ExceptionAccessValues": "Oikeuksien täytyy olla yksi seuraavista arvoista: [ %s ]",
"ExceptionAdminAnonymous": "Et voi sallia ylläpito-oikeuksia anonyymikäyttäjälle.",
"ExceptionDeleteDoesNotExist": "Käyttäjää '%s' ei ole eikä sitä siksi voida poistaa.",
@@ -21,14 +24,20 @@
"ExceptionEditAnonymous": "Anonyymikäyttäjää ei voi muokata tai poistaa. Se on Piwikin sisäinen tunnus käyttäjälle, joka ei ole kirjautunut sisään. Voit esimerkiksi julkaista tilastoja kaikille sallimalla anonyymikäyttäjälle katsomisoikeuden.",
"ExceptionEmailExists": "Käyttäjä sähköpostilla '%s' on jo olemassa.",
"ExceptionInvalidEmail": "Sähköposti ei ole kelvollinen.",
+ "ExceptionInvalidLoginFormat": "Käyttäjänimen pitää olla %1$s-%2$s merkkiä pitkä ja saa sisältää vain kirjaimia (ei ääkkösiä), numeroita tai '_' or '-' or '.' or '@' or '+'",
"ExceptionInvalidPassword": "Salasanan pituuden täytyy olla %1$s ja %2$s välillä.",
+ "ExceptionLoginExists": "Käyttäjätunnus '%s' on jo olemassa.",
"ExceptionPasswordMD5HashExpected": "UserManager.getTokenAuth haluaa MD5-tiivisteen salasanastasi (32 merkkiä pitkä merkkijono). Kutsu md5()-funktiota salasanallesi ennen kutsumista.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Superkäyttäjäoikeuksien poistaminen käyttäjältä '%s' ei ole mahdollista.",
"ExceptionSuperUserAccess": "Tällä käyttäjällä on jo Superkäyttäjäoikeudet ja oikeudet muokata kaikkia verkkosivuja Piwikissä. Voit poistaa Superkäyttäjäoikeudet tältä käyttäjältä ja yrittää uudelleen.",
"ExceptionUserDoesNotExist": "Käyttäjää '%s' ei ole olemassa.",
"ExceptionYouMustGrantSuperUserAccessFirst": "Ainakin yhdellä käyttäjällä tulee olla Superkäyttäjäoikeudet. Ole hyvä ja anna toiselle käyttäjälle Superkäyttäjäoikeudet ensin.",
+ "ExceptionUserHasViewAccessAlready": "Käyttäjällä on jo pääsy sivulle.",
+ "ExceptionNoValueForUsernameOrEmail": "Kirjoita käyttäjätunnus tai sähköpostiosoite.",
"ExcludeVisitsViaCookie": "Poista käyntiesi seuraaminen cookiella",
"ForAnonymousUsersReportDateToLoadByDefault": "Lataa anonyymeille käyttäjille oletuksena",
+ "GiveViewAccess": "Anna katseluoikeus",
+ "GiveViewAccessTitle": "Anna olemassaolevalle käyttäjälle oikeus katsoa %s:n raportteja",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Jos haluat vaihtaa salasanan, kirjoita uusi. Muuten jätä tyhjäksi.",
"InjectedHostCannotChangePwd": "Olet sivulla tällä hetkellä tuntemattoman isännän kautta (%1$s). Et voi vaihtaa salasanaasi ennen kuin tämä ongelma on korjattu.",
"LastSeen": "Nähty viimeeksi",
@@ -36,8 +45,11 @@
"MenuAnonymousUserSettings": "Anonyymin käyttäjän asetukset",
"MenuUsers": "Käyttäjät",
"MenuUserSettings": "Käyttäjäasetukset",
+ "MenuPersonal": "Henkilökohtainen",
+ "PersonalSettings": "Henkilökohtaiset asetukset",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Huom. et voi vaihtaa tämän osion asetuksia, koska sinulla ei ole yhtäkään sivustoa, jonka tietoja anonyymit käyttäjät pääsevät katsomaan.",
"NoUsersExist": "Yhtään käyttäjää ei ole vielä olemassa.",
+ "PluginDescription": "Käyttäjähallinta antaa sinun lisätä uusia käyttäjiä, muokata olemassaolevia käyttäjiä, antaa pääsyoikeuksia sivuille ja muokata sivuja.",
"PrivAdmin": "Hallinnointioikeus",
"PrivNone": "Ei käyttöoikeutta",
"PrivView": "Näkymä",
diff --git a/plugins/VisitFrequency/lang/fi.json b/plugins/VisitFrequency/lang/fi.json
index b46c8115d6..4bee78edcc 100644
--- a/plugins/VisitFrequency/lang/fi.json
+++ b/plugins/VisitFrequency/lang/fi.json
@@ -10,6 +10,8 @@
"ColumnReturningVisits": "Palaavat käynnit",
"ColumnSumVisitLengthReturning": "Palaavien käyttäjien aika yhteensä (sekunteja)",
"ColumnUniqueReturningVisitors": "Yksilölliset palaavat kävijät",
+ "ColumnReturningUsers": "Palaavat käyttäjät",
+ "PluginDescription": "Raportoi metriikat ensimmäisen kerran kävijöistä ja palaavista vierailijoista",
"ReturnActions": "%s toimintoa palaavilta käyttäjiltä",
"ReturnAverageVisitDuration": "%s keskimääräinen käynnin pituus palaaville kävijöille",
"ReturnAvgActions": "%s toimintoa \/ palaava käynti",
diff --git a/plugins/VisitTime/lang/fi.json b/plugins/VisitTime/lang/fi.json
index 14e8b8856b..1efd00df94 100644
--- a/plugins/VisitTime/lang/fi.json
+++ b/plugins/VisitTime/lang/fi.json
@@ -5,6 +5,7 @@
"DayOfWeek": "Viikonpäivä",
"LocalTime": "Käyntejä (paikallinen aika)",
"NHour": "%sh",
+ "PluginDescription": "Raportoi palvelimen ajan ja käyttäjän paikallisen ajan käynneille.",
"ServerTime": "Käyntejä (palvelimen aika)",
"SubmenuTimes": "Ajat",
"VisitsByDayOfWeek": "Käynnit viikonpäivän mukaan",
diff --git a/plugins/VisitorInterest/lang/fi.json b/plugins/VisitorInterest/lang/fi.json
index e306a04236..e196332b95 100644
--- a/plugins/VisitorInterest/lang/fi.json
+++ b/plugins/VisitorInterest/lang/fi.json
@@ -7,6 +7,7 @@
"Engagement": "Sitoutuminen",
"NPages": "%s sivua",
"OnePage": "1 sivu",
+ "PluginDescription": "Raportoi kävijöiden kiinnostuksen: käytyjen sivujen määrän, sivuilla vietetyn ajan, ajan edellisestä käynnistä jne.",
"VisitNum": "Käynnin numero",
"VisitsByDaysSinceLast": "Käynnit lajiteltuna aikavälillä edelliseen käyntiin",
"visitsByVisitCount": "Käynnit käyntinumeron mukaan",
diff --git a/plugins/VisitsSummary/lang/fi.json b/plugins/VisitsSummary/lang/fi.json
index 4df0a1d5db..0bc92bcf03 100644
--- a/plugins/VisitsSummary/lang/fi.json
+++ b/plugins/VisitsSummary/lang/fi.json
@@ -17,6 +17,7 @@
"NbUniquePageviewsDescription": "%s yksilöllistä sivunavausta",
"NbUniqueVisitors": "%s uniikia kävijää",
"NbVisitsBounced": "%s lyhyttä käyntiä (vain yksi ladattu sivu)",
+ "PluginDescription": "Raportoi yleiset analytiikkametriikat: käynnit, uniikit kävijät, toimintojen määrän jne.",
"VisitsSummary": "Yhteenveto käynneistä",
"VisitsSummaryDocumentation": "Tämä on käyntien muutoksen yleiskatsaus",
"WidgetLastVisits": "Edelliset käynnit",
diff --git a/plugins/WebsiteMeasurable/lang/fi.json b/plugins/WebsiteMeasurable/lang/fi.json
new file mode 100644
index 0000000000..e3c519b052
--- /dev/null
+++ b/plugins/WebsiteMeasurable/lang/fi.json
@@ -0,0 +1,7 @@
+{
+ "WebsiteMeasurable": {
+ "Website": "Verkkosivu",
+ "Websites": "Verkkosivut",
+ "WebsiteDescription": "Verkkosivusto on tyypillisesti kokoelma sivuja saman verkko-osoitteen alla."
+ }
+} \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/EmailValidatorTest.php b/tests/PHPUnit/Integration/EmailValidatorTest.php
index 4b2e215506..262baab9e0 100644
--- a/tests/PHPUnit/Integration/EmailValidatorTest.php
+++ b/tests/PHPUnit/Integration/EmailValidatorTest.php
@@ -8,6 +8,7 @@
namespace Piwik\Tests\Integration;
+use Piwik\Http;
use Piwik\Piwik;
/**
@@ -20,6 +21,62 @@ class EmailValidatorTest extends \PHPUnit_Framework_TestCase
return Piwik::isValidEmailString($email);
}
+ private function getAllTlds()
+ {
+ /** @var array $response */
+ $response = \Piwik\Http::sendHttpRequest("http://data.iana.org/TLD/tlds-alpha-by-domain.txt", 30, null, null, null, null, null, true);
+
+ $this->assertEquals("200", $response['status']);
+
+ $tlds = explode("\n", $response['data']);
+ foreach ($tlds as $key => $tld) {
+ if (strpos($tld, '#') !== false || $tld == "") {
+ unset($tlds[$key]);
+ }
+ }
+ return $tlds;
+ }
+
+ public function test_allCurrentTlds(){
+ $tlds = $this->getAllTlds();
+ if (count($tlds) === 0) {
+ $this->markTestSkipped("Couldn't get TLD list");
+ }
+
+ foreach ($tlds as $key => $tld) {
+ if (strpos(mb_strtolower($tld), 'xn--') !== 0) {
+ $tld = mb_strtolower($tld);
+ }
+ $this->assertTrue(
+ $this->isValid('test@example.' . idn_to_utf8($tld))
+ );
+ }
+ }
+
+ public function test_invalidTld(){
+ $tlds = [
+ strval(bin2hex(openssl_random_pseudo_bytes(64))), //generates 128 bit length string
+ '-tld-cannot-start-from-hypen',
+ 'ąęśćżźł-there-is-no-such-idn',
+ 'xn--fd67as67fdsa', //no such idn punycode
+ '!@#-inavlid-chars-in-tld',
+ 'no spaces in tld allowed',
+ 'no--double--hypens--allowed'
+ ];
+ if (count($tlds) === 0) {
+ $this->markTestSkipped("Couldn't get TLD list");
+ }
+
+ foreach ($tlds as $key => $tld) {
+ if (strpos(mb_strtolower($tld), 'xn--') !== 0) {
+ $tld = mb_strtolower($tld);
+ }
+ $this->assertFalse(
+ $this->isValid('test@example.' . idn_to_utf8($tld))
+ );
+ }
+ }
+
public function test_isValid_validStandard()
{
$this->assertTrue($this->isValid('test@example.com'));