diff --git a/Dockerfile b/Dockerfile index c44b71096d..7229e6be25 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,15 @@ -FROM node:0.10-onbuild +# The base image is the latest 4.x node (LTS) on jessie (debian) +# -onbuild will install the node dependencies found in the project package.json +# and copy its content in /usr/src/app, its WORKDIR +FROM node:4-onbuild ENV NODE_ENV=production \ daemon=false \ silent=false +# nodebb setup will ask you for connection information to a redis (default), mongodb then run the forum +# nodebb upgrade is not included and might be desired CMD node app --setup && npm start + +# the default port for NodeBB is exposed outside the container EXPOSE 4567 diff --git a/install/data/defaults.json b/install/data/defaults.json index 6d81fdbc82..39a2226c5a 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -25,6 +25,7 @@ "maximumSignatureLength": 255, "maximumAboutMeLength": 1000, "maximumProfileImageSize": 256, + "maximumCoverImageSize": 2048, "profileImageDimension": 128, "requireEmailConfirmation": 0, "profile:allowProfileImageUploads": 1, diff --git a/install/data/footer.json b/install/data/footer.json index 69d55448ac..7c71cad648 100644 --- a/install/data/footer.json +++ b/install/data/footer.json @@ -2,7 +2,7 @@ { "widget": "html", "data" : { - "html": "", + "html": "", "title":"", "container":"" } diff --git a/package.json b/package.json index 529470c731..90addc82d5 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "0.9.0", + "version": "0.9.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -14,7 +14,7 @@ "test": "mocha ./tests -t 10000" }, "dependencies": { - "async": "~1.4.2", + "async": "~1.5.0", "bcryptjs": "~2.3.0", "body-parser": "^1.9.0", "colors": "^1.1.0", @@ -28,30 +28,29 @@ "daemon": "~1.1.0", "express": "^4.9.5", "express-session": "^1.8.2", - "gravatar": "^1.1.0", "heapdump": "^0.3.0", - "jimp": "^0.2.5", + "html-to-text": "1.3.2", + "jimp": "0.2.19", "less": "^2.0.0", "logrotate-stream": "^0.2.3", "lru-cache": "^2.6.1", "mime": "^1.3.4", "minimist": "^1.1.1", "mkdirp": "~0.5.0", - "mmmagic": "^0.4.0", "morgan": "^1.3.2", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "1.0.20", - "nodebb-plugin-dbsearch": "0.2.17", - "nodebb-plugin-emoji-extended": "0.4.15", - "nodebb-plugin-markdown": "4.0.7", - "nodebb-plugin-mentions": "1.0.9", - "nodebb-plugin-soundpack-default": "0.1.4", - "nodebb-plugin-spam-be-gone": "0.4.2", - "nodebb-rewards-essentials": "0.0.5", - "nodebb-theme-lavender": "2.0.13", - "nodebb-theme-persona": "4.0.31", - "nodebb-theme-vanilla": "5.0.13", - "nodebb-widget-essentials": "2.0.4", + "nodebb-plugin-composer-default": "1.0.24", + "nodebb-plugin-dbsearch": "0.2.18", + "nodebb-plugin-emoji-extended": "0.4.16", + "nodebb-plugin-markdown": "4.0.8", + "nodebb-plugin-mentions": "1.0.10", + "nodebb-plugin-soundpack-default": "0.1.5", + "nodebb-plugin-spam-be-gone": "0.4.5", + "nodebb-rewards-essentials": "0.0.6", + "nodebb-theme-lavender": "3.0.0", + "nodebb-theme-persona": "4.0.37", + "nodebb-theme-vanilla": "5.0.14", + "nodebb-widget-essentials": "2.0.5", "nodemailer": "0.7.1", "npm": "^2.1.4", "passport": "^0.3.0", @@ -68,13 +67,13 @@ "socket.io-redis": "^0.1.3", "socketio-wildcard": "~0.1.1", "string": "^3.0.0", - "templates.js": "0.3.0", + "templates.js": "0.3.1", "toobusy-js": "^0.4.2", - "uglify-js": "^2.4.24", + "uglify-js": "^2.6.0", "underscore": "~1.8.3", "underscore.deep": "^0.5.1", "validator": "^4.0.5", - "winston": "^1.0.1", + "winston": "^2.1.0", "xregexp": "~3.0.0" }, "devDependencies": { diff --git a/public/language/ar/error.json b/public/language/ar/error.json index d778ce8faa..7bb7290cec 100644 --- a/public/language/ar/error.json +++ b/public/language/ar/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "لايمكنك التصويت لردك", "already-favourited": "لقد سبق وأضفت هذا الرد إلى المفضلة", "already-unfavourited": "لقد سبق وحذفت هذا الرد من المفضلة", "cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.", diff --git a/public/language/ar/modules.json b/public/language/ar/modules.json index d2ede1b1ca..17998d13f9 100644 --- a/public/language/ar/modules.json +++ b/public/language/ar/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "إلغاء", - "bootbox.confirm": "تأكيد" + "bootbox.confirm": "تأكيد", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json index b05a0f631f..9b4286ae11 100644 --- a/public/language/ar/topic.json +++ b/public/language/ar/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "من الأحدث إلى الأقدم", "most_votes": "الأكثر تصويتًا", "most_posts": "اﻷكثر رداً", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ar/user.json b/public/language/ar/user.json index 2440385a2a..c5f21a0d78 100644 --- a/public/language/ar/user.json +++ b/public/language/ar/user.json @@ -58,7 +58,7 @@ "upload_picture": "ارفع الصورة", "upload_a_picture": "رفع صورة", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "لايمكنك رفع إلا الصور ذات الصيغ PNG أو JPG أو GIF.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "خيارات", "show_email": "أظهر بريدي الإلكتروني", "show_fullname": "أظهر اسمي الكامل", diff --git a/public/language/bg/error.json b/public/language/bg/error.json index c6eff6fd3f..cbc97af490 100644 --- a/public/language/bg/error.json +++ b/public/language/bg/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Недостатъчно етикети. Темите трябва да имат поне %1 етикет(а)", "too-many-tags": "Твърде много етикети. Темите не могат да имат повече от %1 етикет(а)", "file-too-big": "Максималният разрешен размер на файл е %1 КБ – моля, качете по-малък файл", - "cant-vote-self-post": "Не можете да гласувате за собствената си публикация", "already-favourited": "Вече сте отбелязали тази публикация като любима", "already-unfavourited": "Вече сте премахнали тази публикация от любимите си", "cant-ban-other-admins": "Не можете да блокирате другите администратори!", @@ -59,8 +58,8 @@ "group-name-too-short": "Името на групата е твърде кратко", "group-already-exists": "Вече съществува такава група", "group-name-change-not-allowed": "Промяната на името на групата не е разрешено", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "Вече членувате в тази група", + "group-not-member": "Не членувате в тази група", "group-needs-owner": "Тази група се нуждае от поне един собственик", "group-already-invited": "Този потребител вече е бил поканен", "group-already-requested": "Вашата заявка за членство вече е била изпратена", diff --git a/public/language/bg/modules.json b/public/language/bg/modules.json index 0be9ae627b..cb4509c571 100644 --- a/public/language/bg/modules.json +++ b/public/language/bg/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Качване на %1", "bootbox.ok": "Добре", "bootbox.cancel": "Отказ", - "bootbox.confirm": "Потвърждаване" + "bootbox.confirm": "Потвърждаване", + "cover.dragging_title": "Наместване на снимката", + "cover.dragging_message": "Преместете снимката на желаното положение и натиснете „Запазване“", + "cover.saved": "Снимката и мястото ѝ бяха запазени" } \ No newline at end of file diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index 785c8415b5..217b68c211 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Първо най-новите", "most_votes": "Най-много гласове", "most_posts": "Най-много публикации", - "stale_topic_warning": "Темата, в която отговаряте, е доста стара. Искате ли вместо това да създадете нова и да направите препратка към тази в отговора си?", + "stale.title": "Създаване на нова тема вместо това?", + "stale.warning": "Темата, в която отговаряте, е доста стара. Искате ли вместо това да създадете нова и да направите препратка към тази в отговора си?", + "stale.create": "Създаване на нова тема", + "stale.reply_anyway": "Отговаряне в тази тема въпреки това", + "stale.link_back": "Отговор: [%1](%2)", "spam": "Спам", "offensive": "Обидно", "custom-flag-reason": "Изберете причина за докладване" diff --git a/public/language/bg/user.json b/public/language/bg/user.json index ddcc7e54e9..c6f82b78d8 100644 --- a/public/language/bg/user.json +++ b/public/language/bg/user.json @@ -58,7 +58,7 @@ "upload_picture": "Качване на снимка", "upload_a_picture": "Качване на снимка", "remove_uploaded_picture": "Премахване на качената снимка", - "image_spec": "Можете да качвате само PNG, JPG, или GIF файлове", + "image_spec": "Можете да качвате само файлове във форматите PNG, JPG или BMP", "settings": "Настройки", "show_email": "Да се показва е-пощата ми", "show_fullname": "Да се показва цялото ми име", diff --git a/public/language/bn/category.json b/public/language/bn/category.json index 6dd740e4ac..b76b0724d2 100644 --- a/public/language/bn/category.json +++ b/public/language/bn/category.json @@ -1,16 +1,16 @@ { - "category": "Category", - "subcategories": "Subcategories", + "category": "বিভাগ", + "subcategories": "উপবিভাগ", "new_topic_button": "নতুন টপিক", - "guest-login-post": "Log in to post", - "no_topics": "এই বিভাগে কোন টপিক নেই!
আপনি চাইলে একটি পোষ্ট করতে পারেন।", + "guest-login-post": "উত্তর দিতে লগিন করুন", + "no_topics": "এই বিভাগে কোন আলোচনা নেই!
আপনি চাইলে নতুন আলোচনা শুরু করতে পারেন।", "browsing": "ব্রাউজিং", "no_replies": "কোন রিপ্লাই নেই", - "no_new_posts": "No new posts.", + "no_new_posts": "নতুন কোন পোস্ট নাই", "share_this_category": "এই বিভাগটি অন্যের সাথে ভাগাভাগি করুন", - "watch": "Watch", + "watch": "নজর রাখুন", "ignore": "উপেক্ষা করুন", - "watch.message": "You are now watching updates from this category", - "ignore.message": "You are now ignoring updates from this category", - "watched-categories": "Watched categories" + "watch.message": "আপনি এই বিভাগটিতে নজর রাখছেন", + "ignore.message": "আপনি এই বিভাগটির উপেক্ষা করছেন ", + "watched-categories": "প্রেক্ষিত বিভাগসমূহ" } \ No newline at end of file diff --git a/public/language/bn/email.json b/public/language/bn/email.json index 2ac4ae8057..22b62b9dd2 100644 --- a/public/language/bn/email.json +++ b/public/language/bn/email.json @@ -1,21 +1,21 @@ { "password-reset-requested": "পাসওয়ার্ড রিসেটের জন্য অনুরোধ করা হয়েছে - %1!", "welcome-to": "%1 এ স্বাগতম", - "invite": "Invitation from %1", + "invite": "%1 থেকে আমন্ত্রণ", "greeting_no_name": "স্বাগতম", "greeting_with_name": "স্বাগতম %1", "welcome.text1": "%1 এ নিবন্ধন করার জন্য আপনাকে ধন্যবাদ!", "welcome.text2": "আপনার একাউন্ট এ্যাক্টিভেট করার জন্য, আপনি যে ইমেইল এড্রেস ব্যাবহার করে নিবন্ধন করেছেন তা যাচাই করতে হবে", "welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.", "welcome.cta": "আপনার ইমেইল এড্রেস নিশ্চিত করার জন্য এখানে ক্লিক করুন", - "invitation.text1": "%1 has invited you to join %2", - "invitation.ctr": "Click here to create your account.", + "invitation.text1": "%1 আপনাকে %2 তে যোগ দিতে আমন্ত্রণ জানিয়েছেন ", + "invitation.ctr": "আপনার একাউন্ট খুলতে এখানে ক্লিক করুন", "reset.text1": "আমরা আপনার পাসওয়ার্ড রিসেট করার অনুরোধ পেয়েছি, সম্ভবত আপনি আপনার পাসওয়ার্ড ভুলে গিয়েছেন বলেই। তবে যদি তা না হয়ে থাকে, তাহলে এই মেইলকে উপেক্ষা করতে পারেন।", "reset.text2": "পাসওয়ার্ড রিসেট করতে নিচের লিংকে ক্লিক করুন", "reset.cta": "পাসওয়ার্ড রিসেট করতে এখানে ক্লিক করুন", - "reset.notify.subject": "Password successfully changed", - "reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.", - "reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.", + "reset.notify.subject": "পাসওয়ার্ড পরিবর্তন সফল হয়েছে", + "reset.notify.text1": "আপনাকে জানাচ্ছি যে %1 এ আপনার পাসওয়ার্ড পরিবর্তন হয়েছে", + "reset.notify.text2": "এটা আপনার অজান্তে হলে এখনই প্রশাসককে আবহিত করুন", "digest.notifications": "%1 থেকে আনরিড নোটিফিকেশন আছে।", "digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ", "digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন", @@ -24,8 +24,8 @@ "notif.chat.subject": "%1 এর থেকে নতুন মেসেজ এসেছে।", "notif.chat.cta": "কথপোকথন চালিয়ে যেতে এখানে ক্লিক করুন", "notif.chat.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনার এই নোটিফিকেশন পাঠানো হয়েছে", - "notif.post.cta": "Click here to read the full topic", - "notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.", + "notif.post.cta": "পুরো বিষয়টি পড়তে এখানে ক্লিক করুন", + "notif.post.unsub.info": "আপনার সাবস্ক্রিপশন সেটিংসের কারনে আপনার এই বার্তাটি পাঠানো হয়েছে", "test.text1": "আপনি সঠিকভাবে নোডবিবির জন্য মেইলার সেটাপ করেছেন কিনা নিশ্চিত করার জন্য এই টেষ্ট ইমেইল পাঠানো হয়েছে", "unsub.cta": "সেটিংসগুলো পরিবর্তন করতে এখানে ক্লিক করুন", "closing": "ধন্যবাদ!" diff --git a/public/language/bn/error.json b/public/language/bn/error.json index 137e395821..a8273c1320 100644 --- a/public/language/bn/error.json +++ b/public/language/bn/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "আপনি নিজের পোস্টে ভোট দিতে পারবেন না।", "already-favourited": "আপনি ইতিমধ্যে এই পোষ্টটি পছন্দের তালিকায় যোগ করেছেন", "already-unfavourited": "আপনি ইতিমধ্যে এই পোষ্টটি আপনার পছন্দের তালিকা থেকে সরিয়ে ফেলেছেন", "cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!", diff --git a/public/language/bn/modules.json b/public/language/bn/modules.json index 4c586d7150..dc26f2fd17 100644 --- a/public/language/bn/modules.json +++ b/public/language/bn/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/bn/search.json b/public/language/bn/search.json index 66f4c69a7e..12552601c6 100644 --- a/public/language/bn/search.json +++ b/public/language/bn/search.json @@ -29,7 +29,7 @@ "number-of-views": "Number of views", "topic-start-date": "Topic start date", "username": "Username", - "category": "Category", + "category": "বিভাগ", "descending": "In descending order", "ascending": "In ascending order", "save-preferences": "Save preferences", diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json index 79efe5eab8..6808b0a2dd 100644 --- a/public/language/bn/topic.json +++ b/public/language/bn/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "নতুন থেকে পুরাতন", "most_votes": "সর্বোচ্চ ভোট", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/bn/user.json b/public/language/bn/user.json index 85f91b3a97..93f901f128 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -58,7 +58,7 @@ "upload_picture": "ছবি আপলোড করুন", "upload_a_picture": "ছবি (একটি) আপলোড করুন", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "আপনি কেবলমাত্র PNG, JPG অথবা GIF ফাইল আপলোড করতে পারবেন", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "সেটিংস", "show_email": "আমার ইমেইল দেখাও", "show_fullname": "আমার সম্পূর্ণ নাম দেখাও", diff --git a/public/language/cs/error.json b/public/language/cs/error.json index f677568322..3efb6790f4 100644 --- a/public/language/cs/error.json +++ b/public/language/cs/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Nemůžete hlasovat pro svůj vlastní příspěvek", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "Nemůžete zakazovat ostatní administrátory!", diff --git a/public/language/cs/modules.json b/public/language/cs/modules.json index 43d2a86062..cd4fe64059 100644 --- a/public/language/cs/modules.json +++ b/public/language/cs/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json index 27915ee85f..14713c8f27 100644 --- a/public/language/cs/topic.json +++ b/public/language/cs/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/cs/user.json b/public/language/cs/user.json index 2866317dce..ef2e3ba003 100644 --- a/public/language/cs/user.json +++ b/public/language/cs/user.json @@ -58,7 +58,7 @@ "upload_picture": "Nahrát obrázek", "upload_a_picture": "Nahrát obrázek", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Nahrávat lze pouze soubory PNG, JPG a GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Nastavení", "show_email": "Zobrazovat můj email v profilu", "show_fullname": "Zobrazovat celé jméno", diff --git a/public/language/da/error.json b/public/language/da/error.json index 8e3a777613..fb02400438 100644 --- a/public/language/da/error.json +++ b/public/language/da/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Ikke nok tags. Tråde skal have mindst %1 tag(s)", "too-many-tags": "For mange tags. Tråde kan ikke have mere end %1 tag(s)", "file-too-big": "Maksimum filstørrelse er %1 kB - venligst overfør en mindre fil", - "cant-vote-self-post": "Du kan ikke stemme på dit eget indlæg", "already-favourited": "Du har allerede føjet dette indlæg til dine favoritter", "already-unfavourited": "Du har allerede fjernet dette indlæg fra dine favoritter", "cant-ban-other-admins": "Du kan ikke udlukke andre administatrorer!", @@ -59,8 +58,8 @@ "group-name-too-short": "Gruppe navn for kort", "group-already-exists": "Gruppen eksisterer allerede", "group-name-change-not-allowed": "Ændring af gruppe navn er ikke tilladt", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "Allerede medlem af denne gruppe", + "group-not-member": "Ikke medlem af denne gruppe", "group-needs-owner": "Denne grupper kræver mindst én ejer", "group-already-invited": "Denne bruger er allerede blevet inviteret", "group-already-requested": "Din medlemskabs anmodning er allerede blevet afsendt", diff --git a/public/language/da/global.json b/public/language/da/global.json index 7641d69280..2b0efe6d46 100644 --- a/public/language/da/global.json +++ b/public/language/da/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "indsendt %1 af gæst", "posted_ago_by": "indsendt %1 siden af %2", "posted_ago": "Indsendt %1 siden", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "skrevet i %1", + "posted_in_by": "skrevet i %1 af %2", "posted_in_ago": "skrivet i %1 %2", "posted_in_ago_by": "skrevet i %1 %2 af %3", "posted_in_ago_by_guest": "insendt i %1 %2 siden af gæst", diff --git a/public/language/da/modules.json b/public/language/da/modules.json index 71b98a18c7..a15c48fffd 100644 --- a/public/language/da/modules.json +++ b/public/language/da/modules.json @@ -23,8 +23,11 @@ "composer.discard": "Er du sikker på at du vil kassere dette indlæg?", "composer.submit_and_lock": "Send og lås", "composer.toggle_dropdown": "Skift mellem dropdown", - "composer.uploading": "Uploading %1", + "composer.uploading": "Uploader %1", "bootbox.ok": "OK", "bootbox.cancel": "Annuller", - "bootbox.confirm": "Bekræft" + "bootbox.confirm": "Bekræft", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/da/notifications.json b/public/language/da/notifications.json index 0379b3b8c8..aa278bfca8 100644 --- a/public/language/da/notifications.json +++ b/public/language/da/notifications.json @@ -12,8 +12,8 @@ "you_have_unread_notifications": "Du har ulæste notifikationer.", "new_message_from": "Ny besked fra %1", "upvoted_your_post_in": "%1 har upvotet dit indlæg i %2.", - "moved_your_post": "%1 has moved your post to %2", - "moved_your_topic": "%1 has moved %2", + "moved_your_post": "%1 har flyttet dit indlæg til %2", + "moved_your_topic": "%1 har flyttet %2", "favourited_your_post_in": "%1 har favoriseret dit indlæg i %2.", "user_flagged_post_in": "%1 har anmeldt et indlæg i %2", "user_posted_to": "%1 har skrevet et svar til: %2", diff --git a/public/language/da/pages.json b/public/language/da/pages.json index a615f32452..cb7115dc02 100644 --- a/public/language/da/pages.json +++ b/public/language/da/pages.json @@ -24,9 +24,9 @@ "chats": "Chats", "chat": "Chatter med %1", "account/edit": "Redigere \"%1\"", - "account/edit/password": "Editing password of \"%1\"", - "account/edit/username": "Editing username of \"%1\"", - "account/edit/email": "Editing email of \"%1\"", + "account/edit/password": "Redigerer adgangskode for \"%1\"", + "account/edit/username": "Redigerer brugernavn for \"%1\"", + "account/edit/email": "Redigerer email for \"%1\"", "account/following": "Personer som %1 følger", "account/followers": "Personer som følger %1", "account/posts": "Indlæg oprettet af %1", @@ -37,5 +37,5 @@ "account/watched": "Tråde fulgt af %1", "maintenance.text": "%1 er under vedligeholdelse. Kom venligst tilbage senere.", "maintenance.messageIntro": "Administratoren har yderligere vedlagt denne besked:", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 er ikke tilgængelig på grund af overbelastning. Venligst kom tilbage senere." } \ No newline at end of file diff --git a/public/language/da/topic.json b/public/language/da/topic.json index a90ea673d5..4824da48dc 100644 --- a/public/language/da/topic.json +++ b/public/language/da/topic.json @@ -25,7 +25,7 @@ "tools": "Værktøjer", "flag": "Marker", "locked": "Låst", - "bookmark_instructions": "Click here to return to the last unread post in this thread.", + "bookmark_instructions": "Klik her for at returnere til det seneste ulæste indlæg i denne tråd.", "flag_title": "Meld dette indlæg til moderation", "flag_success": "Dette indlæg er blevet meldt til moderation.", "deleted_message": "Denne tråd er blevet slettet. Kun brugere med emne behandlings privilegier kan se den.", @@ -96,8 +96,12 @@ "newest_to_oldest": "Nyeste til ældste", "most_votes": "Flest stemmer", "most_posts": "Flest indlæg", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", - "offensive": "Offensive", + "offensive": "Stødende", "custom-flag-reason": "Enter a flagging reason" } \ No newline at end of file diff --git a/public/language/da/user.json b/public/language/da/user.json index aa2250f5fa..1eaefaf54a 100644 --- a/public/language/da/user.json +++ b/public/language/da/user.json @@ -30,16 +30,16 @@ "signature": "Signatur", "birthday": "Fødselsdag", "chat": "Chat", - "chat_with": "Chat with %1", + "chat_with": "Chat med %1", "follow": "Følg", "unfollow": "Følg ikke", "more": "Mere", "profile_update_success": "Din profil blev opdateret", "change_picture": "Skift billede", - "change_username": "Change Username", - "change_email": "Change Email", + "change_username": "Ændre brugernavn", + "change_email": "Ændre email", "edit": "Rediger", - "default_picture": "Default Icon", + "default_picture": "Standard ikon", "uploaded_picture": "Upload billede", "upload_new_picture": "Upload nyt billede", "upload_new_picture_from_url": "Upload nyt billede fra URL", @@ -54,11 +54,11 @@ "confirm_password": "Bekræft kodeord", "password": "Kodeord", "username_taken_workaround": "Det valgte brugernavn er allerede taget, så vi har ændret det en smule. Du hedder nu %1", - "password_same_as_username": "Your password is the same as your username, please select another password.", + "password_same_as_username": "Din adgangskode er det samme som dit brugernavn, vælg venligst en anden adgangskode.", "upload_picture": "Upload billede", "upload_a_picture": "Upload et billede", "remove_uploaded_picture": "Fjern uploaded billede", - "image_spec": "Du kan kun uploade PNG, JPG eller GIF billeder", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Indstillinger", "show_email": "Vis min emailaddresse", "show_fullname": "Vis mit fulde navn", @@ -92,9 +92,9 @@ "grouptitle": "Vælg gruppe titlen du gerne vil fremvise", "no-group-title": "Ingen gruppe titel", "select-skin": "Vælg et skin", - "select-homepage": "Select a Homepage", - "homepage": "Homepage", - "homepage_description": "Select a page to use as the forum homepage or 'None' to use the default homepage.", + "select-homepage": "Vælg en hjemmeside", + "homepage": "Hjemmeside", + "homepage_description": "Vælg en side som forummets hjemmeside, eller 'Ingen' for at bruge standard hjemmesiden.", "custom_route": "Custom Homepage Route", "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", "sso.title": "Single Sign-on Services", diff --git a/public/language/de/error.json b/public/language/de/error.json index 704bf500b8..e4918e8800 100644 --- a/public/language/de/error.json +++ b/public/language/de/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Nicht genügend Tags. Themen müssen mindestens %1 Tag(s) enthalten", "too-many-tags": "Zu viele Tags. Themen dürfen nicht mehr als %1 Tag(s) enthalten", "file-too-big": "Die maximale Dateigröße ist %1 kB, bitte laden Sie eine kleinere Datei hoch.", - "cant-vote-self-post": "Du kannst deinen eigenen Beitrag nicht bewerten", "already-favourited": "Dieser Beitrag ist bereits in deinen Favoriten enthalten", "already-unfavourited": "Du hast diesen Beitrag bereits aus deinen Favoriten entfernt", "cant-ban-other-admins": "Du kannst andere Administratoren nicht sperren!", @@ -59,8 +58,8 @@ "group-name-too-short": "Gruppenname zu kurz", "group-already-exists": "Gruppe existiert bereits", "group-name-change-not-allowed": "Du kannst den Namen der Gruppe nicht ändern", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "Du bist bereits Teil dieser Gruppe", + "group-not-member": "Du bist kein Mitglied dieser Gruppe", "group-needs-owner": "Diese Gruppe muss mindestens einen Besitzer vorweisen", "group-already-invited": "Dieser Benutzer wurde bereits eingeladen", "group-already-requested": "Deine Mitgliedsanfrage wurde bereits eingereicht", diff --git a/public/language/de/global.json b/public/language/de/global.json index 88db392aee..8e165959e9 100644 --- a/public/language/de/global.json +++ b/public/language/de/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "%1 von einem Gast geschrieben", "posted_ago_by": "%1 von %2 geschrieben", "posted_ago": "%1 geschrieben", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "Verfasst in %1", + "posted_in_by": "verfasst in %1 von %2", "posted_in_ago": "Verfasst in %1 %2", "posted_in_ago_by": "Verfasst in %1 %2 von %3", "posted_in_ago_by_guest": "verfasst in %1 %2 von einem Gast", diff --git a/public/language/de/modules.json b/public/language/de/modules.json index 00c80cc01f..4c0a2058d1 100644 --- a/public/language/de/modules.json +++ b/public/language/de/modules.json @@ -23,8 +23,11 @@ "composer.discard": "Bist du sicher, dass du diesen Beitrag verwerfen möchtest?", "composer.submit_and_lock": "Einreichen und Sperren", "composer.toggle_dropdown": "Menu aus-/einblenden", - "composer.uploading": "Uploading %1", + "composer.uploading": "Lade %1 hoch", "bootbox.ok": "OK", "bootbox.cancel": "Abbrechen", - "bootbox.confirm": "Bestätigen" + "bootbox.confirm": "Bestätigen", + "cover.dragging_title": "Titelbildpositionierung", + "cover.dragging_message": "Ziehe das Titelbild an die gewünschte Position und klicke auf \"Speichern\"", + "cover.saved": "Titelbild und -position gespeichert" } \ No newline at end of file diff --git a/public/language/de/notifications.json b/public/language/de/notifications.json index b48c212214..8b7f000672 100644 --- a/public/language/de/notifications.json +++ b/public/language/de/notifications.json @@ -12,8 +12,8 @@ "you_have_unread_notifications": "Du hast ungelesene Benachrichtigungen.", "new_message_from": "Neue Nachricht von %1", "upvoted_your_post_in": "%1 hat deinen Beitrag in %2 positiv bewertet.", - "moved_your_post": "%1 has moved your post to %2", - "moved_your_topic": "%1 has moved %2", + "moved_your_post": "%1 hat deinen Beitrag nach %2 verschoben.", + "moved_your_topic": "%1 hat %2 verschoben.", "favourited_your_post_in": "%1 hat deinen Beitrag in %2 favorisiert.", "user_flagged_post_in": "%1 hat einen Beitrag in %2 gemeldet", "user_posted_to": "%1 hat auf %2 geantwortet.", diff --git a/public/language/de/pages.json b/public/language/de/pages.json index 11a73bc94c..adf3339f1d 100644 --- a/public/language/de/pages.json +++ b/public/language/de/pages.json @@ -24,9 +24,9 @@ "chats": "Chats", "chat": "Chatte mit %1", "account/edit": "Bearbeite %1", - "account/edit/password": "Editing password of \"%1\"", - "account/edit/username": "Editing username of \"%1\"", - "account/edit/email": "Editing email of \"%1\"", + "account/edit/password": "Bearbeite Passwort von \"%1\"", + "account/edit/username": "Bearbeite Benutzernamen von \"%1\"", + "account/edit/email": "Bearbeite E-Mail von \"%1\"", "account/following": "Nutzer, die %1 folgt", "account/followers": "Nutzer, die %1 folgen", "account/posts": "Beiträge von %1", @@ -37,5 +37,5 @@ "account/watched": "Themen angeschaut von %1", "maintenance.text": "%1 befindet sich derzeit in der Wartung. Bitte komm später wieder.", "maintenance.messageIntro": "Zusätzlich hat der Administrator diese Nachricht hinterlassen:", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 ist momentan aufgrund von Überlastung nicht verfügbar. Bitte komm später wieder." } \ No newline at end of file diff --git a/public/language/de/topic.json b/public/language/de/topic.json index 056d7a6737..0dfbd18ef1 100644 --- a/public/language/de/topic.json +++ b/public/language/de/topic.json @@ -96,8 +96,12 @@ "newest_to_oldest": "Neuste zuerst", "most_votes": "Die meisten Stimmen", "most_posts": "Die meisten Beiträge", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Stattdessen ein neues Thema erstellen?", + "stale.warning": "Das Thema auf das du antworten möchtest ist ziemlich alt. Möchtest du stattdessen ein neues Thema erstellen und auf dieses in deiner Antwort hinweisen?", + "stale.create": "Ein neues Thema erstellen", + "stale.reply_anyway": "Auf dieses Thema trotzdem antworten", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", - "offensive": "Offensive", - "custom-flag-reason": "Enter a flagging reason" + "offensive": "Beleidigend", + "custom-flag-reason": "Gib einen Grund für die Markierung ein" } \ No newline at end of file diff --git a/public/language/de/user.json b/public/language/de/user.json index 0ae7801ae1..53bac70aa3 100644 --- a/public/language/de/user.json +++ b/public/language/de/user.json @@ -30,16 +30,16 @@ "signature": "Signatur", "birthday": "Geburtstag", "chat": "Chat", - "chat_with": "Chat with %1", + "chat_with": "Chat mit %1", "follow": "Folgen", "unfollow": "Nicht mehr folgen", "more": "Mehr", "profile_update_success": "Profil erfolgreich aktualisiert!", "change_picture": "Profilbild ändern", - "change_username": "Change Username", - "change_email": "Change Email", + "change_username": "Benutzernamen ändern", + "change_email": "E-Mail ändern", "edit": "Ändern", - "default_picture": "Default Icon", + "default_picture": "Standardsymbol", "uploaded_picture": "Hochgeladene Bilder", "upload_new_picture": "Neues Bild hochladen", "upload_new_picture_from_url": "Neues Bild von URL hochladen", @@ -58,7 +58,7 @@ "upload_picture": "Bild hochladen", "upload_a_picture": "Ein Bild hochladen", "remove_uploaded_picture": "Hochgeladenes Bild entfernen", - "image_spec": "Sie dürfen nur Dateien vom Typ PNG, JPG oder GIF hochladen", + "image_spec": "Du solltest nur PNG-, JPG- oder BMP-Dateien hochladen", "settings": "Einstellungen", "show_email": "Zeige meine E-Mail Adresse an.", "show_fullname": "Zeige meinen kompletten Namen an", @@ -92,11 +92,11 @@ "grouptitle": "Wähle den anzuzeigenden Gruppen Titel aus", "no-group-title": "Kein Gruppentitel", "select-skin": "Einen Skin auswählen", - "select-homepage": "Select a Homepage", - "homepage": "Homepage", - "homepage_description": "Select a page to use as the forum homepage or 'None' to use the default homepage.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "Eine Startseite auswählen", + "homepage": "Startseite", + "homepage_description": "Wähle eine Seite die als Forumstartseite benutzt werden soll aus oder 'Keine' um die Standardstartseite zu verwenden.", + "custom_route": "Eigener Startseitenpfad", + "custom_route_help": "Gib hier einen Pfadnamen ohne vorangehenden Slash ein (z.B. \"recent\" oder \"popular\")", "sso.title": "Einmalanmeldungsdienste", "sso.associated": "Verbunden mit", "sso.not-associated": "Hier klicken um Dich mit %1 zu verbinden" diff --git a/public/language/el/error.json b/public/language/el/error.json index 007c6e2978..2b18e271de 100644 --- a/public/language/el/error.json +++ b/public/language/el/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Δεν μπορείς να ψηφίσεις την δημοσίευσή σου", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "Δεν μπορείς να αποκλείσεις άλλους διαχειριστές!", diff --git a/public/language/el/modules.json b/public/language/el/modules.json index f2a6f3a7e2..a47af0e58a 100644 --- a/public/language/el/modules.json +++ b/public/language/el/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/el/topic.json b/public/language/el/topic.json index c05bdbeb98..3a86b8ac6c 100644 --- a/public/language/el/topic.json +++ b/public/language/el/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Νεότερο προς Παλαιότερο", "most_votes": "Περισσότερες ψήφοι", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/el/user.json b/public/language/el/user.json index d94895fdd4..530635982c 100644 --- a/public/language/el/user.json +++ b/public/language/el/user.json @@ -58,7 +58,7 @@ "upload_picture": "Ανέβασμα φωτογραφίας", "upload_a_picture": "Ανέβασε μια φωτογραφία", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Μπορείς να ανεβάσεις αρχεία τύπου PNG, JPG ή GIF μόνο", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Επιλογές", "show_email": "Εμφάνιση του email μου", "show_fullname": "Show My Full Name", diff --git a/public/language/en@pirate/error.json b/public/language/en@pirate/error.json index 4cf3ab8f4e..c9751317f1 100644 --- a/public/language/en@pirate/error.json +++ b/public/language/en@pirate/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/en@pirate/modules.json b/public/language/en@pirate/modules.json index 2a8d53b65f..7d2111c556 100644 --- a/public/language/en@pirate/modules.json +++ b/public/language/en@pirate/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/en@pirate/topic.json b/public/language/en@pirate/topic.json index 49107da35d..d3eefbba08 100644 --- a/public/language/en@pirate/topic.json +++ b/public/language/en@pirate/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/en@pirate/user.json b/public/language/en@pirate/user.json index 4f4841504b..95531ce7b3 100644 --- a/public/language/en@pirate/user.json +++ b/public/language/en@pirate/user.json @@ -58,7 +58,7 @@ "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or GIF files", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Settings", "show_email": "Show My Email", "show_fullname": "Show My Full Name", diff --git a/public/language/en_GB/error.json b/public/language/en_GB/error.json index 720541d0c1..4159d211d8 100644 --- a/public/language/en_GB/error.json +++ b/public/language/en_GB/error.json @@ -62,7 +62,6 @@ "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", diff --git a/public/language/en_GB/modules.json b/public/language/en_GB/modules.json index 673ad026a9..6bb97b68a4 100644 --- a/public/language/en_GB/modules.json +++ b/public/language/en_GB/modules.json @@ -28,5 +28,9 @@ "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/en_GB/topic.json b/public/language/en_GB/topic.json index c26d0c05f8..dcc651fc24 100644 --- a/public/language/en_GB/topic.json +++ b/public/language/en_GB/topic.json @@ -116,7 +116,11 @@ "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)\n\n", "spam": "Spam", "offensive": "Offensive", diff --git a/public/language/en_GB/user.json b/public/language/en_GB/user.json index 15cf8d7405..c789570359 100644 --- a/public/language/en_GB/user.json +++ b/public/language/en_GB/user.json @@ -62,7 +62,7 @@ "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture" : "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or GIF files", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Settings", "show_email": "Show My Email", diff --git a/public/language/en_US/error.json b/public/language/en_US/error.json index cae39a519c..2789d31b2d 100644 --- a/public/language/en_US/error.json +++ b/public/language/en_US/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favorited this post", "already-unfavourited": "You have already unfavorited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/en_US/modules.json b/public/language/en_US/modules.json index 9280b26f21..b089365c68 100644 --- a/public/language/en_US/modules.json +++ b/public/language/en_US/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/en_US/topic.json b/public/language/en_US/topic.json index 19f7e125fc..4b2ea05e59 100644 --- a/public/language/en_US/topic.json +++ b/public/language/en_US/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/en_US/user.json b/public/language/en_US/user.json index 96cbd4ea14..3d59f40954 100644 --- a/public/language/en_US/user.json +++ b/public/language/en_US/user.json @@ -58,7 +58,7 @@ "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or GIF files", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Settings", "show_email": "Show My Email", "show_fullname": "Show My Full Name", diff --git a/public/language/es/error.json b/public/language/es/error.json index e836909902..6b3cf3948b 100644 --- a/public/language/es/error.json +++ b/public/language/es/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Etiquetas insuficientes. El tema debe tener al menos %1 etiqueta(s).", "too-many-tags": "Demasiadas etiquetas. El tema no puede tener mas de %1 etiqueta(s)", "file-too-big": "El tamaño de fichero máximo es de %1 kB - por favor, suba un fichero más pequeño", - "cant-vote-self-post": "No puedes votar tus propios posts", "already-favourited": "Ya ha marcado esta publicación como favorita", "already-unfavourited": "Ya ha desmarcado esta publicación como favorita", "cant-ban-other-admins": "¡No puedes expulsar a otros administradores!", diff --git a/public/language/es/modules.json b/public/language/es/modules.json index 95f7a7bfb6..6badc0c562 100644 --- a/public/language/es/modules.json +++ b/public/language/es/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Subiendo %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancelar", - "bootbox.confirm": "Confirmar" + "bootbox.confirm": "Confirmar", + "cover.dragging_title": "Colocar la foto de portada", + "cover.dragging_message": "Arrastra la foto de portada al lugar que quieras y haz click en \"Guardar\"", + "cover.saved": "Imagen y posición de la foto de portada guardadas." } \ No newline at end of file diff --git a/public/language/es/search.json b/public/language/es/search.json index 06ace7e9a9..aa9fff4136 100644 --- a/public/language/es/search.json +++ b/public/language/es/search.json @@ -4,7 +4,7 @@ "advanced-search": "Búsqueda Avanzada", "in": "En", "titles": "Títulos", - "titles-posts": "Títulos y publicaciones", + "titles-posts": "Títulos y posts", "posted-by": "Publicado por", "in-categories": "En categorías", "search-child-categories": "Buscar categorías hijas", diff --git a/public/language/es/topic.json b/public/language/es/topic.json index 8144941bcb..bab23cdc36 100644 --- a/public/language/es/topic.json +++ b/public/language/es/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Más nuevo a más antiguo", "most_votes": "Mayor número de votos", "most_posts": "Mayor número de mensajes", - "stale_topic_warning": "El tema no ha sido respondido desde hace bastante tiempo. ¿Quieres crear un nuevo tema en su lugar, y crear una referencia de éste en su respuesta?", + "stale.title": "¿Crear un nuevo hilo en su lugar?", + "stale.warning": "El hilo al que estás respondiendo es muy antiguo. ¿Quieres crear un nuevo hilo en su lugar y añadir una referencia a este en tu mensaje?", + "stale.create": "Crear un nuevo hilo", + "stale.reply_anyway": "Publicar este hilo de todos modos.", + "stale.link_back": "Re: [%1](%2)", "spam": "SPAM", "offensive": "Ofensivo", "custom-flag-reason": "Introduzca una razón indicatoria." diff --git a/public/language/es/user.json b/public/language/es/user.json index a3c508ca0b..b89ee677cb 100644 --- a/public/language/es/user.json +++ b/public/language/es/user.json @@ -58,7 +58,7 @@ "upload_picture": "Subir foto", "upload_a_picture": "Subir una foto", "remove_uploaded_picture": "Borrar Imagen subida", - "image_spec": "Sólo puedes subir imágenes en formato PNG, JPG o GIF.", + "image_spec": "Sólo puedes subir imágenes en formato PNG, JPG o BMP", "settings": "Opciones", "show_email": "Mostrar mi correo electrónico", "show_fullname": "Mostrar mi nombre completo", diff --git a/public/language/et/error.json b/public/language/et/error.json index 800f1fc06e..666098ff89 100644 --- a/public/language/et/error.json +++ b/public/language/et/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Liiga vähe märksõnu. Teemadel peab olemalt vähemalt %1 märksõna", "too-many-tags": "Liiga palju märksõnu. Teemadel ei tohi olla rohkem kui %1 märksõna", "file-too-big": "Maksimaalne üleslaetava faili suurus on %1 kB - valige väiksema mahuga fail.", - "cant-vote-self-post": "Sa ei saa hääletada enda postituse poolt", "already-favourited": "Sa juba märkisid selle postituse lemmikuks", "already-unfavourited": "Sa juba eemaldasid selle postituse lemmikute hulgast", "cant-ban-other-admins": "Sa ei saa bannida teisi administraatoreid!", diff --git a/public/language/et/modules.json b/public/language/et/modules.json index 1b7c0c048f..99ab787405 100644 --- a/public/language/et/modules.json +++ b/public/language/et/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "Olgu", "bootbox.cancel": "Katkesta", - "bootbox.confirm": "Kinnita" + "bootbox.confirm": "Kinnita", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/et/topic.json b/public/language/et/topic.json index 4c70410b4d..3dbaa52ace 100644 --- a/public/language/et/topic.json +++ b/public/language/et/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Uuematest vanemateni", "most_votes": "Kõige rohkem hääli", "most_posts": "Kõige rohkem postitusi", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/et/user.json b/public/language/et/user.json index 50916c3513..dae31e0614 100644 --- a/public/language/et/user.json +++ b/public/language/et/user.json @@ -58,7 +58,7 @@ "upload_picture": "Laadi pilt", "upload_a_picture": "Lae pilt üles", "remove_uploaded_picture": "Eemalda üleslaetud pilt", - "image_spec": "Failid peavad olema PNG, JPG või GIF vormingus.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Seaded", "show_email": "Näita minu emaili", "show_fullname": "Näita minu täisnime", diff --git a/public/language/fa_IR/error.json b/public/language/fa_IR/error.json index 93f5c52807..be76d173ad 100644 --- a/public/language/fa_IR/error.json +++ b/public/language/fa_IR/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "شما نمی‌توانید به دیدگاه خود رای بدهید.", "already-favourited": "شما قبلا این دیدگاه را محبوب کرده اید", "already-unfavourited": "شما قبلا این دیدگاه را نامحبوب کرده اید", "cant-ban-other-admins": "شما نمی‌توانید دیگر مدیران را محروم کنید!", diff --git a/public/language/fa_IR/modules.json b/public/language/fa_IR/modules.json index 738df3b45a..6548730c12 100644 --- a/public/language/fa_IR/modules.json +++ b/public/language/fa_IR/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/fa_IR/topic.json b/public/language/fa_IR/topic.json index ec40bfeac5..aea16ab1ab 100644 --- a/public/language/fa_IR/topic.json +++ b/public/language/fa_IR/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "جدید‌ترین به قدیمی‌ترین", "most_votes": "بیشترین رای‌ها", "most_posts": "بیشتر دیدگاه ها", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/fa_IR/user.json b/public/language/fa_IR/user.json index 6e8715d0a6..e0249abb3c 100644 --- a/public/language/fa_IR/user.json +++ b/public/language/fa_IR/user.json @@ -58,7 +58,7 @@ "upload_picture": "بارگذاری تصویر", "upload_a_picture": "یک تصویر بارگذاری کنید", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "شما تنها می‌توانید پرونده‌های PNG‏، JPG و GIF بار بگذارید.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "تنظیمات", "show_email": "نمایش رایانامه‌ام", "show_fullname": "نام کامل من را نشان بده", diff --git a/public/language/fi/error.json b/public/language/fi/error.json index 87f847c387..a7e414f19b 100644 --- a/public/language/fi/error.json +++ b/public/language/fi/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Et voi antaa ääntä omalle viestillesi", "already-favourited": "Tämä viesti on jo suosikeissasi", "already-unfavourited": "Olet jo poistanut tämän viestin suosikeistasi", "cant-ban-other-admins": "Et voi estää muita ylläpitäjiä!", diff --git a/public/language/fi/modules.json b/public/language/fi/modules.json index 76893f6b1a..cd30656984 100644 --- a/public/language/fi/modules.json +++ b/public/language/fi/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/fi/topic.json b/public/language/fi/topic.json index e282dd1775..2372f7707a 100644 --- a/public/language/fi/topic.json +++ b/public/language/fi/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/fi/user.json b/public/language/fi/user.json index ac89e1a1f6..23d6279270 100644 --- a/public/language/fi/user.json +++ b/public/language/fi/user.json @@ -58,7 +58,7 @@ "upload_picture": "Lataa kuva", "upload_a_picture": "Lataa kuva", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Voit ladata vain PNG-, JPG- tai GIF-tiedostoja", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Asetukset", "show_email": "Näytä sähköpostiosoitteeni", "show_fullname": "Näytä koko nimeni", diff --git a/public/language/fr/error.json b/public/language/fr/error.json index 0db2e31173..c2d2e44ef5 100644 --- a/public/language/fr/error.json +++ b/public/language/fr/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Pas assez de mots-clés. Les sujets doivent avoir au moins %1 mots-clé(s).", "too-many-tags": "Trop de mots-clés. Les sujets ne peuvent avoir au plus que %1 mots-clé(s).", "file-too-big": "La taille maximale autorisée pour un fichier est de %1 kb. Veuillez envoyer un fichier plus petit.", - "cant-vote-self-post": "Vous ne pouvez pas voter pour vos propres messages", "already-favourited": "Vous avez déjà mis ce message en favoris", "already-unfavourited": "Vous avez déjà retiré ce message des favoris", "cant-ban-other-admins": "Vous ne pouvez pas bannir les autres administrateurs !", diff --git a/public/language/fr/modules.json b/public/language/fr/modules.json index 8b7892291f..7b175d741d 100644 --- a/public/language/fr/modules.json +++ b/public/language/fr/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Envoi en cours %1", "bootbox.ok": "OK", "bootbox.cancel": "Annuler", - "bootbox.confirm": "Confirmer" + "bootbox.confirm": "Confirmer", + "cover.dragging_title": "Positionnement de la photo de couverture", + "cover.dragging_message": "Déplacez la photo de couverture à la position désiré et cliquez sur \"Enregistrer\"", + "cover.saved": "Photo de couverture et position sauvegardé. " } \ No newline at end of file diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 43b69bfc66..3e513f2d52 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Du plus récent au plus ancien", "most_votes": "Les mieux notés", "most_posts": "Nombre de messages", - "stale_topic_warning": "Le sujet auquel vous répondez est assez ancien. Ne préféreriez-vous pas créer un nouveau sujet à la place, et référencer celui-ci dans votre réponse ?", + "stale.title": "Créer un nouveau sujet à la place ?", + "stale.warning": "Le sujet auquel vous répondez est assez ancien. Ne voudriez-vous pas créer un nouveau sujet à la place et placer une référence vers celui-ci dans votre réponse ?", + "stale.create": "Créer un nouveau sujet", + "stale.reply_anyway": "Répondre à ce sujet quand même", + "stale.link_back": "Re : [%1](%2)", "spam": "Spam", "offensive": "Offensif", "custom-flag-reason": "Entrez une raison pour laquelle vous signalez ce message" diff --git a/public/language/fr/user.json b/public/language/fr/user.json index c3393c3e77..7670b5c2d6 100644 --- a/public/language/fr/user.json +++ b/public/language/fr/user.json @@ -58,7 +58,7 @@ "upload_picture": "Envoyer l'image", "upload_a_picture": "Envoyer une image", "remove_uploaded_picture": "Supprimer l'image envoyée", - "image_spec": "Vous ne pouvez envoyer que des fichiers PNG, JPG ou GIF", + "image_spec": "Vous ne pouvez envoyer que des fichiers PNG, JPG ou BMP", "settings": "Paramètres", "show_email": "Afficher mon email", "show_fullname": "Afficher mon nom complet", diff --git a/public/language/gl/error.json b/public/language/gl/error.json index 892e1d42ec..79659f458b 100644 --- a/public/language/gl/error.json +++ b/public/language/gl/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Non hai etiquetas dabondas. Os temas deben ter %1 etiqueta(s) como mínimo.", "too-many-tags": "Moitas etiquetas. Os temas non poden ter máis de %1 etiqueta(s).", "file-too-big": "O tamaño máximo permitido é %1 kB - por favor, sube un arquivo máis pequeno", - "cant-vote-self-post": "Non podes votar pola túa publicación", "already-favourited": "Marcache como favorita esta publicación", "already-unfavourited": "Desmarcache como favorita esta publicación", "cant-ban-other-admins": "Non podes botar outros administradores!", @@ -73,7 +72,7 @@ "invalid-file": "Arquivo Inválido", "uploads-are-disabled": "As subidas están deshabilitadas", "signature-too-long": "Desculpa, a firma non pode ser maior de %1 carácter(es).", - "about-me-too-long": "Desculpa, o teu \"sobre min\" non pode superar-los %1 caracter(es),", + "about-me-too-long": "Desculpa, o teu \"sobre min\" non pode supera-los %1 caracteres,", "cant-chat-with-yourself": "Non podes falar contigo mesmo!", "chat-restricted": "Este usuario restrinxiu as charlas. Debedes seguirvos antes de que poidas falar con el. ", "too-many-messages": "Estás a enviar moitas mensaxes, por favor, agarda un anaco. ", diff --git a/public/language/gl/modules.json b/public/language/gl/modules.json index 8c9102e625..276bee77cd 100644 --- a/public/language/gl/modules.json +++ b/public/language/gl/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Subindo %1", "bootbox.ok": "De acordo", "bootbox.cancel": "Cancelar", - "bootbox.confirm": "Confirmar" + "bootbox.confirm": "Confirmar", + "cover.dragging_title": "Colocar foto de portada", + "cover.dragging_message": "Arrastra a foto d portada ó lugar que desexes e fai clic en \"Gardar\"", + "cover.saved": "Imaxe e posición da foto de portada gardadas." } \ No newline at end of file diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json index 479618b337..03c0b42d87 100644 --- a/public/language/gl/topic.json +++ b/public/language/gl/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Máis novo a máis antigo", "most_votes": "Maior número de votos", "most_posts": "Maior número de respostas", - "stale_topic_warning": "O tema non ten respostas dende hai bastante tempo. Queres crear un novo tema no seu canto e crear unha referencia deste na publicación?", + "stale.title": "Crear un novo tema no seu lugar?", + "stale.warning": "O tema no que queres publicar é bastante vello. Queres crear un novo tema no seu lugar e incluir unha referencia a este na túa mensaxe?", + "stale.create": "Crear un novo tema", + "stale.reply_anyway": "Publicar neste tema de tódolos xeitos", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Ofensivo", "custom-flag-reason": "Describe o motivo do reporte" diff --git a/public/language/gl/user.json b/public/language/gl/user.json index fc5bb19223..d1c201ff0b 100644 --- a/public/language/gl/user.json +++ b/public/language/gl/user.json @@ -58,7 +58,7 @@ "upload_picture": "Subir foto", "upload_a_picture": "Subir unha foto", "remove_uploaded_picture": "Borrar unha foto subida", - "image_spec": "Só podes subir archivos en formato PNG, JPG ou GIF.", + "image_spec": "Só podes subir imaxes en formato PNG, JPG ou BMP", "settings": "Opcións", "show_email": "Amosa-lo meu Email", "show_fullname": "Amosa-lo meu Nome Completo", @@ -96,7 +96,7 @@ "homepage": "Páxina de inicio", "homepage_description": "Escolla unha páxina para o seu uso habitual como a páxina principal do foro ou \"Ningún\" para empregar a páxina de inicio", "custom_route": "Modificar páxina de ruta", - "custom_route_help": "Introduza o nome de ruta aquí, sen ningunha barra anterior (por exemplo, \"recente\", ou \"popular\")", + "custom_route_help": "Introduza o nome de ruta aquí, sen ningunha barra (por exemplo, \"recente\", ou \"popular\")", "sso.title": "Servizos de Inicio de Sesión Único", "sso.associated": "Asociado con", "sso.not-associated": "Pica aquí para asociarte con" diff --git a/public/language/he/error.json b/public/language/he/error.json index f53a9a7510..e94ba5754f 100644 --- a/public/language/he/error.json +++ b/public/language/he/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "לא ניתן להצביע לפוסט שלך", "already-favourited": "כבר הוספת פוסט זה למועדפים", "already-unfavourited": "כבר הסרת פוסט זה מהמועדפים", "cant-ban-other-admins": "אינך יכול לחסום מנהלים אחרים!", diff --git a/public/language/he/groups.json b/public/language/he/groups.json index 1fa0c01e99..3b5aaf3a28 100644 --- a/public/language/he/groups.json +++ b/public/language/he/groups.json @@ -10,7 +10,7 @@ "pending.reject_all": "דחה הכל", "pending.none": "There are no pending members at this time", "invited.none": "There are no invited members at this time", - "invited.uninvite": "Rescind Invitation", + "invited.uninvite": "בטל הזמנה", "invited.search": "Search for a user to invite to this group", "invited.notification_title": "You have been invited to join %1", "request.notification_title": "Group Membership Request from %1", @@ -20,10 +20,10 @@ "details.title": "פרטי הקבוצה", "details.members": "רשימת חברי הקבוצה", "details.pending": "חברי קבוצה הממתינים לאישור", - "details.invited": "Invited Members", + "details.invited": "חברים מוזמנים", "details.has_no_posts": "חברי הקבוצה הזו לא העלו אף פוסט.", "details.latest_posts": "פוסטים אחרונים", - "details.private": "Private", + "details.private": "פרטי", "details.grant": "Grant/Rescind Ownership", "details.kick": "Kick", "details.owner_options": "ניהול הקבוצה", @@ -37,15 +37,15 @@ "details.badge_text": "Badge Text", "details.userTitleEnabled": "Show Badge", "details.private_help": "If enabled, joining of groups requires approval from a group owner", - "details.hidden": "Hidden", + "details.hidden": "מוסתר", "details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", - "details.delete_group": "Delete Group", + "details.delete_group": "מחק קבוצה", "event.updated": "פרטי הקבוצה עודכנו", "event.deleted": "קבוצת \"%1\" נמחקה", "membership.accept-invitation": "Accept Invitation", "membership.invitation-pending": "Invitation Pending", - "membership.join-group": "Join Group", - "membership.leave-group": "Leave Group", + "membership.join-group": "הצטרף לקבוצה", + "membership.leave-group": "עזוב קבוצה", "membership.reject": "דחה", - "new-group.group_name": "Group Name:" + "new-group.group_name": "שם קבוצה" } \ No newline at end of file diff --git a/public/language/he/login.json b/public/language/he/login.json index 0a21aa92ba..6142a8a045 100644 --- a/public/language/he/login.json +++ b/public/language/he/login.json @@ -1,7 +1,7 @@ { - "username-email": "Username / Email", - "username": "Username", - "email": "Email", + "username-email": "שם משתמש/אימייל", + "username": "שם משתמש", + "email": "אימייל", "remember_me": "זכור אותי?", "forgot_password": "שכחת סיסמתך?", "alternative_logins": "התחבר באמצעות...", diff --git a/public/language/he/modules.json b/public/language/he/modules.json index fc02693c54..5e39866635 100644 --- a/public/language/he/modules.json +++ b/public/language/he/modules.json @@ -16,15 +16,18 @@ "chat.thirty_days": "30 ימים", "chat.three_months": "3 חודשים", "composer.compose": "Compose", - "composer.show_preview": "Show Preview", - "composer.hide_preview": "Hide Preview", + "composer.show_preview": "הצג תצוגה מקדימה", + "composer.hide_preview": "הסתר תצוגה מקדימה", "composer.user_said_in": "%1 אמר ב%2:", "composer.user_said": "%1 אמר:", "composer.discard": "האם למחוק פוסט זה?", "composer.submit_and_lock": "Submit and Lock", "composer.toggle_dropdown": "Toggle Dropdown", - "composer.uploading": "Uploading %1", - "bootbox.ok": "OK", - "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "composer.uploading": "העלאה %1", + "bootbox.ok": "בסדר", + "bootbox.cancel": "בטל", + "bootbox.confirm": "אשר", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/he/recent.json b/public/language/he/recent.json index 7d4d3bf1a9..913388686a 100644 --- a/public/language/he/recent.json +++ b/public/language/he/recent.json @@ -6,7 +6,7 @@ "year": "שנה", "alltime": "כל הזמן", "no_recent_topics": "אין נושאים חדשים", - "no_popular_topics": "There are no popular topics.", + "no_popular_topics": "אין נושאים פופולריים.", "there-is-a-new-topic": "יש נושא חדש.", "there-is-a-new-topic-and-a-new-post": "יש נושא ופוסט חדש.", "there-is-a-new-topic-and-new-posts": "יש נושא ו%1 פוסטים חדשים.", diff --git a/public/language/he/topic.json b/public/language/he/topic.json index 1c496da8e6..5e87dbafb0 100644 --- a/public/language/he/topic.json +++ b/public/language/he/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "מהחדש לישן", "most_votes": "הכי הרבה הצבעות", "most_posts": "הכי הרבה פוסטים", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/he/user.json b/public/language/he/user.json index c0e51fbf68..be35b06e87 100644 --- a/public/language/he/user.json +++ b/public/language/he/user.json @@ -58,7 +58,7 @@ "upload_picture": "העלה תמונה", "upload_a_picture": "העלה תמונה", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "ניתן להעלות תמונות בפורמט PNG, JPG או GIF בלבד", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "הגדרות", "show_email": "פרסם את כתובת האימייל שלי", "show_fullname": "הצג את שמי המלא", diff --git a/public/language/hu/error.json b/public/language/hu/error.json index 38d3763109..9a1dee1cd1 100644 --- a/public/language/hu/error.json +++ b/public/language/hu/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Nem szavazhatsz a saját hozzászólásodra", "already-favourited": "Már bejelölted Kedvencnek ezt a hozzászólást", "already-unfavourited": "Már kivetted a Kedvenceid közül ezt a hozzászólást", "cant-ban-other-admins": "Nem tilthatsz ki másik adminisztrátort!", diff --git a/public/language/hu/modules.json b/public/language/hu/modules.json index 56ad4ac7ca..476f5a1ce4 100644 --- a/public/language/hu/modules.json +++ b/public/language/hu/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json index 542365b1f9..2d97d66729 100644 --- a/public/language/hu/topic.json +++ b/public/language/hu/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/hu/user.json b/public/language/hu/user.json index 2e302dd195..957b5f070a 100644 --- a/public/language/hu/user.json +++ b/public/language/hu/user.json @@ -58,7 +58,7 @@ "upload_picture": "Kép feltöltése", "upload_a_picture": "Egy kép feltöltése", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Csak PNG, JPG vagy GIF kiterjesztésű fájlokat tölthetsz fel", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Beállítások", "show_email": "E-mail címem mutatása", "show_fullname": "A teljes nevem mutatása", diff --git a/public/language/id/error.json b/public/language/id/error.json index e83bf2e4bd..bf90d17b14 100644 --- a/public/language/id/error.json +++ b/public/language/id/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Kamu tidak dapat vote postingan sendiri", "already-favourited": "Post ini sudah kamu favorit", "already-unfavourited": "Postingan ini sudah kamu unfavorit", "cant-ban-other-admins": "Kamu tidak dapat ban admin lainnya!", diff --git a/public/language/id/modules.json b/public/language/id/modules.json index 7dc353508e..e78074ee16 100644 --- a/public/language/id/modules.json +++ b/public/language/id/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/id/register.json b/public/language/id/register.json index 37c26cb4a7..305cb2c19f 100644 --- a/public/language/id/register.json +++ b/public/language/id/register.json @@ -2,7 +2,7 @@ "register": "Daftar", "help.email": "Secara default, emailmu akan disembunyikan dari publik.", "help.username_restrictions": "Nama Pengguna yang unik antara %1 dan %2 karakter. Pengguna lain dapat menyebutmu dengan menggunakan @nama pengguna.", - "help.minimum_password_length": "Panjang passwordmu harus memuat setidaknya %1 karakter.", + "help.minimum_password_length": "Panjang password harus setidaknya %1 karakter.", "email_address": "Alamat Email", "email_address_placeholder": "Masukkan Alamat Email", "username": "Nama Pengguna", diff --git a/public/language/id/topic.json b/public/language/id/topic.json index 3fd78e6eb4..c771884629 100644 --- a/public/language/id/topic.json +++ b/public/language/id/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Terbaru ke Terlama", "most_votes": "Vote terbanyak", "most_posts": "Postingan terbanyak", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/id/user.json b/public/language/id/user.json index 46762c3570..d9cb3ed1de 100644 --- a/public/language/id/user.json +++ b/public/language/id/user.json @@ -58,7 +58,7 @@ "upload_picture": "Unggah gambar/foto", "upload_a_picture": "Unggah sebuah gambar/foto", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Kamu hanya diijinkan mengunggah berkas dengan format PNG, JPG, atau GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Pengaturan", "show_email": "Tampilkan Email Saya", "show_fullname": "Tampilkan Nama Lengkap Saya", diff --git a/public/language/it/error.json b/public/language/it/error.json index b4f373c864..4ea8d69813 100644 --- a/public/language/it/error.json +++ b/public/language/it/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Tag non sufficienti. Gli argomenti devono avere almeno %1 Tag", "too-many-tags": "Troppi Tag. Gli argomenti non possono avere più di %1 Tag", "file-too-big": "La dimensione massima consentita è di %1 kB - si prega di caricare un file più piccolo", - "cant-vote-self-post": "Non puoi votare il tuo stesso post", "already-favourited": "Hai già inserito tra i preferiti questo post", "already-unfavourited": "Hai già inserito tra i Non Preferiti questo post", "cant-ban-other-admins": "Non puoi bannare altri amministratori!", diff --git a/public/language/it/modules.json b/public/language/it/modules.json index 03e6d27018..04b4d8df6f 100644 --- a/public/language/it/modules.json +++ b/public/language/it/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Annulla", - "bootbox.confirm": "Conferma" + "bootbox.confirm": "Conferma", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/it/topic.json b/public/language/it/topic.json index 56d6cd7047..f8d8a48d1b 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Da Nuovi a Vecchi", "most_votes": "Più votati", "most_posts": "Ulteriori post", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/it/user.json b/public/language/it/user.json index c0c8933f96..9bd3466159 100644 --- a/public/language/it/user.json +++ b/public/language/it/user.json @@ -58,7 +58,7 @@ "upload_picture": "Carica foto", "upload_a_picture": "Carica una foto", "remove_uploaded_picture": "Elimina foto caricata", - "image_spec": "Puoi caricare solo file PNG, JPG o GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Impostazioni", "show_email": "Mostra la mia Email", "show_fullname": "Vedi il Mio Nome Completo", diff --git a/public/language/ja/error.json b/public/language/ja/error.json index 40f8476647..de02133cd3 100644 --- a/public/language/ja/error.json +++ b/public/language/ja/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "自分のポストに評価することはできません。", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "ほかの管理者を停止することはできません!", diff --git a/public/language/ja/modules.json b/public/language/ja/modules.json index 1daf348dc2..1bfece5756 100644 --- a/public/language/ja/modules.json +++ b/public/language/ja/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json index 8b96257f6a..4e3089c294 100644 --- a/public/language/ja/topic.json +++ b/public/language/ja/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ja/user.json b/public/language/ja/user.json index 4dc2ef0327..dacec887db 100644 --- a/public/language/ja/user.json +++ b/public/language/ja/user.json @@ -58,7 +58,7 @@ "upload_picture": "画像をアップロード", "upload_a_picture": "画像をアップロード", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "PNG、JPGかGIFフォーマットの画像をアップロードしてください。", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "設定", "show_email": "メールアドレスを表示", "show_fullname": "Show My Full Name", diff --git a/public/language/ko/error.json b/public/language/ko/error.json index 0051677e61..726ae49716 100644 --- a/public/language/ko/error.json +++ b/public/language/ko/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "자신의 게시물에는 투표할 수 없습니다.", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "다른 관리자를 차단할 수 없습니다.", diff --git a/public/language/ko/modules.json b/public/language/ko/modules.json index 686e06078b..b398719598 100644 --- a/public/language/ko/modules.json +++ b/public/language/ko/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json index 9b792bea19..3a0319e903 100644 --- a/public/language/ko/topic.json +++ b/public/language/ko/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "최신 순으로 정렬", "most_votes": "추천수 순으로 정렬", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ko/user.json b/public/language/ko/user.json index ff571913d9..f8de5f2bbe 100644 --- a/public/language/ko/user.json +++ b/public/language/ko/user.json @@ -58,7 +58,7 @@ "upload_picture": "사진 업로드", "upload_a_picture": "사진 업로드", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "PNG, JPG, GIF 파일만 업로드할 수 있습니다.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "설정", "show_email": "이메일 공개", "show_fullname": "실명 공개", diff --git a/public/language/lt/error.json b/public/language/lt/error.json index 0674bc3c5d..dbf3491455 100644 --- a/public/language/lt/error.json +++ b/public/language/lt/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Neužteka žymių. Temos turi turėti mažiausiai %1 žyme(s)", "too-many-tags": "Per daug žymių. Temos turi turėti daugiausiai %1 žyme(s)", "file-too-big": "Didžiausias įkelimo dydis yra %1 kB - prašome kelti mažesni failą", - "cant-vote-self-post": "Jūs negalite balsuoti už savo pranešimą", "already-favourited": "Jums jau patinka šis pranešimas", "already-unfavourited": "Jums jau nebepatinka šis pranešimas", "cant-ban-other-admins": "Jūs negalite užblokuoti kitų administratorių!", diff --git a/public/language/lt/modules.json b/public/language/lt/modules.json index 8edd717201..2ce3c13d35 100644 --- a/public/language/lt/modules.json +++ b/public/language/lt/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json index df43294896..c5820d3815 100644 --- a/public/language/lt/topic.json +++ b/public/language/lt/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Nuo naujausių iki seniausių", "most_votes": "Daugiausiai balsų", "most_posts": "Daugiausia įrašų", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/lt/user.json b/public/language/lt/user.json index eee369f195..e2de08e23a 100644 --- a/public/language/lt/user.json +++ b/public/language/lt/user.json @@ -58,7 +58,7 @@ "upload_picture": "Įkelti paveikslėlį", "upload_a_picture": "Įkelti paveikslėlį", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Galite įkelti tik PNG, JPG arba GIF failus", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Nustatymai", "show_email": "Rodyti mano el. paštą viešai", "show_fullname": "Rodyti mano vardą ir pavardę", diff --git a/public/language/ms/error.json b/public/language/ms/error.json index 5273ae3c0c..08762edc17 100644 --- a/public/language/ms/error.json +++ b/public/language/ms/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Tag tidak mencukupi. Topik memerlukan sekurang-kurangnya %1 tag()", "too-many-tags": "Tag terlalu banyak. Topik tidak boleh lebih %1 tag()", "file-too-big": "Maksimum saiz fail yang dibenarkan ialah %1 kB - sila muatnaik fail yang lebih kecil", - "cant-vote-self-post": "Anda tidak boleh mengundi kiriman sendiri", "already-favourited": "Anda telah pun menggemari kiriman ini", "already-unfavourited": "Anda telah pun nyah-gemar kiriman ini", "cant-ban-other-admins": "Anda tidak boleh haramkan admin / pentadbir!", @@ -59,8 +58,8 @@ "group-name-too-short": "Nama kumpulan terlalu pendek", "group-already-exists": "Kumpulan telah wujud", "group-name-change-not-allowed": "Pengubahan nama kumpulan tidak dibenarkan", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "Sudah pun sebahagian dari kumpulan ini", + "group-not-member": "Bukan ahli kumpulan ini", "group-needs-owner": "Kumpulan ini memerlukan sekurang-kurangnya seorang pemilik", "group-already-invited": "Pengguna ini telah pun dijemput", "group-already-requested": "Permintaan anda untuk menjadi telah pun dihantar", diff --git a/public/language/ms/global.json b/public/language/ms/global.json index c60ceb2072..4996ec100f 100644 --- a/public/language/ms/global.json +++ b/public/language/ms/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "dikirim %1 oleh pelawat", "posted_ago_by": "dikirim %1 oleh %2", "posted_ago": "dikirim %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "dikirim pada %1", + "posted_in_by": "dikirim pada %1 oleh %2", "posted_in_ago": "dikirim pada %1 %2", "posted_in_ago_by": "dikirim pada %1 %2 oleh %3", "posted_in_ago_by_guest": "dikirim pada %1 %2 oleh pelawat", diff --git a/public/language/ms/modules.json b/public/language/ms/modules.json index a1f1fb2ca8..5f49a6dddf 100644 --- a/public/language/ms/modules.json +++ b/public/language/ms/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Memuat naik %1", "bootbox.ok": "Ok", "bootbox.cancel": "Batal", - "bootbox.confirm": "Pasti" + "bootbox.confirm": "Pasti", + "cover.dragging_title": "Kedudukan Gambar Muka", + "cover.dragging_message": "Seret gambar muka ke kedudukan yang diingini dan klik \"Simpan\"", + "cover.saved": "Gambar muka dan kedudukan disimpan" } \ No newline at end of file diff --git a/public/language/ms/pages.json b/public/language/ms/pages.json index e6fe498b9d..5658d8b244 100644 --- a/public/language/ms/pages.json +++ b/public/language/ms/pages.json @@ -37,5 +37,5 @@ "account/watched": "Topik Diperhati Oleh %1", "maintenance.text": "%1 sedang berada dalam mod pembaikpulihan. Sila cuba lagi nanti.", "maintenance.messageIntro": "Tambahan, admin meninggalkan mesej ini :", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 tiada buat masa ini kerana permintaan yang berlebihan. Sila datang lagi lain kali." } \ No newline at end of file diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json index d7a1ae3ed9..5ec84f65fd 100644 --- a/public/language/ms/topic.json +++ b/public/language/ms/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Baru ke Lama", "most_votes": "Terbanyak Undi", "most_posts": "Terbanyak Kiriman", - "stale_topic_warning": "Topik yang anda ingin balas sudah terlalu lama. Adakah anda mahu membuka topik baru, dan merujuk kepada topik ini?", + "stale.title": "Bukan topik baru?", + "stale.warning": "Topik yang anda nak balas agak lapuk. Adakah anda ingin buka topik baru dan rujukkan topik ini dalam balasan anda?", + "stale.create": "Buka topik baru", + "stale.reply_anyway": "Tetap balas topik ini", + "stale.link_back": "Bls: [%1](%2)", "spam": "Spam", "offensive": "Menyinggung", "custom-flag-reason": "Nyatakan alasan anda" diff --git a/public/language/ms/user.json b/public/language/ms/user.json index fba7fabbd5..ada284b502 100644 --- a/public/language/ms/user.json +++ b/public/language/ms/user.json @@ -30,7 +30,7 @@ "signature": "Tandatangan", "birthday": "Tarikh lahir", "chat": "Bersembang", - "chat_with": "Chat with %1", + "chat_with": "Sembang dengan %1", "follow": "Ikuti", "unfollow": "Henti mengikuti", "more": "Lagi", @@ -58,7 +58,7 @@ "upload_picture": "Muatnaik gambar", "upload_a_picture": "Muatnaik sekeping gambar", "remove_uploaded_picture": "Buang Gambar Yang Dimuatnaik", - "image_spec": "Anda hanya boleh memuatnaikkan fail PNG, JPG atau GIF", + "image_spec": "Anda hanya boleh muatnaik fail PNG, JPG atau BMP sahaja", "settings": "Tetapan", "show_email": "Tunjukkan emel saya", "show_fullname": "Tunjukkan Nama Penuh", @@ -92,11 +92,11 @@ "grouptitle": "Pilih nama kumpulan yang anda ingin tunjukkan", "no-group-title": "Tiada nama kumpulan", "select-skin": "Pilih skin", - "select-homepage": "Select a Homepage", - "homepage": "Homepage", - "homepage_description": "Select a page to use as the forum homepage or 'None' to use the default homepage.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "Pilih Laman Utama", + "homepage": "Laman Utama", + "homepage_description": "Pilih satu halaman untuk digunakan sebagai Laman Utama forum atau 'Tiada' untuk guna tetapan lalai", + "custom_route": "Laluan Laman Utama Tersuai", + "custom_route_help": "Masukkan nama laluan disini, tanpa garis miring (cth: \"terkini\", atau \"popular\")", "sso.title": "Servis Satu Log Masuk", "sso.associated": "Associated with", "sso.not-associated": "Click here to associate with" diff --git a/public/language/nb/error.json b/public/language/nb/error.json index f80fcbe6cd..828d5f3179 100644 --- a/public/language/nb/error.json +++ b/public/language/nb/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Ikke nok emneord. Emner må ha minst %1.", "too-many-tags": "For mange emneord. Emner kan ikke ha flere enn %1.", "file-too-big": "Største tillatte filstørrelse er %1 kB – vennligst last opp en mindre fil", - "cant-vote-self-post": "Du kan ikke stemme på ditt eget innlegg", "already-favourited": "Du har allerede favorittmerket dette innlegget", "already-unfavourited": "Du har allerede avfavorisert dette innlegget", "cant-ban-other-admins": "Du kan ikke utestenge andre administratorer!", diff --git a/public/language/nb/modules.json b/public/language/nb/modules.json index 8e422b9a47..0a2e6a3b16 100644 --- a/public/language/nb/modules.json +++ b/public/language/nb/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Avbryt", - "bootbox.confirm": "Bekreft" + "bootbox.confirm": "Bekreft", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json index 5b136c1bc1..70c1ac5ff4 100644 --- a/public/language/nb/topic.json +++ b/public/language/nb/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Nyeste til eldste", "most_votes": "Flest stemmer", "most_posts": "Flest innlegg", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/nb/user.json b/public/language/nb/user.json index 139c1bb6de..ed408e51c3 100644 --- a/public/language/nb/user.json +++ b/public/language/nb/user.json @@ -58,7 +58,7 @@ "upload_picture": "Last opp bilde", "upload_a_picture": "Last opp et bilde", "remove_uploaded_picture": "Fjern Opplastet Bilde", - "image_spec": "Du kan bare laste opp PNG, JPG eller GIF-filer", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Innstillinger", "show_email": "Vis min e-post", "show_fullname": "Vis mitt fulle navn", diff --git a/public/language/nl/error.json b/public/language/nl/error.json index 80ab25b776..34dc9092e5 100644 --- a/public/language/nl/error.json +++ b/public/language/nl/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Niet genoeg labels. Onderwerp moeten tenminste %1 label(s) hebben", "too-many-tags": "Teveel labels. Onderwerpen kunnen niet meer dan %1 label(s) hebben", "file-too-big": "Maximum toegestane bestandsgrootte is %1 kB - probeer een kleiner bestand te verzenden", - "cant-vote-self-post": "Het is niet mogelijk om op eigen berichten te stemmen", "already-favourited": "Dit bericht staat al tussen de favorieten", "already-unfavourited": "Dit bericht is al uit favorieten verwijderd", "cant-ban-other-admins": "Het is niet toegestaan andere beheerders te verbannen!", diff --git a/public/language/nl/global.json b/public/language/nl/global.json index 6e9ca559da..916ff8d374 100644 --- a/public/language/nl/global.json +++ b/public/language/nl/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "geplaatst %1 door gast", "posted_ago_by": "geplaatst %1 door %2", "posted_ago": "geplaatst door %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "geplaatst in %1", + "posted_in_by": "geplaatst in %1 door %2", "posted_in_ago": "geplaatst in %1 %2", "posted_in_ago_by": "geplaatst in %1 %2 door %3", "posted_in_ago_by_guest": "geplaatst in %1 %2 door gast", diff --git a/public/language/nl/modules.json b/public/language/nl/modules.json index 672f1dc3e3..d31e411c96 100644 --- a/public/language/nl/modules.json +++ b/public/language/nl/modules.json @@ -23,8 +23,11 @@ "composer.discard": "Bericht plaatsen annuleren?", "composer.submit_and_lock": "Plaats een bericht en vergrendel direct het onderwerp", "composer.toggle_dropdown": "Keuzelijst schakelen", - "composer.uploading": "Uploading %1", + "composer.uploading": "Uploaden van %1", "bootbox.ok": "OK", "bootbox.cancel": "Anuleren", - "bootbox.confirm": "Bevestig" + "bootbox.confirm": "Bevestig", + "cover.dragging_title": "Omslag Foto Positionering", + "cover.dragging_message": "Sleep de omslag foto voor de gewilde positie en klik \"Opslaan\"", + "cover.saved": "Omslag foto en positie opgeslagen" } \ No newline at end of file diff --git a/public/language/nl/pages.json b/public/language/nl/pages.json index 907033da4c..eaf439dbfd 100644 --- a/public/language/nl/pages.json +++ b/public/language/nl/pages.json @@ -35,7 +35,7 @@ "account/favourites": "Favoriete berichten van %1", "account/settings": "Gebruikersinstellingen", "account/watched": "Berichten die door %1 bekeken worden", - "maintenance.text": "%1 is momenteel in onderhoud. Excuses voor het ongemak en probeer het later nog eens", + "maintenance.text": "%1 is momenteel in onderhoud. Excuses voor het ongemak en probeer het later nog eens.", "maintenance.messageIntro": "Daarnaast heeft de beheerder het volgende bericht achtergelaten:", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 is momenteel niet beschikbaar door overmatig gebruikt. Excuses voor het ongemak en probeer het later nog eens." } \ No newline at end of file diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index 27d60cabec..ad7a62de35 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -96,8 +96,12 @@ "newest_to_oldest": "Meest recente berichten bovenaan", "most_votes": "Meeste aantal stemmen", "most_posts": "Meeste aantal reacties", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Een nieuw onderwerp maken in de plaats?", + "stale.warning": "Het onderwerp waar je op antwoord is vrij oud. Zou je graag een nieuw onderwerp maken met een referentie naar dit onderwerp in je antwoord?", + "stale.create": "Maak een nieuw onderwerp", + "stale.reply_anyway": "Antwoord toch op dit onderwerp", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", - "offensive": "Offensive", - "custom-flag-reason": "Enter a flagging reason" + "offensive": "Onbeleefd", + "custom-flag-reason": "Geef een reden voor de melding." } \ No newline at end of file diff --git a/public/language/nl/user.json b/public/language/nl/user.json index 95e6a74b89..1c492e48b2 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -30,7 +30,7 @@ "signature": "Handtekening", "birthday": "Verjaardag", "chat": "Chat", - "chat_with": "Chat with %1", + "chat_with": "Chatten met %1", "follow": "Volgen", "unfollow": "Ontvolgen", "more": "Meer", @@ -58,7 +58,7 @@ "upload_picture": "Upload afbeelding", "upload_a_picture": "Upload een afbeelding", "remove_uploaded_picture": "Verwijder gëuploade foto", - "image_spec": "Alleen afbeeldingsbestanden van het type PNG, JPG/JPEG, of GIF worden ondersteund.", + "image_spec": "U mag alleen PNG, JPG of BMP bestanden uploaden.", "settings": "Instellingen", "show_email": "Inschakelen weergave van e-mailadres op profielpagina", "show_fullname": "Laat mijn volledige naam zien", @@ -92,11 +92,11 @@ "grouptitle": "Selecteer de groepstitel voor weergave", "no-group-title": "Geen groepstitel", "select-skin": "Selecteer een skin", - "select-homepage": "Select a Homepage", - "homepage": "Homepage", - "homepage_description": "Select a page to use as the forum homepage or 'None' to use the default homepage.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "Selecteer een startpagina", + "homepage": "Startpagina", + "homepage_description": "Selecteer een pagina om te gebruiken als startpagina, of selecteer geen om de standaard pagina te gebruiken.", + "custom_route": "Startpagina Route", + "custom_route_help": "Voer een route naam hier, zonder enige voorafgaande schuine streep (zoals, \"recente\" of \"populaire\")", "sso.title": "Single Sign-on Services", "sso.associated": "Geassocieerd met", "sso.not-associated": "Klik hier om geassocieerd te worden met" diff --git a/public/language/pl/error.json b/public/language/pl/error.json index 48ff2aed48..1b405773f0 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Zbyt mało tagów. Tematy muszą posiadać przynajmniej %1 tag(ów)", "too-many-tags": "Zbyt wiele tagów. Tematy nie mogą posiadać więcej niż %1 tag(ów)", "file-too-big": "Maksymalny dopuszczalny rozmiar pliku to %1kB - prosimy przesłać mniejszy plik", - "cant-vote-self-post": "Nie możesz głosować na własny post", "already-favourited": "Już polubiłeś ten post", "already-unfavourited": "Już przestałeś lubić ten post", "cant-ban-other-admins": "Nie możesz zbanować innych adminów!", diff --git a/public/language/pl/modules.json b/public/language/pl/modules.json index efe8b450f8..47a4eb6fa3 100644 --- a/public/language/pl/modules.json +++ b/public/language/pl/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Anuluj", - "bootbox.confirm": "Potwierdź" + "bootbox.confirm": "Potwierdź", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index 12136112f2..9bc4f6d051 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Najpierw najnowsze", "most_votes": "Najwięcej głosów", "most_posts": "Najwięcej postów", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/pl/user.json b/public/language/pl/user.json index 779e1aa2a5..5e4802a3b1 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -58,7 +58,7 @@ "upload_picture": "Prześlij zdjęcie", "upload_a_picture": "Prześlij zdjęcie", "remove_uploaded_picture": "Usuń Przesłane Zdjęcie", - "image_spec": "Możesz przesłać tylko pliki PNG, JPG lub GIF.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Ustawienia", "show_email": "Wyświetlaj mój adres e-mail", "show_fullname": "Wyświetlaj moją pełną nazwę", diff --git a/public/language/pt_BR/error.json b/public/language/pt_BR/error.json index 94f49133f4..9d4558f368 100644 --- a/public/language/pt_BR/error.json +++ b/public/language/pt_BR/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Sem tags suficientes. Tópicos devem ter no mínimo %1 tag(s)", "too-many-tags": "Muitas tags. Tópicos não podem ter mais que %1 tag(s)", "file-too-big": "O tamanho máximo permitido de arquivo é de %1 kB - por favor faça upload de um arquivo menor", - "cant-vote-self-post": "Você não pode votar no seu próprio post", "already-favourited": "Você já adicionou este post aos favoritos", "already-unfavourited": "Você já removeu este post dos favoritos", "cant-ban-other-admins": "Você não pode banir outros administradores!", diff --git a/public/language/pt_BR/modules.json b/public/language/pt_BR/modules.json index d19c5cc8b5..103c81a8e5 100644 --- a/public/language/pt_BR/modules.json +++ b/public/language/pt_BR/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Enviando %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancelar", - "bootbox.confirm": "Confirmar" + "bootbox.confirm": "Confirmar", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/pt_BR/topic.json b/public/language/pt_BR/topic.json index 62a30f1e87..3adb66b4da 100644 --- a/public/language/pt_BR/topic.json +++ b/public/language/pt_BR/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Mais Recente para Mais Antigo", "most_votes": "Mais votados", "most_posts": "Mais posts", - "stale_topic_warning": "O tópico que você está tentando responder é muito velho. Gostaria de criar um novo tópico ao invés disso, e referenciá-lo este em sua resposta?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Ofensivo", "custom-flag-reason": "Informe um motivo para a sinalização" diff --git a/public/language/pt_BR/user.json b/public/language/pt_BR/user.json index 643df3ee7c..b282e24bfb 100644 --- a/public/language/pt_BR/user.json +++ b/public/language/pt_BR/user.json @@ -58,7 +58,7 @@ "upload_picture": "Carregar Foto", "upload_a_picture": "Carregue uma Foto", "remove_uploaded_picture": "Remover Foto Enviada", - "image_spec": "Você pode usar somente arquivos PNG, JPG ou GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Configurações", "show_email": "Mostrar Meu Email", "show_fullname": "Mostrar Meu Nome Completo", diff --git a/public/language/ro/error.json b/public/language/ro/error.json index 10fb322848..09f303afff 100644 --- a/public/language/ro/error.json +++ b/public/language/ro/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Nu poți vota propriul tău mesaj", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "Nu poți bana alți administratori!", diff --git a/public/language/ro/global.json b/public/language/ro/global.json index 191551b1cd..6b956122d8 100644 --- a/public/language/ro/global.json +++ b/public/language/ro/global.json @@ -22,18 +22,18 @@ "pagination.out_of": "%1 din %2", "pagination.enter_index": "Introdu index", "header.admin": "Admin", - "header.categories": "Categories", + "header.categories": "Categorii", "header.recent": "Recente", "header.unread": "Necitite", "header.tags": "Taguri", "header.popular": "Populare", "header.users": "Utilizatori", - "header.groups": "Groups", + "header.groups": "Grupuri", "header.chats": "Conversații", "header.notifications": "Notificări", "header.search": "Căutare", "header.profile": "Profil", - "header.navigation": "Navigation", + "header.navigation": "Navigare", "notifications.loading": "Se încarcă notificările", "chats.loading": "Se încarcă conversațiile", "motd.welcome": "Bine ai venit la NodeBB, platforma de discuții a viitorului.", @@ -52,12 +52,12 @@ "views": "Vizualizări", "reputation": "Reputație", "read_more": "citește mai mult", - "more": "More", + "more": "Mai multe", "posted_ago_by_guest": "postat %1 de Vizitator", "posted_ago_by": "postat %1 de %2", "posted_ago": "postat %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "postat în %1", + "posted_in_by": "postat în %1 de %2", "posted_in_ago": "postat în %1 %2", "posted_in_ago_by": "postat în %1 %2 de %3", "posted_in_ago_by_guest": "postat în %1 %2 de Vizitator", @@ -70,7 +70,7 @@ "recentposts": "Mesaje Recente", "recentips": "Adrese IP autentificate recent", "away": "Plecat", - "dnd": "Do not disturb", + "dnd": "Nu mă deranja", "invisible": "Invizibil", "offline": "Deconectat", "email": "Email", @@ -79,9 +79,9 @@ "guests": "Vizitatori", "updated.title": "Forumul a fost actualizat", "updated.message": "Acest forum a fost actualizat la ultima version. Apasă aici pentru a reîmprospăta pagina.", - "privacy": "Privacy", - "follow": "Follow", - "unfollow": "Unfollow", - "delete_all": "Delete All", - "map": "Map" + "privacy": "Intimitate", + "follow": "Urmăreşte", + "unfollow": "Nu mai urmări", + "delete_all": "Şterge Tot", + "map": "Hartă" } \ No newline at end of file diff --git a/public/language/ro/groups.json b/public/language/ro/groups.json index 721276d096..de4a00d287 100644 --- a/public/language/ro/groups.json +++ b/public/language/ro/groups.json @@ -1,5 +1,5 @@ { - "groups": "Groups", + "groups": "Grupuri", "view_group": "Vezi Grup", "owner": "Group Owner", "new_group": "Create New Group", diff --git a/public/language/ro/modules.json b/public/language/ro/modules.json index 8dd9ea3d42..c3d76d0617 100644 --- a/public/language/ro/modules.json +++ b/public/language/ro/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ro/pages.json b/public/language/ro/pages.json index 5d81331aaa..154c115150 100644 --- a/public/language/ro/pages.json +++ b/public/language/ro/pages.json @@ -13,13 +13,13 @@ "users/map": "User Map", "users/search": "User Search", "notifications": "Notificări", - "tags": "Tags", + "tags": "Taguri", "tag": "Topics tagged under \"%1\"", "register": "Register an account", "login": "Login to your account", "reset": "Reset your account password", - "categories": "Categories", - "groups": "Groups", + "categories": "Categorii", + "groups": "Grupuri", "group": "%1 group", "chats": "Chats", "chat": "Chatting with %1", diff --git a/public/language/ro/search.json b/public/language/ro/search.json index 6af7a31683..6ba92e0b84 100644 --- a/public/language/ro/search.json +++ b/public/language/ro/search.json @@ -1,28 +1,28 @@ { "results_matching": "%1 rezultat(e) pentru \"%2\", (%3 secunde)", - "no-matches": "No matches found", - "advanced-search": "Advanced Search", - "in": "In", - "titles": "Titles", - "titles-posts": "Titles and Posts", - "posted-by": "Posted by", - "in-categories": "In Categories", + "no-matches": "Nu a fost găsit nici un rezultat", + "advanced-search": "Căutare avansată", + "in": "În", + "titles": "Titluri", + "titles-posts": "Titluri şi Mesaje", + "posted-by": "Postat de", + "in-categories": "În Categorii", "search-child-categories": "Search child categories", - "reply-count": "Reply Count", - "at-least": "At least", - "at-most": "At most", - "post-time": "Post time", - "newer-than": "Newer than", - "older-than": "Older than", - "any-date": "Any date", - "yesterday": "Yesterday", - "one-week": "One week", - "two-weeks": "Two weeks", - "one-month": "One month", - "three-months": "Three months", - "six-months": "Six months", - "one-year": "One year", - "sort-by": "Sort by", + "reply-count": "Numărul de răspunsuri", + "at-least": "Cel puţin", + "at-most": "Cel mult", + "post-time": "Ora mesajului", + "newer-than": "Mai noi decât", + "older-than": "Mai vechi decât", + "any-date": "Orice Dată", + "yesterday": "Ieri", + "one-week": "Acum o săptămână", + "two-weeks": "Două săptămâni", + "one-month": "O lună", + "three-months": "Trei luni", + "six-months": "Şase luni", + "one-year": "Un an", + "sort-by": "Sortează după", "last-reply-time": "Last reply time", "topic-title": "Topic title", "number-of-replies": "Number of replies", diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json index b51b6839e5..d131c5610b 100644 --- a/public/language/ro/topic.json +++ b/public/language/ro/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Noi la Vechi", "most_votes": "Cele mai votate", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ro/user.json b/public/language/ro/user.json index 6d0d199d07..1c2c0dc235 100644 --- a/public/language/ro/user.json +++ b/public/language/ro/user.json @@ -33,7 +33,7 @@ "chat_with": "Chat with %1", "follow": "Urmărește", "unfollow": "Oprește urmărirea", - "more": "More", + "more": "Mai multe", "profile_update_success": "Profilul tău a fost actualizat cu succes!", "change_picture": "Schimbă Poza", "change_username": "Change Username", @@ -58,7 +58,7 @@ "upload_picture": "Uploadează poză", "upload_a_picture": "Uploadează o poză", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Ai voie să uploadezi doar fișiere PNG, JPG sau GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Setări", "show_email": "Arată adresa mea de email", "show_fullname": "Show My Full Name", diff --git a/public/language/ro/users.json b/public/language/ro/users.json index 238636e567..d7a1a72fc4 100644 --- a/public/language/ro/users.json +++ b/public/language/ro/users.json @@ -9,13 +9,13 @@ "filter-by": "Filter By", "online-only": "Online only", "picture-only": "Picture only", - "invite": "Invite", + "invite": "Invită", "invitation-email-sent": "An invitation email has been sent to %1", - "user_list": "User List", - "recent_topics": "Recent Topics", - "popular_topics": "Popular Topics", - "unread_topics": "Unread Topics", - "categories": "Categories", - "tags": "Tags", - "map": "Map" + "user_list": "Listă utilizatori", + "recent_topics": "Subiecte Noi", + "popular_topics": "Subiecte Populare", + "unread_topics": "Subiecte Necitite", + "categories": "Categorii", + "tags": "Taguri", + "map": "Hartă" } \ No newline at end of file diff --git a/public/language/ru/error.json b/public/language/ru/error.json index 427654d068..6b93882e6e 100644 --- a/public/language/ru/error.json +++ b/public/language/ru/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Не хватает тегов. Тема должна иметь как минимум %1 тег(ов)", "too-many-tags": "Слишком много тегов. Тема должна иметь не больше %1 тега(ов)", "file-too-big": "Слишком большой файл. Максимальный размер: %1 Кбайт.", - "cant-vote-self-post": "Вы не можете проголосовать за Ваше сообщение", "already-favourited": "Вы уже добавили это сообщение в избранное", "already-unfavourited": "Вы уже удалили это сообщение из избранного", "cant-ban-other-admins": "Вы не можете забанить других администраторов!", diff --git a/public/language/ru/modules.json b/public/language/ru/modules.json index 2ec5e4306f..68032d3140 100644 --- a/public/language/ru/modules.json +++ b/public/language/ru/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "ОК", "bootbox.cancel": "Отмена", - "bootbox.confirm": "Подтвердить" + "bootbox.confirm": "Подтвердить", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json index c1a98da3b2..b733f7305a 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "От новых к старым", "most_votes": "По голосам", "most_posts": "По количеству ответов", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/ru/user.json b/public/language/ru/user.json index 998520d30f..83a614e156 100644 --- a/public/language/ru/user.json +++ b/public/language/ru/user.json @@ -58,7 +58,7 @@ "upload_picture": "Загрузить фотографию", "upload_a_picture": "Загрузить фотографию", "remove_uploaded_picture": "Удалить загруженные фотографии", - "image_spec": "Поддерживаются только PNG, JPG или GIF файлы", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Настройки", "show_email": "Показывать мой Email", "show_fullname": "Показывать Полное Имя", diff --git a/public/language/rw/error.json b/public/language/rw/error.json index 2dda1ee73a..4c2ebfffdd 100644 --- a/public/language/rw/error.json +++ b/public/language/rw/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Nta tumenyetso turiho duhagije. Ibiganiro bigomba kugira utumenyetso (akamenyetso) nibura %1", "too-many-tags": "Hariho utumenyetso twinshi. Ibiganiro ntibyarenza utumenyetso (akamenyetso) %1", "file-too-big": "Ubunini bwemewe bushoboka bw'ifayilo ni kB %1. Gerageza upakire ifayilo ntoyaho", - "cant-vote-self-post": "Ntabwo wemerewe kwiha amanota", "already-favourited": "Wari wararangije gutonesha iki ngiki", "already-unfavourited": "Wari wararekeye aho gutonesha iki ngiki", "cant-ban-other-admins": "Ntabwo wakwirukana abandi bayobozi!", diff --git a/public/language/rw/modules.json b/public/language/rw/modules.json index c502325b1f..2990e472a1 100644 --- a/public/language/rw/modules.json +++ b/public/language/rw/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json index 81defcbb7b..3643a1332e 100644 --- a/public/language/rw/topic.json +++ b/public/language/rw/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Ibya Vuba Ujya ku bya Kera", "most_votes": "Amajwi yiganje", "most_posts": "Ibyashyizweho byiganje", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/rw/user.json b/public/language/rw/user.json index db6db6ba1c..6ec759ab7d 100644 --- a/public/language/rw/user.json +++ b/public/language/rw/user.json @@ -58,7 +58,7 @@ "upload_picture": "Gushyiraho ifoto", "upload_a_picture": "Shyiraho ifoto", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Wemerewe gushyiraho ifoto iri muri foruma ya PNG, JPG, cyangwa GIF ", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Itunganya", "show_email": "Hagaragazwe Email Yanjye", "show_fullname": "Hagaragazwe Izina Ryuzuye Ryanjye", diff --git a/public/language/sc/error.json b/public/language/sc/error.json index 4cf3ab8f4e..c9751317f1 100644 --- a/public/language/sc/error.json +++ b/public/language/sc/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/sc/modules.json b/public/language/sc/modules.json index 391fdad811..401825cafc 100644 --- a/public/language/sc/modules.json +++ b/public/language/sc/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json index be840735e2..bda28ac947 100644 --- a/public/language/sc/topic.json +++ b/public/language/sc/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sc/user.json b/public/language/sc/user.json index 4fedaf0f10..a9ffcb66e0 100644 --- a/public/language/sc/user.json +++ b/public/language/sc/user.json @@ -58,7 +58,7 @@ "upload_picture": "Càrriga immàgine", "upload_a_picture": "Càrriga un'immàgine", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Podes carrigare isceti files PNG, JPG o GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Sèberos", "show_email": "Ammustra s'Email Mia", "show_fullname": "Show My Full Name", diff --git a/public/language/sk/email.json b/public/language/sk/email.json index d8114d0231..844562b8a6 100644 --- a/public/language/sk/email.json +++ b/public/language/sk/email.json @@ -1,32 +1,32 @@ { - "password-reset-requested": "Password Reset Requested - %1!", - "welcome-to": "Welcome to %1", - "invite": "Invitation from %1", - "greeting_no_name": "Hello", - "greeting_with_name": "Hello %1", - "welcome.text1": "Thank you for registering with %1!", - "welcome.text2": "To fully activate your account, we need to verify that you own the email address you registered with.", - "welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.", - "welcome.cta": "Click here to confirm your email address", - "invitation.text1": "%1 has invited you to join %2", - "invitation.ctr": "Click here to create your account.", - "reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.", - "reset.text2": "To continue with the password reset, please click on the following link:", - "reset.cta": "Click here to reset your password", - "reset.notify.subject": "Password successfully changed", - "reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.", - "reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.", - "digest.notifications": "You have unread notifications from %1:", - "digest.latest_topics": "Latest topics from %1", - "digest.cta": "Click here to visit %1", - "digest.unsub.info": "This digest was sent to you due to your subscription settings.", - "digest.no_topics": "There have been no active topics in the past %1", - "notif.chat.subject": "New chat message received from %1", - "notif.chat.cta": "Click here to continue the conversation", - "notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.", - "notif.post.cta": "Click here to read the full topic", - "notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.", - "test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.", - "unsub.cta": "Click here to alter those settings", - "closing": "Thanks!" + "password-reset-requested": "Vyžiadaná obnova hesla - %1!", + "welcome-to": "Vitajte %1", + "invite": "Pozvánka od %1", + "greeting_no_name": "Ahoj", + "greeting_with_name": "Ahoj %1", + "welcome.text1": "Ďakujeme za registráciu s %1!", + "welcome.text2": "Váš účet bude aktivovaný po overení Vašej email adresy.", + "welcome.text3": "Administrátor prijal Vašu registráciu. Môžete sa prihlásiť na svoj účet.", + "welcome.cta": "Kliknite sem pre potvrdenie Vašej email adresy", + "invitation.text1": "%1 Vás pozval aby ste sa pridali %2", + "invitation.ctr": "Kliknite sem pre vytvorenie účtu", + "reset.text1": "Obdržali sme žiadosť o obnovu Vášho hesla. Ak ste o zmenu hesla nežiadali, prosím ignorujte tento email.", + "reset.text2": "Pre pokračovanie v obnove hesla, kliknite na nasledovný odkaz:", + "reset.cta": "Kliknite sem pre obnovu hesla", + "reset.notify.subject": "Heslo bolo úspešne zmenené", + "reset.notify.text1": "Oznamujeme že %1, bolo Vaše heslo úspešne zmenené.", + "reset.notify.text2": "Ak ste o to nežiadali, kontaktujte čo najskôr administrátora.", + "digest.notifications": "Máte neprečitané upozornenia od %1:", + "digest.latest_topics": "Najnovšie diskusie od %1", + "digest.cta": "Kliknite sem a navštívte %1", + "digest.unsub.info": "Tento oznam ste prijali na základe Vašich nastavení účtu.", + "digest.no_topics": "Neboli žadne aktívne diskusie za posledných %1", + "notif.chat.subject": "Máte novú správu od %1", + "notif.chat.cta": "Kliknite sem pre pokračovanie v konverzácii", + "notif.chat.unsub.info": "Toto upozornenie o správach ste prijali na základe Vašich nastavení účtu.", + "notif.post.cta": "Kliknite sem pre zobrazenie celej diskusie", + "notif.post.unsub.info": "Toto upozornenie o príspevkoch ste prijali na základe Vašich nastavení účtu.", + "test.text1": "Toto je skúšobný email na overenie funkčnosti email aplikácie Vášho NodeBB fóra.", + "unsub.cta": "Kliknite sem pre zmenu týchto nastavení", + "closing": "Ďakujeme!" } \ No newline at end of file diff --git a/public/language/sk/error.json b/public/language/sk/error.json index c0fbf78eeb..d9f7faba24 100644 --- a/public/language/sk/error.json +++ b/public/language/sk/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Nedá sa hlasovať za vlastný príspevok", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "Nemožte zakázať druhých adminov.", diff --git a/public/language/sk/groups.json b/public/language/sk/groups.json index dac30e51b8..2b57a16493 100644 --- a/public/language/sk/groups.json +++ b/public/language/sk/groups.json @@ -1,7 +1,7 @@ { "groups": "Groups", - "view_group": "View Group", - "owner": "Group Owner", + "view_group": "Zobraz skupinu", + "owner": "Majiteľ skupiny", "new_group": "Create New Group", "no_groups_found": "There are no groups to see", "pending.accept": "Accept", diff --git a/public/language/sk/language.json b/public/language/sk/language.json index 8949fa5f3b..674748a327 100644 --- a/public/language/sk/language.json +++ b/public/language/sk/language.json @@ -1,5 +1,5 @@ { - "name": "Slovak", + "name": "Anglicky (Anglicko/Kanada)", "code": "sk", "dir": "ltr" } \ No newline at end of file diff --git a/public/language/sk/modules.json b/public/language/sk/modules.json index f88f61bbf5..6849172112 100644 --- a/public/language/sk/modules.json +++ b/public/language/sk/modules.json @@ -1,10 +1,10 @@ { "chat.chatting_with": "Rozhovor s ", - "chat.placeholder": "Type chat message here, press enter to send", + "chat.placeholder": "Sem napíšte správu, správa sa odošle po stlačení 'enter'", "chat.send": "Odoslať", "chat.no_active": "Nemáte žiadne aktívne konverzácie.", "chat.user_typing": "%1 práve píše ...", - "chat.user_has_messaged_you": "%1 má pre Vás správu.", + "chat.user_has_messaged_you": "%1 Vám zaslal správu.", "chat.see_all": "See all chats", "chat.no-messages": "Please select a recipient to view chat message history", "chat.recent-chats": "Recent Chats", @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sk/notifications.json b/public/language/sk/notifications.json index eff3d2edf5..b44a9af1be 100644 --- a/public/language/sk/notifications.json +++ b/public/language/sk/notifications.json @@ -1,9 +1,9 @@ { "title": "Notifikácie", "no_notifs": "Nemáte žiadne nové notifikácie", - "see_all": "See all notifications", + "see_all": "Zobraz všetky upozornenia", "mark_all_read": "Mark all notifications read", - "back_to_home": "Back to %1", + "back_to_home": "Naspäť na %1", "outgoing_link": "Odkaz mimo fórum", "outgoing_link_message": "You are now leaving %1.", "continue_to": "Continue to %1", diff --git a/public/language/sk/pages.json b/public/language/sk/pages.json index 383796a342..e736d474cc 100644 --- a/public/language/sk/pages.json +++ b/public/language/sk/pages.json @@ -1,8 +1,8 @@ { - "home": "Home", + "home": "Domov", "unread": "Neprečítané príspevky", - "popular-day": "Popular topics today", - "popular-week": "Popular topics this week", + "popular-day": "Dnešné populárne témy", + "popular-week": "Populárne témy tohto týždňa", "popular-month": "Popular topics this month", "popular-alltime": "All time popular topics", "recent": "Najnovšie príspevky", @@ -13,7 +13,7 @@ "users/map": "User Map", "users/search": "User Search", "notifications": "Notifikácie", - "tags": "Tags", + "tags": "Tagy", "tag": "Topics tagged under \"%1\"", "register": "Register an account", "login": "Login to your account", diff --git a/public/language/sk/recent.json b/public/language/sk/recent.json index 123d7f43ed..021be5650e 100644 --- a/public/language/sk/recent.json +++ b/public/language/sk/recent.json @@ -3,7 +3,7 @@ "day": "Deň", "week": "Týždeň", "month": "Mesiac", - "year": "Year", + "year": "Rok", "alltime": "All Time", "no_recent_topics": "Nie sú žiadne posledné témy", "no_popular_topics": "There are no popular topics.", diff --git a/public/language/sk/reset_password.json b/public/language/sk/reset_password.json index cafdfccd4e..b7a0650b70 100644 --- a/public/language/sk/reset_password.json +++ b/public/language/sk/reset_password.json @@ -3,7 +3,7 @@ "update_password": "Upraviť heslo", "password_changed.title": "Heslo zmenené", "password_changed.message": "

Heslo bolo úspešne zmenené, prihláste sa znovu prosím.", - "wrong_reset_code.title": "Zlý kód", + "wrong_reset_code.title": "Nesprávny kód na obnovenie", "wrong_reset_code.message": "Bol zadaný zlý kód. Zadajte ho prosím znovu, alebo si nechajte poslať nový.", "new_password": "Nové heslo", "repeat_password": "Potvrdenie hesla", diff --git a/public/language/sk/search.json b/public/language/sk/search.json index 277c0a32bc..7905005be8 100644 --- a/public/language/sk/search.json +++ b/public/language/sk/search.json @@ -1,7 +1,7 @@ { "results_matching": "%1 result(s) matching \"%2\", (%3 seconds)", "no-matches": "No matches found", - "advanced-search": "Advanced Search", + "advanced-search": "Rozšírené hľadanie", "in": "In", "titles": "Titles", "titles-posts": "Titles and Posts", diff --git a/public/language/sk/success.json b/public/language/sk/success.json index 3f5bb0b0a7..626f0bcd9f 100644 --- a/public/language/sk/success.json +++ b/public/language/sk/success.json @@ -2,5 +2,5 @@ "success": "Úspech.", "topic-post": "Úspešne ste pridali nový príspevok.", "authentication-successful": "Autorizácia prebehla úspešne.", - "settings-saved": "Nadstavenia uložené." + "settings-saved": "Nastavenia uložené." } \ No newline at end of file diff --git a/public/language/sk/tags.json b/public/language/sk/tags.json index c416d8d4ec..3b3f6d8718 100644 --- a/public/language/sk/tags.json +++ b/public/language/sk/tags.json @@ -1,7 +1,7 @@ { "no_tag_topics": "There are no topics with this tag.", - "tags": "Tags", + "tags": "Tagy", "enter_tags_here": "Enter tags here, between %1 and %2 characters each.", - "enter_tags_here_short": "Enter tags...", - "no_tags": "There are no tags yet." + "enter_tags_here_short": "Zadaj tagy...", + "no_tags": "Nie sú tu zatiaľ žiadne tagy" } \ No newline at end of file diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json index 9a81d85cb4..339f492c94 100644 --- a/public/language/sk/topic.json +++ b/public/language/sk/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sk/user.json b/public/language/sk/user.json index 3682b618ad..83b60897f6 100644 --- a/public/language/sk/user.json +++ b/public/language/sk/user.json @@ -2,8 +2,8 @@ "banned": "Zakázaný", "offline": "Offline", "username": "Uživateľské meno", - "joindate": "Join Date", - "postcount": "Post Count", + "joindate": "Dátum registrácie", + "postcount": "Počet príspevkov", "email": "Email", "confirm_email": "Confirm Email", "ban_account": "Ban Account", @@ -58,7 +58,7 @@ "upload_picture": "Nahrať obrázok", "upload_a_picture": "Nahrať obrázok", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Môžeš pridať len obrázky typu PNG, JPG alebo GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Nastavenia", "show_email": "Zobrazovať môj email v profile", "show_fullname": "Show My Full Name", diff --git a/public/language/sk/users.json b/public/language/sk/users.json index 0b4cad215b..1de5062fac 100644 --- a/public/language/sk/users.json +++ b/public/language/sk/users.json @@ -16,6 +16,6 @@ "popular_topics": "Popular Topics", "unread_topics": "Unread Topics", "categories": "Categories", - "tags": "Tags", + "tags": "Tagy", "map": "Map" } \ No newline at end of file diff --git a/public/language/sl/error.json b/public/language/sl/error.json index cbe0e2eb20..b4b0dc8897 100644 --- a/public/language/sl/error.json +++ b/public/language/sl/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Ni dovolj oznak. Tema mora vsebovati vsaj %1 znak(ov)", "too-many-tags": "Preveč oznak. Tema ne sme imeti več kot %1 znak(ov)", "file-too-big": "Največja dovoljena velikost datoteke je %1 kB - prosimo naložite manjšo datoteko", - "cant-vote-self-post": "Ne morete glasovati za svojo objavo", "already-favourited": "To objavo ste že dodali med priljubljene", "already-unfavourited": "To objavo ste že odstranili iz priljubljenih", "cant-ban-other-admins": "Ne morete blokirati drugih administratorjev!", diff --git a/public/language/sl/modules.json b/public/language/sl/modules.json index a98131711a..ab7048bbfa 100644 --- a/public/language/sl/modules.json +++ b/public/language/sl/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "Vredu", "bootbox.cancel": "Prekliči", - "bootbox.confirm": "Potrdi" + "bootbox.confirm": "Potrdi", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json index 251fb6206d..f2b6ea8b6a 100644 --- a/public/language/sl/topic.json +++ b/public/language/sl/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Od novejšega do starejšega", "most_votes": "Največ glasov", "most_posts": "Največ objav", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sl/user.json b/public/language/sl/user.json index 5164354e1c..f25c54c9aa 100644 --- a/public/language/sl/user.json +++ b/public/language/sl/user.json @@ -58,7 +58,7 @@ "upload_picture": "Naloži fotografijo", "upload_a_picture": "Naloži fotografijo", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Lahko naložiš fotografije formata PNG, JPG ali GIF.", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Nastavitve.", "show_email": "Pokaži moj e-poštni naslov.", "show_fullname": "Pokaži moj ime in priimek.", diff --git a/public/language/sr/error.json b/public/language/sr/error.json index 3384a2f3cd..cb440dbe73 100644 --- a/public/language/sr/error.json +++ b/public/language/sr/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/sr/modules.json b/public/language/sr/modules.json index b3dc55b245..e1410e6399 100644 --- a/public/language/sr/modules.json +++ b/public/language/sr/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json index 59bd1d8d5e..413f764d39 100644 --- a/public/language/sr/topic.json +++ b/public/language/sr/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sr/user.json b/public/language/sr/user.json index cf48284b19..cc69327a27 100644 --- a/public/language/sr/user.json +++ b/public/language/sr/user.json @@ -58,7 +58,7 @@ "upload_picture": "Upload picture", "upload_a_picture": "Upload a picture", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or GIF files", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Подешавања", "show_email": "Прикажи моју лозинку", "show_fullname": "Прикажи моје пуно име", diff --git a/public/language/sv/error.json b/public/language/sv/error.json index 4eca880dd4..5692e2b5a6 100644 --- a/public/language/sv/error.json +++ b/public/language/sv/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Ej tillräckligt många märkord. Ämnen måste ha minst %1 märkord", "too-many-tags": "För många märkord. Ämnen kan ej har mer än %1 märkord", "file-too-big": "Den maximalt tillåtna filstorleken är %1 kB - ladda upp en mindre fil", - "cant-vote-self-post": "Du kan inte rösta på ditt eget inlägg.", "already-favourited": "Du har redan favoriserat det här inlägget", "already-unfavourited": "Du har redan avfavoriserat det här inlägget", "cant-ban-other-admins": "Du kan inte bannlysa andra administratörer.", diff --git a/public/language/sv/modules.json b/public/language/sv/modules.json index eeb6a32fb5..5df9836063 100644 --- a/public/language/sv/modules.json +++ b/public/language/sv/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json index 457ae21aeb..8d644154ee 100644 --- a/public/language/sv/topic.json +++ b/public/language/sv/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Nyaste till äldst", "most_votes": "Mest röster", "most_posts": "Felst inlägg", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/sv/user.json b/public/language/sv/user.json index 8b99037cbd..8646ffbd78 100644 --- a/public/language/sv/user.json +++ b/public/language/sv/user.json @@ -58,7 +58,7 @@ "upload_picture": "Ladda upp bild", "upload_a_picture": "Ladda upp en bild", "remove_uploaded_picture": "Ta bort uppladdad bild", - "image_spec": "Du får bara ladda upp PNG, JPG eller GIF-filer", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Inställningar", "show_email": "Visa min epost", "show_fullname": "Visa Fullständigt Namn", diff --git a/public/language/th/error.json b/public/language/th/error.json index de4b2a8bc3..3194dc9366 100644 --- a/public/language/th/error.json +++ b/public/language/th/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "You cannot vote for your own post", "already-favourited": "You have already favourited this post", "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", diff --git a/public/language/th/modules.json b/public/language/th/modules.json index d6eb21f7a4..df389d716f 100644 --- a/public/language/th/modules.json +++ b/public/language/th/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/th/topic.json b/public/language/th/topic.json index 8b394ab8f1..ea1b8c1abd 100644 --- a/public/language/th/topic.json +++ b/public/language/th/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Newest to Oldest", "most_votes": "Most votes", "most_posts": "Most posts", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/th/user.json b/public/language/th/user.json index 51fe75806e..6d009aeab5 100644 --- a/public/language/th/user.json +++ b/public/language/th/user.json @@ -58,7 +58,7 @@ "upload_picture": "อัปโหลดรูป", "upload_a_picture": "อัปโหลดรูป", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "คุณสามารถอัปโหลด PNG, JPG หรือ GIF ไฟล์เท่านั้น", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "ตั้งค่า", "show_email": "แสดงอีเมล์", "show_fullname": "แสดงชื่อจริง", diff --git a/public/language/tr/error.json b/public/language/tr/error.json index 1d3fbce4c7..25bac5bd4b 100644 --- a/public/language/tr/error.json +++ b/public/language/tr/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Yeterince etiket yok. Başlılar en az %1 etikete sahip olmalıdır", "too-many-tags": "Etiket sayısı çok fazla. Başlıklar en fazla %1 etikete sahip olabilir", "file-too-big": "İzin verilen en büyük dosya boyutu %1 kb - lütfen daha küçük bir dosya yükleyin", - "cant-vote-self-post": "Kendi iletinize oy veremezsiniz", "already-favourited": "Bu iletiyi zaten favorilerinize eklediniz", "already-unfavourited": "Bu iletiyi zaten favorilerinizden çıkardınız", "cant-ban-other-admins": "Başka yöneticileri yasaklayamazsınız!", diff --git a/public/language/tr/modules.json b/public/language/tr/modules.json index 05c8d40ebf..00bdcf3fd3 100644 --- a/public/language/tr/modules.json +++ b/public/language/tr/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Yükleniyor %1", "bootbox.ok": "Tamam", "bootbox.cancel": "İptal", - "bootbox.confirm": "Onayla" + "bootbox.confirm": "Onayla", + "cover.dragging_title": "Kapak Görseli Konumlandırma", + "cover.dragging_message": "Kapak görselini istediğin pozisyona getir ve kaydet", + "cover.saved": "Kapak görseli ve pozisyonu kaydedildi" } \ No newline at end of file diff --git a/public/language/tr/notifications.json b/public/language/tr/notifications.json index 052d30bcaa..6abf6053fd 100644 --- a/public/language/tr/notifications.json +++ b/public/language/tr/notifications.json @@ -12,7 +12,7 @@ "you_have_unread_notifications": "Okunmamış bildirimleriniz var.", "new_message_from": "%1 size bir mesaj gönderdi", "upvoted_your_post_in": "%1 iletinizi beğendi. %2", - "moved_your_post": "%1 has moved your post to %2", + "moved_your_post": "%1 senin iletin %2 taşındı", "moved_your_topic": "%1 has moved %2", "favourited_your_post_in": "%1 iletinizi favorilerine ekledi. %2.", "user_flagged_post_in": "%1 bir iletiyi bayrakladı. %2", diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index 81fd9410a7..7aa94ffc10 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -25,7 +25,7 @@ "tools": "Araçlar", "flag": "Bayrak", "locked": "Kilitli", - "bookmark_instructions": "Click here to return to the last unread post in this thread.", + "bookmark_instructions": "Bu başlıkta okuduğun en son iletiye gitmek için buraya tıklayınız", "flag_title": "Bu iletiyi moderatöre haber et", "flag_success": "Bu ileti yöneticilere bildirildi.", "deleted_message": "Bu başlık silindi. Sadece başlık düzenleme yetkisi olan kullanıcılar görebilir.", @@ -96,8 +96,12 @@ "newest_to_oldest": "En yeniden en eskiye", "most_votes": "En çok oy", "most_posts": "En sık yayın", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "spam": "Spam", - "offensive": "Offensive", + "stale.title": "Bunun yerine yeni bir başlık oluşturun?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Yeni bir başlık yarat", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", + "spam": "Gereksiz", + "offensive": "Saldırgan", "custom-flag-reason": "Şikayetinizin nedenini girin" } \ No newline at end of file diff --git a/public/language/tr/user.json b/public/language/tr/user.json index 9cc4e77220..a87f8bda93 100644 --- a/public/language/tr/user.json +++ b/public/language/tr/user.json @@ -30,7 +30,7 @@ "signature": "İmza", "birthday": "Doğum Tarihi", "chat": "Sohbet", - "chat_with": "Chat with %1", + "chat_with": "%1 ile Sohbet", "follow": "Takip Et", "unfollow": "Takip etme", "more": "Daha Fazla", @@ -58,7 +58,7 @@ "upload_picture": "Resim Yükle", "upload_a_picture": "Bir Resim Yükle", "remove_uploaded_picture": "Yüklenmiş fotoğrafı kaldır", - "image_spec": "Sadece PNG, JPG veya GIF dosyaları yükleyebilirsiniz", + "image_spec": "Sadece PNG, JPG veya BMP dosyalarını yükleyebilirsin.", "settings": "Ayarlar", "show_email": "E-postamı göster", "show_fullname": "Tam ismimi göster", @@ -92,11 +92,11 @@ "grouptitle": "Göstermek istediğiniz gurup başlığını seçin", "no-group-title": "Grup başlığı yok", "select-skin": "Bir deri şeçin", - "select-homepage": "Select a Homepage", - "homepage": "Homepage", - "homepage_description": "Select a page to use as the forum homepage or 'None' to use the default homepage.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "Bir anasayfa seçin", + "homepage": "Anasayfa", + "homepage_description": "Anasayfa olarak kullanacağınız sayfayı seçin veya \"Hiçbiri\" diyerek varsayılan sayfayı kullanın.", + "custom_route": "Özel anasayfa yolu", + "custom_route_help": "Herhangi bir eğik çizgi olmadan, burada bir yol adını girin (örneğin \"yeniler\" veya \"popüler\")", "sso.title": "Tek giriş servisleri", "sso.associated": "Birleştirilmiş", "sso.not-associated": "Birleştirmek için buraya tıklayın" diff --git a/public/language/vi/error.json b/public/language/vi/error.json index 52652fc78b..af9159d7b1 100644 --- a/public/language/vi/error.json +++ b/public/language/vi/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "Bạn không thể vote cho chính bài viết của bạn", "already-favourited": "Bạn đã bấm yêu thích cho bài viết này rồi", "already-unfavourited": "Bạn đã bỏ thích bài này rồi", "cant-ban-other-admins": "Bạn không thể ban được các admin khác", diff --git a/public/language/vi/modules.json b/public/language/vi/modules.json index b015560386..9b1b93666d 100644 --- a/public/language/vi/modules.json +++ b/public/language/vi/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json index a2a3faa507..e2d2933e0f 100644 --- a/public/language/vi/topic.json +++ b/public/language/vi/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "Mới đến cũ", "most_votes": "Bình chọn nhiều nhất", "most_posts": "Có nhiều bài viết nhất", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 9c257683b2..f3c4b7af34 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -58,7 +58,7 @@ "upload_picture": "Tải lên hình ảnh", "upload_a_picture": "Tải lên một hình ảnh", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "Bạn chỉ có thể tải lên được các file PNG, JPG hoặc GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "Thiết lập", "show_email": "Hiện Email của tôi", "show_fullname": "Hiện tên đầy đủ", diff --git a/public/language/zh_CN/error.json b/public/language/zh_CN/error.json index 19a90c10df..7af774c65f 100644 --- a/public/language/zh_CN/error.json +++ b/public/language/zh_CN/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "没有足够的话题标签。主题必须有至少 %1 个话题标签", "too-many-tags": "过多话题标签。主题不能超过 %1 个话题标签", "file-too-big": "上传文件的大小限制为 %1 KB - 请缩减文件大小", - "cant-vote-self-post": "您不能给自己的帖子投票。", "already-favourited": "您已收藏该帖", "already-unfavourited": "您已取消收藏此帖", "cant-ban-other-admins": "您不能封禁其他管理员!", @@ -59,8 +58,8 @@ "group-name-too-short": "小组名太短", "group-already-exists": "小组已存在", "group-name-change-not-allowed": "不允许更改小组名称", - "group-already-member": "Already part of this group", - "group-not-member": "Not a member of this group", + "group-already-member": "已经是此小组的成员", + "group-not-member": "不是此小组的成员", "group-needs-owner": "小组需要指定至少一名组长", "group-already-invited": "您已邀请该用户", "group-already-requested": "已提交您的请求", diff --git a/public/language/zh_CN/global.json b/public/language/zh_CN/global.json index e0709a7cb2..37ddb13778 100644 --- a/public/language/zh_CN/global.json +++ b/public/language/zh_CN/global.json @@ -56,8 +56,8 @@ "posted_ago_by_guest": "游客发布于 %1", "posted_ago_by": "%2 发布于 %1", "posted_ago": "发布于 %1", - "posted_in": "posted in %1", - "posted_in_by": "posted in %1 by %2", + "posted_in": "发布在 %1", + "posted_in_by": "%2 发布于 %1", "posted_in_ago": "于 %2 发布到 %1 版", "posted_in_ago_by": "%3 于 %1 发布到 %2", "posted_in_ago_by_guest": "游客于 %1 发布到 %2", diff --git a/public/language/zh_CN/modules.json b/public/language/zh_CN/modules.json index 745e0f2b9f..aae25f0135 100644 --- a/public/language/zh_CN/modules.json +++ b/public/language/zh_CN/modules.json @@ -23,8 +23,11 @@ "composer.discard": "确定想要取消此帖?", "composer.submit_and_lock": "提交并锁定", "composer.toggle_dropdown": "标为 Dropdown", - "composer.uploading": "Uploading %1", + "composer.uploading": "正在上传 %1", "bootbox.ok": "确认", "bootbox.cancel": "取消", - "bootbox.confirm": "确认" + "bootbox.confirm": "确认", + "cover.dragging_title": "设置封面照片位置", + "cover.dragging_message": "拖拽封面照片到期望的位置,然后点击“保存”", + "cover.saved": "封面照片和位置已保存" } \ No newline at end of file diff --git a/public/language/zh_CN/notifications.json b/public/language/zh_CN/notifications.json index af7275b272..7c63ac062b 100644 --- a/public/language/zh_CN/notifications.json +++ b/public/language/zh_CN/notifications.json @@ -12,8 +12,8 @@ "you_have_unread_notifications": "您有未读的通知。", "new_message_from": "来自 %1 的新消息", "upvoted_your_post_in": "%1%2 点赞了您的帖子。", - "moved_your_post": "%1 has moved your post to %2", - "moved_your_topic": "%1 has moved %2", + "moved_your_post": "您的帖子已被 %1 移动到了 %2", + "moved_your_topic": "%1 移动到了 %2", "favourited_your_post_in": "%1%2 收藏了您的帖子。", "user_flagged_post_in": "%1%2 标记了一个帖子", "user_posted_to": "%1 回复了:%2", diff --git a/public/language/zh_CN/pages.json b/public/language/zh_CN/pages.json index 52b4cdb255..fdfb4842be 100644 --- a/public/language/zh_CN/pages.json +++ b/public/language/zh_CN/pages.json @@ -24,9 +24,9 @@ "chats": "聊天", "chat": "与 %1 聊天", "account/edit": "正在编辑 \"%1\"", - "account/edit/password": "Editing password of \"%1\"", - "account/edit/username": "Editing username of \"%1\"", - "account/edit/email": "Editing email of \"%1\"", + "account/edit/password": "正在编辑 \"%1\" 的密码", + "account/edit/username": "正在编辑 \"%1\" 的用户名", + "account/edit/email": "正在编辑 \"%1\" 的电子邮箱", "account/following": "%1 关注", "account/followers": "关注 %1 的人", "account/posts": "%1 发布的帖子", @@ -37,5 +37,5 @@ "account/watched": "主题已被 %1 关注", "maintenance.text": "%1 正在进行维护。请稍后再来。", "maintenance.messageIntro": "此外,管理员留下的消息:", - "throttled.text": "%1 is currently unavailable due to excessive load. Please come back another time." + "throttled.text": "%1 因负荷超载暂不可用。请稍后再来。" } \ No newline at end of file diff --git a/public/language/zh_CN/topic.json b/public/language/zh_CN/topic.json index 38417d8500..c9d1abc1b5 100644 --- a/public/language/zh_CN/topic.json +++ b/public/language/zh_CN/topic.json @@ -96,8 +96,12 @@ "newest_to_oldest": "从新到旧", "most_votes": "最多投票", "most_posts": "最多回复", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", - "spam": "Spam", - "offensive": "Offensive", - "custom-flag-reason": "Enter a flagging reason" + "stale.title": "接受建议,创建新主题?", + "stale.warning": "您回复的主题已经非常老了。开个新帖,然后在新帖中引用这个老帖的内容,可以吗?", + "stale.create": "创建新主题", + "stale.reply_anyway": "仍然回复此帖", + "stale.link_back": "回复: [%1](%2)", + "spam": "垃圾帖", + "offensive": "人身攻击", + "custom-flag-reason": "输入举报原因" } \ No newline at end of file diff --git a/public/language/zh_CN/user.json b/public/language/zh_CN/user.json index ee038e9da6..e3a26c299d 100644 --- a/public/language/zh_CN/user.json +++ b/public/language/zh_CN/user.json @@ -30,16 +30,16 @@ "signature": "签名档", "birthday": "生日", "chat": "聊天", - "chat_with": "Chat with %1", + "chat_with": "与 %1 聊天", "follow": "关注", "unfollow": "取消关注", "more": "更多", "profile_update_success": "资料已经成功更新。", "change_picture": "更改头像", - "change_username": "Change Username", - "change_email": "Change Email", + "change_username": "更改用户名", + "change_email": "更改电子邮箱", "edit": "编辑", - "default_picture": "Default Icon", + "default_picture": "缺省图标", "uploaded_picture": "已有头像", "upload_new_picture": "上传新头像", "upload_new_picture_from_url": "从 URL 上传新图片", @@ -58,7 +58,7 @@ "upload_picture": "上传头像", "upload_a_picture": "上传头像", "remove_uploaded_picture": "删除已上传的头像", - "image_spec": "您只能上传 PNG, JPG 或者 GIF 图片文件", + "image_spec": "您只可以上传PNG、JPG或 BMP 格式的文件", "settings": "设置", "show_email": "显示我的电子邮箱", "show_fullname": "显示我的全名", @@ -92,11 +92,11 @@ "grouptitle": "选择展示的小组称号", "no-group-title": "不展示小组称号", "select-skin": "选择皮肤", - "select-homepage": "Select a Homepage", - "homepage": "Homepage", - "homepage_description": "Select a page to use as the forum homepage or 'None' to use the default homepage.", - "custom_route": "Custom Homepage Route", - "custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")", + "select-homepage": "选择首页", + "homepage": "首页", + "homepage_description": "选择一个页面作为论坛的首页,否则设置为 ‘空’ 使用缺省首页。", + "custom_route": "自定义首页路由", + "custom_route_help": "输入路由名称,前面不需要斜杠 ( 例如, \"recent\" 或 \"popular\" )", "sso.title": "单点登录服务", "sso.associated": "关联到", "sso.not-associated": "点击这里关联" diff --git a/public/language/zh_TW/error.json b/public/language/zh_TW/error.json index c93171dc61..6cb00eb735 100644 --- a/public/language/zh_TW/error.json +++ b/public/language/zh_TW/error.json @@ -48,7 +48,6 @@ "not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)", "too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)", "file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file", - "cant-vote-self-post": "你不能對自己的文章說讚!", "already-favourited": "你已經收藏了這篇文章", "already-unfavourited": "你已放棄收藏這篇文章", "cant-ban-other-admins": "您無法禁止其他的管理員!", diff --git a/public/language/zh_TW/modules.json b/public/language/zh_TW/modules.json index ce543360b5..a6b03030b8 100644 --- a/public/language/zh_TW/modules.json +++ b/public/language/zh_TW/modules.json @@ -26,5 +26,8 @@ "composer.uploading": "Uploading %1", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", - "bootbox.confirm": "Confirm" + "bootbox.confirm": "Confirm", + "cover.dragging_title": "Cover Photo Positioning", + "cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"", + "cover.saved": "Cover photo image and position saved" } \ No newline at end of file diff --git a/public/language/zh_TW/topic.json b/public/language/zh_TW/topic.json index 53907479a5..bf69262e75 100644 --- a/public/language/zh_TW/topic.json +++ b/public/language/zh_TW/topic.json @@ -96,7 +96,11 @@ "newest_to_oldest": "從新到舊", "most_votes": "得票最多", "most_posts": "最多post", - "stale_topic_warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.title": "Create new topic instead?", + "stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?", + "stale.create": "Create a new topic", + "stale.reply_anyway": "Reply to this topic anyway", + "stale.link_back": "Re: [%1](%2)", "spam": "Spam", "offensive": "Offensive", "custom-flag-reason": "Enter a flagging reason" diff --git a/public/language/zh_TW/user.json b/public/language/zh_TW/user.json index 457dd493f1..b31915819b 100644 --- a/public/language/zh_TW/user.json +++ b/public/language/zh_TW/user.json @@ -58,7 +58,7 @@ "upload_picture": "上傳頭像", "upload_a_picture": "上傳一張照片", "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "支援的圖檔格式包含 PNG, JPG, 或是 GIF", + "image_spec": "You may only upload PNG, JPG, or BMP files", "settings": "設定", "show_email": "顯示我的郵箱", "show_fullname": "顯示我的全名", diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 62280f2a79..03af04541c 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -11,6 +11,10 @@ define('admin/general/dashboard', ['semver'], function(semver) { graphData = { rooms: {}, traffic: {} + }, + currentGraph = { + units: 'hours', + until: undefined }; var DEFAULTS = { @@ -150,12 +154,26 @@ define('admin/general/dashboard', ['semver'], function(semver) { for (var i = currentHour, ii = currentHour - 24; i > ii; i--) { var hour = i < 0 ? 24 + i : i; - labels.push(hour + ':00 '); + labels.push(hour + ':00'); } return labels.reverse(); } + function getDaysArray(from) { + var currentDay = new Date(from || Date.now()).getTime(), + months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + labels = [], + tmpDate; + + for(var x=29;x>=0;x--) { + tmpDate = new Date(currentDay - (1000*60*60*24*x)); + labels.push(months[tmpDate.getMonth()] + ' ' + tmpDate.getDate()); + } + + return labels; + } + function setupGraphs() { var trafficCanvas = document.getElementById('analytics-traffic'), registeredCanvas = document.getElementById('analytics-registered'), @@ -263,6 +281,17 @@ define('admin/general/dashboard', ['semver'], function(semver) { $(window).on('resize', adjustPieCharts); adjustPieCharts(); + + $('[data-action="updateGraph"]').on('click', function() { + var until = undefined; + switch($(this).attr('data-until')) { + case 'last-month': + var lastMonth = new Date(); + lastMonth.setDate(lastMonth.getDate()-30); + until = lastMonth.getTime(); + } + updateTrafficGraph($(this).attr('data-units'), until); + }); } function adjustPieCharts() { @@ -277,34 +306,55 @@ define('admin/general/dashboard', ['semver'], function(semver) { }); } - function updateTrafficGraph() { + function updateTrafficGraph(units, until) { if (!app.isFocused) { return; } - socket.emit('admin.analytics.get', {graph: "traffic"}, function (err, data) { + socket.emit('admin.analytics.get', { + graph: 'traffic', + units: units || 'hours', + until: until + }, function (err, data) { if (JSON.stringify(graphData.traffic) === JSON.stringify(data)) { return; } graphData.traffic = data; - for (var i = 0, ii = data.pageviews.length; i < ii; i++) { - graphs.traffic.datasets[0].points[i].value = data.pageviews[i]; - graphs.traffic.datasets[1].points[i].value = data.uniqueVisitors[i]; + // If new data set contains fewer points than currently shown, truncate + while(graphs.traffic.datasets[0].points.length > data.pageviews.length) { + graphs.traffic.removeData(); } - var currentHour = new Date().getHours(); + if (units === 'days') { + graphs.traffic.scale.xLabels = getDaysArray(until); + } else { + graphs.traffic.scale.xLabels = getHoursArray(); + + $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); + $('#pageViewsLastMonth').html(data.monthlyPageViews.lastMonth); + $('#pageViewsPastDay').html(data.pastDay); + utils.addCommasToNumbers($('#pageViewsThisMonth')); + utils.addCommasToNumbers($('#pageViewsLastMonth')); + utils.addCommasToNumbers($('#pageViewsPastDay')); + } + + for (var i = 0, ii = data.pageviews.length; i < ii; i++) { + if (graphs.traffic.datasets[0].points[i]) { + graphs.traffic.datasets[0].points[i].value = data.pageviews[i]; + graphs.traffic.datasets[0].points[i].label = graphs.traffic.scale.xLabels[i]; + graphs.traffic.datasets[1].points[i].value = data.uniqueVisitors[i]; + graphs.traffic.datasets[1].points[i].label = graphs.traffic.scale.xLabels[i]; + } else { + // No points to replace? Add data. + graphs.traffic.addData([data.pageviews[i], data.uniqueVisitors[i]], graphs.traffic.scale.xLabels[i]); + } + } - graphs.traffic.scale.xLabels = getHoursArray(); graphs.traffic.update(); - - $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); - $('#pageViewsLastMonth').html(data.monthlyPageViews.lastMonth); - $('#pageViewsPastDay').html(data.pastDay); - utils.addCommasToNumbers($('#pageViewsThisMonth')); - utils.addCommasToNumbers($('#pageViewsLastMonth')); - utils.addCommasToNumbers($('#pageViewsPastDay')); + currentGraph.units = units; + currentGraph.until = until; }); } @@ -443,7 +493,9 @@ define('admin/general/dashboard', ['semver'], function(semver) { } }, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.roomInterval); - intervals.graphs = setInterval(updateTrafficGraph, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.graphInterval); + intervals.graphs = setInterval(function() { + updateTrafficGraph(currentGraph.units, currentGraph.until); + }, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.graphInterval); } return Admin; diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index ed94cf4b57..baf6741078 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -89,6 +89,11 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], message: html, show: true, buttons: { + close: { + label: '[[global:close]]', + callback: onCloseModal, + className: 'btn-link' + }, update: { label: '[[global:save_changes]]', callback: saveSelection @@ -137,6 +142,10 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'], ajaxify.refresh(); }); } + + function onCloseModal() { + modal.modal('hide'); + } }); }); }); diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js index bf64c92f9d..b67f9dd4a9 100644 --- a/public/src/client/account/header.js +++ b/public/src/client/account/header.js @@ -66,7 +66,7 @@ define('forum/account/header', [ }, function() { uploader.open(RELATIVE_PATH + '/api/user/' + ajaxify.data.userslug + '/uploadcover', { uid: yourid }, 0, function(imageUrlOnServer) { - components.get('account/cover').css('background-image', 'url(' + imageUrlOnServer + ')'); + components.get('account/cover').css('background-image', 'url(' + imageUrlOnServer + '?v=' + Date.now() + ')'); }); }, removeCover diff --git a/public/src/client/category.js b/public/src/client/category.js index d213663aa8..34ecb73fec 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -104,7 +104,9 @@ define('forum/category', [ var bookmarkIndex = localStorage.getItem('category:' + cid + ':bookmark'); var clickedIndex = localStorage.getItem('category:' + cid + ':bookmark:clicked'); - if (!bookmarkIndex) { + bookmarkIndex = Math.max(0, parseInt(bookmarkIndex, 10) || 0); + clickedIndex = Math.max(0, parseInt(clickedIndex, 10) || 0); + if (!parseInt(bookmarkIndex, 10)) { return; } @@ -123,13 +125,9 @@ define('forum/category', [ return; } - if (bookmarkIndex < 0) { - bookmarkIndex = 0; - } - $('[component="category"]').empty(); - loadTopicsAfter(bookmarkIndex - 1, 1, function() { + loadTopicsAfter(Math.max(0, bookmarkIndex - 1), 1, function() { Category.scrollToTopic(bookmarkIndex, clickedIndex, 0); }); } diff --git a/public/src/client/register.js b/public/src/client/register.js index 099b31c087..ef11e4a4bd 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -84,7 +84,12 @@ define('forum/register', ['csrf', 'translator'], function(csrf, translator) { if (data.referrer) { window.location.href = data.referrer; } else if (data.message) { - app.alert({message: data.message, timeout: 20000}); + require(['translator'], function(translator) { + translator.translate(data.message, function(msg) { + bootbox.alert(msg); + ajaxify.go('/'); + }); + }); } }, error: function(data, status) { diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 0232932d6e..423637e21e 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -255,7 +255,9 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator pid: post.attr('data-pid'), room_id: app.currentRoom }, function(err) { - if (err) { + if (err.message === 'self-vote') { + showVotes(post.attr('data-pid')); + } else { app.alertError(err.message); } }); @@ -408,17 +410,34 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator function showStaleWarning(callback) { if (ajaxify.data.lastposttime < (Date.now() - (1000*60*60*24*config.topicStaleDays))) { - translator.translate('[[topic:stale_topic_warning]]', function(translated) { - bootbox.confirm(translated, function(create) { - if (create) { - $(window).trigger('action:composer.topic.new', { - cid: ajaxify.data.cid - }); + translator.translate('[[topic:stale.warning]]', function(translated) { + var warning = bootbox.dialog({ + title: '[[topic:stale.title]]', + message: translated, + buttons: { + reply: { + label: '[[topic:stale.reply_anyway]]', + className: 'btn-link', + callback: function() { + callback(false); + } + }, + create: { + label: '[[topic:stale.create]]', + className: 'btn-primary', + callback: function() { + translator.translate('[[topic:stale.link_back, ' + ajaxify.data.title + ', ' + config.relative_path + '/topic/' + ajaxify.data.slug + ']]', function(body) { + $(window).trigger('action:composer.topic.new', { + cid: ajaxify.data.cid, + body: body + }); + }); + } + } + } + }); - } - - callback(create); - }); + warning.modal(); }); } else { callback(false); diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index e83d30b36d..3af4945d51 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -212,6 +212,7 @@ define('forum/topic/posts', [ Posts.processPage = function(posts) { Posts.showBottomPostBar(); + posts.find('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive'); app.createUserTooltips(posts); app.replaceSelfLinks(posts.find('a')); utils.addCommasToNumbers(posts.find('.formatted-number')); diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index df9246ab7f..6a45732c9b 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -16,12 +16,7 @@ define('coverPhoto', [ coverEl.find('.upload').on('click', uploadFn); coverEl.find('.resize').on('click', function() { - coverEl - .toggleClass('active', 1) - .backgroundDraggable({ - axis: 'y', - units: 'percent' - }); + enableDragging(coverEl); }); coverEl.find('.remove').on('click', removeFn); @@ -53,16 +48,25 @@ define('coverPhoto', [ }; reader.readAsDataURL(files[0]); - - coverPhoto.coverEl - .addClass('active', 1) - .backgroundDraggable({ - axis: 'y', - units: 'percent' - }); + enableDragging(coverPhoto.coverEl); } }; + function enableDragging(coverEl) { + coverEl.toggleClass('active', 1) + .backgroundDraggable({ + axis: 'y', + units: 'percent' + }); + + app.alert({ + alert_id: 'drag_start', + title: '[[modules:cover.dragging_title]]', + message: '[[modules:cover.dragging_message]]', + timeout: 5000 + }); + } + coverPhoto.save = function() { coverPhoto.coverEl.addClass('saving'); @@ -72,6 +76,7 @@ define('coverPhoto', [ coverPhoto.coverEl.backgroundDraggable('disable'); coverPhoto.coverEl.off('dragover', coverPhoto.onDragOver); coverPhoto.coverEl.off('drop', coverPhoto.onDrop); + app.alertSuccess('[[modules:cover.saved]]'); } else { app.alertError(err.message); } diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index d635eae181..33d3599228 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -95,11 +95,14 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com navigator.update = function() { toggle(!!count); - var middleOfViewport = $(window).scrollTop() + $(window).height() / 2; + var els = $(navigator.selector); + if (els.length) { + index = parseInt(els.first().attr('data-index'), 10) + 1; + } - index = parseInt($(navigator.selector).first().attr('data-index'), 10) + 1; + var middleOfViewport = $(window).scrollTop() + $(window).height() / 2; var previousDistance = Number.MAX_VALUE; - $(navigator.selector).each(function() { + els.each(function() { var distanceToMiddle = Math.abs(middleOfViewport - $(this).offset().top); if (distanceToMiddle > previousDistance) { diff --git a/public/src/modules/search.js b/public/src/modules/search.js index f88f62b066..7b889999ea 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -35,9 +35,11 @@ define('search', ['navigator', 'translator'], function(nav, translator) { }; function createQueryString(data) { - var searchIn = data.in || 'titlesposts'; + var searchIn = data['in'] || 'titlesposts'; var postedBy = data.by || ''; - var query = {in: searchIn}; + var query = { + 'in': searchIn + }; if (postedBy && (searchIn === 'posts' || searchIn === 'titles' || searchIn === 'titlesposts')) { query.by = postedBy; diff --git a/public/src/variables.js b/public/src/variables.js index 6b443caa5d..487099ac3c 100644 --- a/public/src/variables.js +++ b/public/src/variables.js @@ -6,9 +6,9 @@ ajaxify.variables = {}; ajaxify.variables.parse = function() { - var dataEl = $('#content [ajaxify-data]'); + var dataEl = $('#ajaxify-data'); if (dataEl.length) { - ajaxify.data = JSON.parse(decodeURIComponent(dataEl.attr('ajaxify-data'))); + ajaxify.data = JSON.parse(dataEl.text()); dataEl.remove(); } }; diff --git a/public/src/widgets.js b/public/src/widgets.js index 18d593ad1f..2a8b052bba 100644 --- a/public/src/widgets.js +++ b/public/src/widgets.js @@ -57,7 +57,13 @@ if (location === 'footer' && !$('#content [widget-area="footer"]').length) { $('#content').append($('

')); } else if (location === 'sidebar' && !$('#content [widget-area="sidebar"]').length) { - $('#content > *').wrapAll($('
')); + if ($('[component="account/cover"]').length) { + $('[component="account/cover"]').nextAll().wrapAll($('
')); + } else if ($('[component="groups/cover"]').length) { + $('[component="groups/cover"]').nextAll().wrapAll($('
')); + } else { + $('#content > *').wrapAll($('
')); + } } else if (location === 'header' && !$('#content [widget-area="header"]').length) { $('#content').prepend($('
')); } diff --git a/src/controllers/accounts/edit.js b/src/controllers/accounts/edit.js index 349a6c856e..a6b2f7ad55 100644 --- a/src/controllers/accounts/edit.js +++ b/src/controllers/accounts/edit.js @@ -122,9 +122,9 @@ editController.uploadPicture = function (req, res, next) { editController.uploadCoverPicture = function(req, res, next) { var params = JSON.parse(req.body.params); - + user.updateCoverPicture({ - file: req.files.files[0].path, + file: req.files.files[0], uid: params.uid }, function(err, image) { if (err) { diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js index 75cbc4e7e0..77a71aba66 100644 --- a/src/controllers/accounts/helpers.js +++ b/src/controllers/accounts/helpers.js @@ -57,7 +57,7 @@ helpers.getUserDataByUserSlug = function(userslug, callerUID, callback) { var isAdmin = results.isAdmin; var self = parseInt(callerUID, 10) === parseInt(userData.uid, 10); - userData.joindate = utils.toISOString(userData.joindate); + userData.joindateISO = utils.toISOString(userData.joindate); userData.lastonlineISO = utils.toISOString(userData.lastonline || userData.joindate); userData.age = userData.birthday ? Math.floor((new Date().getTime() - new Date(userData.birthday).getTime()) / 31536000000) : ''; diff --git a/src/controllers/accounts/profile.js b/src/controllers/accounts/profile.js index 7ecca84789..278211e94e 100644 --- a/src/controllers/accounts/profile.js +++ b/src/controllers/accounts/profile.js @@ -2,6 +2,7 @@ var nconf = require('nconf'), async = require('async'), + S = require('string'), user = require('../../user'), posts = require('../../posts'), @@ -80,6 +81,42 @@ profileController.get = function(req, res, callback) { userData.profileviews = 1; } + var plainAboutMe = userData.aboutme ? S(userData.aboutme).decodeHTMLEntities().stripTags().s : ''; + + res.locals.metaTags = [ + { + name: "title", + content: userData.fullname || userData.username + }, + { + name: "description", + content: plainAboutMe + }, + { + property: 'og:title', + content: userData.fullname || userData.username + }, + { + property: 'og:description', + content: plainAboutMe + } + ]; + + if (userData.picture) { + res.locals.metaTags.push( + { + property: 'og:image', + content: userData.picture, + noEscape: true + }, + { + property: "og:image:url", + content: userData.picture, + noEscape: true + } + ); + } + plugins.fireHook('filter:user.account', {userData: userData, uid: req.uid}, next); } ], function(err, results) { diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 34f4f24478..1109f58813 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -131,6 +131,10 @@ settingsController.get = function(req, res, callback) { { "name": "Yeti", "value": "yeti" } ]; + userData.homePageRoutes.forEach(function(route) { + route.selected = route.route === userData.settings.homePageRoute; + }); + userData.bootswatchSkinOptions.forEach(function(skin) { skin.selected = skin.value === userData.settings.bootswatchSkin; }); diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 579f8462c3..1f5d049dc3 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -155,7 +155,7 @@ function continueLogin(req, res, next) { // Alter user cookie depending on passed-in option if (req.body.remember === 'on') { - var duration = 1000*60*60*24*parseInt(meta.config.loginDays || 14, 10); + var duration = 1000 * 60 * 60 * 24 * (parseInt(meta.config.loginDays, 10) || 14); req.session.cookie.maxAge = duration; req.session.cookie.expires = new Date(Date.now() + duration); } else { diff --git a/src/controllers/topics.js b/src/controllers/topics.js index f5fb015c15..d3cd6140e7 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -41,7 +41,6 @@ topicsController.get = function(req, res, callback) { }, next); }, function (results, next) { - if (!results.topic.slug) { return callback(); } @@ -119,6 +118,10 @@ topicsController.get = function(req, res, callback) { return next(err); } + if (topicData.category.disabled) { + return callback(); + } + topics.modifyByPrivilege(topicData.posts, results.privileges); plugins.fireHook('filter:controllers.topic.get', topicData, next); @@ -174,7 +177,7 @@ topicsController.get = function(req, res, callback) { ogImageUrl = '/logo.png'; } - if (ogImageUrl.indexOf('http') === -1) { + if (typeof ogImageUrl === 'string' && ogImageUrl.indexOf('http') === -1) { ogImageUrl = nconf.get('url') + ogImageUrl; } @@ -203,15 +206,18 @@ topicsController.get = function(req, res, callback) { }, { property: "og:url", - content: nconf.get('url') + '/topic/' + topicData.slug + (req.params.post_index ? ('/' + req.params.post_index) : '') + content: nconf.get('url') + '/topic/' + topicData.slug + (req.params.post_index ? ('/' + req.params.post_index) : ''), + noEscape: true }, { property: 'og:image', - content: ogImageUrl + content: ogImageUrl, + noEscape: true }, { property: "og:image:url", - content: ogImageUrl + content: ogImageUrl, + noEscape: true }, { property: "article:published_time", @@ -232,10 +238,6 @@ topicsController.get = function(req, res, callback) { rel: 'alternate', type: 'application/rss+xml', href: nconf.get('url') + '/topic/' + tid + '.rss' - }, - { - rel: 'canonical', - href: nconf.get('url') + '/topic/' + topicData.slug + (currentPage > 1 ? '?page=' + currentPage : '') } ]; diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index d798524f3e..511cfe2f8e 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -46,17 +46,17 @@ uploadsController.upload = function(req, res, filesIterator, next) { uploadsController.uploadPost = function(req, res, next) { uploadsController.upload(req, res, function(uploadedFile, next) { - file.isFileTypeAllowed(uploadedFile.path, file.allowedExtensions(), function(err) { - if (err) { - return next(err); - } + if (uploadedFile.type.match(/image./)) { + file.isFileTypeAllowed(uploadedFile.path, function(err) { + if (err) { + return next(err); + } - if (uploadedFile.type.match(/image./)) { uploadImage(req.user.uid, uploadedFile, next); - } else { - uploadFile(req.user.uid, uploadedFile, next); - } - }); + }); + } else { + uploadFile(req.user.uid, uploadedFile, next); + } }, next); }; @@ -67,7 +67,7 @@ uploadsController.uploadThumb = function(req, res, next) { } uploadsController.upload(req, res, function(uploadedFile, next) { - file.isFileTypeAllowed(uploadedFile.path, file.allowedExtensions(), function(err) { + file.isFileTypeAllowed(uploadedFile.path, function(err) { if (err) { return next(err); } @@ -96,10 +96,6 @@ uploadsController.uploadGroupCover = function(data, next) { uploadImage(0, data, next); }; -uploadsController.uploadUserCover = function(data, next) { - uploadImage(data.uid, data, next); -}; - function uploadImage(uid, image, callback) { if (plugins.hasListeners('filter:uploadImage')) { return plugins.fireHook('filter:uploadImage', {image: image, uid: uid}, callback); diff --git a/src/emailer.js b/src/emailer.js index fc96081b6f..d63aa1bb7e 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -2,14 +2,20 @@ var async = require('async'), winston = require('winston'), + nconf = require('nconf'), templates = require('templates.js'), nodemailer = require('nodemailer'), + htmlToText = require('html-to-text'), + url = require('url'), User = require('./user'), Plugins = require('./plugins'), meta = require('./meta'), translator = require('../public/src/modules/translator'), + transports = { + direct: nodemailer.createTransport('direct') + }, app; (function(Emailer) { @@ -54,9 +60,6 @@ var async = require('async'), html: function(next) { renderAndTranslate('emails/' + template, params, lang, next); }, - plaintext: function(next) { - renderAndTranslate('emails/' + template + '_plaintext', params, lang, next); - }, subject: function(next) { translator.translate(params.subject, lang, function(translated) { next(null, translated); @@ -67,11 +70,13 @@ var async = require('async'), function (results, next) { var data = { to: email, - from: meta.config['email:from'] || 'no-reply@localhost.lan', + from: meta.config['email:from'] || 'no-reply@' + getHostname(), from_name: meta.config['email:from_name'] || 'NodeBB', subject: results.subject, html: results.html, - plaintext: results.plaintext, + plaintext: htmlToText.fromString(results.html, { + ignoreImage: true + }), template: template, uid: params.uid, pid: params.pid, @@ -96,8 +101,7 @@ var async = require('async'), data.text = data.plaintext; delete data.plaintext; - nodemailer.mail(data); - callback(null); + transports.direct.sendMail(data, callback); }; function render(tpl, params, next) { @@ -126,5 +130,12 @@ var async = require('async'), ], callback); } + function getHostname() { + var configUrl = nconf.get('url'), + parsed = url.parse(configUrl); + + return parsed.hostname; + }; + }(module.exports)); diff --git a/src/favourites.js b/src/favourites.js index c55702b433..c5d71f6de2 100644 --- a/src/favourites.js +++ b/src/favourites.js @@ -204,7 +204,7 @@ var async = require('async'), } if (parseInt(uid, 10) === parseInt(results.owner, 10)) { - return callback(new Error('[[error:cant-vote-self-post]]')); + return callback(new Error('self-vote')); } var voteStatus = results.voteStatus, diff --git a/src/file.js b/src/file.js index 80f0289a59..01a40ee6bd 100644 --- a/src/file.js +++ b/src/file.js @@ -4,9 +4,8 @@ var fs = require('fs'), nconf = require('nconf'), path = require('path'), winston = require('winston'), - mmmagic = require('mmmagic'), - Magic = mmmagic.Magic, mime = require('mime'), + jimp = require('jimp'), utils = require('../public/src/utils'); @@ -40,46 +39,13 @@ file.saveFileToLocal = function(filename, folder, tempPath, callback) { is.pipe(os); }; -file.isFileTypeAllowed = function(path, allowedExtensions, callback) { - if (!Array.isArray(allowedExtensions) || !allowedExtensions.length) { - return callback(); - } - - var magic = new Magic(mmmagic.MAGIC_MIME_TYPE); - magic.detectFile(path, function(err, mimeType) { - if (err) { - return callback(err); - } - - var uploadedFileExtension = mime.extension(mimeType); - - if (allowedExtensions.indexOf(uploadedFileExtension) === -1) { - return callback(new Error('[[error:invalid-file-type, ' + allowedExtensions.join(', ') + ']]')); - } - - callback(); +file.isFileTypeAllowed = function(path, callback) { + // Attempt to read the file, if it passes, file type is allowed + jimp.read(path, function(err) { + callback(err); }); }; -file.allowedExtensions = function() { - var meta = require('./meta'); - var allowedExtensions = (meta.config.allowedFileExtensions || '').trim(); - if (!allowedExtensions) { - return []; - } - allowedExtensions = allowedExtensions.split(','); - allowedExtensions = allowedExtensions.filter(Boolean).map(function(extension) { - extension = extension.trim(); - return extension.replace(/\./g, ''); - }); - - if (allowedExtensions.indexOf('jpg') !== -1 && allowedExtensions.indexOf('jpeg') === -1) { - allowedExtensions.push('jpeg'); - } - - return allowedExtensions; -}; - file.exists = function(path, callback) { fs.stat(path, function(err, stat) { callback(!err && stat); diff --git a/src/install.js b/src/install.js index 6c06328c70..80da3a52c1 100644 --- a/src/install.js +++ b/src/install.js @@ -460,10 +460,15 @@ function createWelcomePost(next) { db.getObjectField('global', 'topicCount', next); } ], function(err, results) { + if (err) { + return next(err); + } + var content = results[0], numTopics = results[1]; if (!parseInt(numTopics, 10)) { + process.stdout.write('Creating welcome post!\n'); Topics.post({ uid: 1, cid: 2, diff --git a/src/meta/js.js b/src/meta/js.js index 75b82c856a..936d1da988 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -129,7 +129,7 @@ module.exports = function(Meta) { * Check if the parent process is running with the debug option --debug (or --debug-brk) */ var forkProcessParams = {}; - if(global.v8debug) { + if(global.v8debug || process.execArgv.indexOf('--debug') != -1) { /** * use the line below if you want to debug minifier.js script too (or even --debug-brk option, but * you'll have to setup your debugger and connect to the forked process) diff --git a/src/meta/tags.js b/src/meta/tags.js index d571038cc4..55e5bd32d2 100644 --- a/src/meta/tags.js +++ b/src/meta/tags.js @@ -32,10 +32,12 @@ module.exports = function(Meta) { content: Meta.config.keywords || '' }, { name: 'msapplication-badge', - content: 'frequency=30; polling-uri=' + nconf.get('url') + '/sitemap.xml' + content: 'frequency=30; polling-uri=' + nconf.get('url') + '/sitemap.xml', + noEscape: true }, { name: 'msapplication-square150x150logo', - content: Meta.config['brand:logo'] || '' + content: Meta.config['brand:logo'] || '', + noEscape: true }]; plugins.fireHook('filter:meta.getMetaTags', defaultTags, next); }, @@ -89,7 +91,10 @@ module.exports = function(Meta) { return tag; } - tag.content = validator.escape(tag.content); + if (!tag.noEscape) { + tag.content = validator.escape(tag.content); + } + return tag; }); diff --git a/src/middleware/index.js b/src/middleware/index.js index 80b6677970..e61bae0afe 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -6,9 +6,7 @@ var meta = require('../meta'), auth = require('../routes/authentication'), path = require('path'), - fs = require('fs'), nconf = require('nconf'), - winston = require('winston'), flash = require('connect-flash'), templates = require('templates.js'), bodyParser = require('body-parser'), @@ -51,7 +49,7 @@ module.exports = function(app) { app.use(cookieParser()); var cookie = { - maxAge: 1000 * 60 * 60 * 24 * parseInt(meta.config.loginDays || 14, 10) + maxAge: 1000 * 60 * 60 * 24 * (parseInt(meta.config.loginDays, 10) || 14) }; if (meta.config.cookieDomain) { diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index 9cc9d2d523..e2c5747ab6 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -221,7 +221,7 @@ middleware.privateUploads = function(req, res, next) { }; middleware.busyCheck = function(req, res, next) { - if (global.env === 'production' && toobusy()) { + if (global.env === 'production' && (!meta.config.hasOwnProperty('eventLoopCheckEnabled') || parseInt(meta.config.eventLoopCheckEnabled, 10) === 1) && toobusy()) { res.type('text/html').sendFile(path.join(__dirname, '../../public/503.html')); } else { next(); diff --git a/src/middleware/render.js b/src/middleware/render.js index 4cf5567ae8..559692f800 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -32,6 +32,7 @@ module.exports = function(middleware) { options.bodyClass = buildBodyClass(req); res.locals.template = template; + options._locals = undefined; if (res.locals.isAPI) { if (req.route && req.route.path === '/api/') { @@ -45,13 +46,14 @@ module.exports = function(middleware) { fn = defaultFn; } - var ajaxifyData = encodeURIComponent(JSON.stringify(options)); + var ajaxifyData = JSON.stringify(options); + ajaxifyData = ajaxifyData.replace(/<\//g, '<\\/'); + render.call(self, template, options, function(err, str) { if (err) { return fn(err); } - str = str + ''; str = (res.locals.postHeader ? res.locals.postHeader : '') + str + (res.locals.preFooter ? res.locals.preFooter : ''); if (res.locals.footer) { @@ -70,10 +72,12 @@ module.exports = function(middleware) { var language = res.locals.config ? res.locals.config.userLang || 'en_GB' : 'en_GB'; language = req.query.lang || language; translator.translate(str, language, function(translated) { + translated = translated + ''; fn(err, translated); }); }); } else { + str = str + ''; fn(err, str); } }); diff --git a/src/posts/parse.js b/src/posts/parse.js index a95605dec0..d2c96f6494 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -24,7 +24,7 @@ module.exports = function(Posts) { if (err) { return callback(err); } - + if (global.env === 'production' && data.postData.pid) { cache.set(data.postData.pid, data.postData.content); } diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index d5ada9d4e0..95af8c7122 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -206,17 +206,29 @@ SocketAdmin.email.test = function(socket, data, callback) { }; SocketAdmin.analytics.get = function(socket, data, callback) { - data.units = 'hours'; // temp - data.amount = 24; + // Default returns views from past 24 hours, by hour + if (data.units === 'days') { + data.amount = 30; + } else { + data.amount = 24; + } if (data && data.graph && data.units && data.amount) { if (data.graph === 'traffic') { async.parallel({ uniqueVisitors: function(next) { - getHourlyStatsForSet('analytics:uniquevisitors', data.amount, next); + if (data.units === 'days') { + getDailyStatsForSet('analytics:uniquevisitors', data.until || Date.now(), data.amount, next); + } else { + getHourlyStatsForSet('analytics:uniquevisitors', data.until || Date.now(), data.amount, next); + } }, pageviews: function(next) { - getHourlyStatsForSet('analytics:pageviews', data.amount, next); + if (data.units === 'days') { + getDailyStatsForSet('analytics:pageviews', data.until || Date.now(), data.amount, next); + } else { + getHourlyStatsForSet('analytics:pageviews', data.until || Date.now(), data.amount, next); + } }, monthlyPageViews: function(next) { analytics.getMonthlyPageViews(next); @@ -240,14 +252,14 @@ SocketAdmin.logs.clear = function(socket, data, callback) { meta.logs.clear(callback); }; -function getHourlyStatsForSet(set, hours, callback) { - var hour = new Date(), - terms = {}, +function getHourlyStatsForSet(set, hour, numHours, callback) { + var terms = {}, hoursArr = []; + hour = new Date(hour); hour.setHours(hour.getHours(), 0, 0, 0); - for (var i = 0, ii = hours; i < ii; i++) { + for (var i = 0, ii = numHours; i < ii; i++) { hoursArr.push(hour.getTime()); hour.setHours(hour.getHours() - 1, 0, 0, 0); } @@ -272,6 +284,30 @@ function getHourlyStatsForSet(set, hours, callback) { }); } +function getDailyStatsForSet(set, day, numDays, callback) { + var daysArr = []; + + day = new Date(day); + day.setHours(0, 0, 0, 0); + + async.whilst(function() { + return numDays--; + }, function(next) { + getHourlyStatsForSet(set, day.getTime()-(1000*60*60*24*numDays), 24, function(err, day) { + if (err) { + return next(err); + } + + daysArr.push(day.reduce(function(cur, next) { + return cur+next; + })); + next(); + }); + }, function(err) { + callback(err, daysArr); + }); +}; + SocketAdmin.getMoreEvents = function(socket, next, callback) { var start = parseInt(next, 10); if (start < 0) { diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index 618d5b9c0b..bf66873a52 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -79,8 +79,8 @@ SocketRooms.getAll = function(socket, data, callback) { totals.topics = {}; topTenTopics.forEach(function(topic, index) { totals.topics[topic.tid] = { - value: topic.count || 0, - title: validator.escape(titles[index].title) + value: topic.count || 0, + title: validator.escape(titles[index].title) }; }); diff --git a/src/socket.io/posts/favourites.js b/src/socket.io/posts/favourites.js index 71aab9100f..6883ece06a 100644 --- a/src/socket.io/posts/favourites.js +++ b/src/socket.io/posts/favourites.js @@ -100,6 +100,9 @@ module.exports = function(SocketPosts) { }; function favouriteCommand(socket, command, eventName, notification, data, callback) { + if (!socket.uid) { + return callback(new Error('[[error:not-logged-in]]')) + } if(!data || !data.pid || !data.room_id) { return callback(new Error('[[error:invalid-data]]')); } diff --git a/src/socket.io/posts/flag.js b/src/socket.io/posts/flag.js index 3e5230db6b..aa82e84626 100644 --- a/src/socket.io/posts/flag.js +++ b/src/socket.io/posts/flag.js @@ -47,7 +47,7 @@ module.exports = function(SocketPosts) { privileges.categories.isAdminOrMod(post.topic.cid, socket.uid, next); }, userData: function(next) { - user.getUserFields(socket.uid, ['username', 'reputation'], next); + user.getUserFields(socket.uid, ['username', 'reputation', 'banned'], next); } }, next); }, @@ -56,6 +56,10 @@ module.exports = function(SocketPosts) { return next(new Error('[[error:not-enough-reputation-to-flag]]')); } + if (parseInt(user.banned, 10) === 1) { + return next(new Error('[[error:user-banned]]')); + } + flaggingUser = user.userData; flaggingUser.uid = socket.uid; diff --git a/src/socket.io/user/search.js b/src/socket.io/user/search.js index 9cce95e180..c59b2798d6 100644 --- a/src/socket.io/user/search.js +++ b/src/socket.io/user/search.js @@ -5,6 +5,7 @@ var async = require('async'); var db = require('../../database'); var user = require('../../user'); var meta = require('../../meta'); +var pagination = require('../../pagination'); module.exports = function(SocketUser) { SocketUser.search = function(socket, data, callback) { @@ -21,7 +22,13 @@ module.exports = function(SocketUser) { sortBy: data.sortBy, onlineOnly: data.onlineOnly, uid: socket.uid - }, callback); + }, function(err, result) { + if (err) { + return callback(err); + } + result.pagination = pagination.create(data.page, result.pageCount); + callback(null, result); + }); }; SocketUser.loadSearchPage = function(socket, data, callback) { diff --git a/src/upgrade.js b/src/upgrade.js index ad31e95e8e..ecbfcfe6dd 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -3,21 +3,10 @@ var db = require('./database'), async = require('async'), winston = require('winston'), - fs = require('fs'), - path = require('path'), - - User = require('./user'), - Topics = require('./topics'), - Posts = require('./posts'), - Categories = require('./categories'), - Groups = require('./groups'), - Meta = require('./meta'), - Plugins = require('./plugins'), - Utils = require('../public/src/utils'), Upgrade = {}, - minSchemaDate = Date.UTC(2015, 0, 30), // This value gets updated every new MINOR version + minSchemaDate = Date.UTC(2015, 7, 18), // This value gets updated every new MINOR version schemaDate, thisSchemaDate, // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema @@ -58,7 +47,7 @@ Upgrade.upgrade = function(callback) { // Prepare for upgrade & check to make sure the upgrade is possible db.get('schemaDate', function(err, value) { if(!value) { - db.set('schemaDate', latestSchema, function(err) { + db.set('schemaDate', latestSchema, function() { next(); }); schemaDate = latestSchema; @@ -73,420 +62,6 @@ Upgrade.upgrade = function(callback) { } }); }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 8); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/08] Clearing reset tokens'); - - db.deleteAll(['reset:expiry', 'reset:uid'], function(err) { - if (err) { - winston.error('[2015/02/08] Error encountered while Clearing reset tokens'); - return next(err); - } - - winston.info('[2015/02/08] Clearing reset tokens done'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/02/08] Clearing reset tokens skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 17); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/17] renaming home.tpl to categories.tpl'); - - db.rename('widgets:home.tpl', 'widgets:categories.tpl', function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/02/17] renaming home.tpl to categories.tpl done'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/02/17] renaming home.tpl to categories.tpl skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 23); - if (schemaDate < thisSchemaDate) { - db.setAdd('plugins:active', 'nodebb-rewards-essentials', function(err) { - winston.info('[2015/2/23] Activating NodeBB Essential Rewards'); - Plugins.reload(function() { - if (err) { - next(err); - } else { - Upgrade.update(thisSchemaDate, next); - } - }); - }); - } else { - winston.info('[2015/2/23] Activating NodeBB Essential Rewards - skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 24); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/24] Upgrading plugins:active to sorted set'); - - db.getSetMembers('plugins:active', function(err, activePlugins) { - if (err) { - return next(err); - } - if (!Array.isArray(activePlugins) || !activePlugins.length) { - winston.info('[2015/02/24] Upgrading plugins:active to sorted set done'); - Upgrade.update(thisSchemaDate, next); - } - - db.delete('plugins:active', function(err) { - if (err) { - return next(err); - } - var order = -1; - async.eachSeries(activePlugins, function(plugin, next) { - ++order; - db.sortedSetAdd('plugins:active', order, plugin, next); - }, function(err) { - if (err) { - return next(err); - } - winston.info('[2015/02/24] Upgrading plugins:active to sorted set done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - }); - } else { - winston.info('[2015/02/24] Upgrading plugins:active to sorted set skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 24, 1); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/24] Upgrading privilege groups to system groups'); - - var isPrivilegeGroup = /^cid:\d+:privileges:[\w:]+$/; - db.getSortedSetRange('groups:createtime', 0, -1, function (err, groupNames) { - groupNames = groupNames.filter(function(name) { - return isPrivilegeGroup.test(name); - }); - - async.eachLimit(groupNames, 5, function(groupName, next) { - db.setObjectField('group:' + groupName, 'system', '1', next); - }, function(err) { - if (err) { - return next(err); - } - winston.info('[2015/02/24] Upgrading privilege groups to system groups done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - } else { - winston.info('[2015/02/24] Upgrading privilege groups to system groups skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 1, 25, 6); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/02/25] Upgrading menu items to dynamic navigation system'); - - require('./navigation/admin').save(require('../install/data/navigation.json'), function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/02/25] Upgrading menu items to dynamic navigation system done'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/02/25] Upgrading menu items to dynamic navigation system skipped'); - next(); - } - }, - function(next) { - function upgradeHashToSortedSet(hash, callback) { - db.getObject(hash, function(err, oldHash) { - if (err || !oldHash) { - return callback(err); - } - - db.rename(hash, hash + '_old', function(err) { - if (err) { - return callback(err); - } - var keys = Object.keys(oldHash); - if (!keys.length) { - return callback(); - } - async.each(keys, function(key, next) { - db.sortedSetAdd(hash, oldHash[key], key, next); - }, callback); - }); - }); - } - - thisSchemaDate = Date.UTC(2015, 4, 7); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/05/07] Upgrading uid mappings to sorted set'); - - async.series([ - async.apply(upgradeHashToSortedSet, 'email:uid'), - async.apply(upgradeHashToSortedSet, 'fullname:uid'), - async.apply(upgradeHashToSortedSet, 'username:uid'), - async.apply(upgradeHashToSortedSet, 'userslug:uid'), - ], function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/05/07] Upgrading uid mappings to sorted set done'); - Upgrade.update(thisSchemaDate, next); - }); - - } else { - winston.info('[2015/05/07] Upgrading uid mappings to sorted set skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 4, 8); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/05/08] Fixing emails'); - - db.getSortedSetRangeWithScores('email:uid', 0, -1, function(err, users) { - if (err) { - return next(err); - } - - async.eachLimit(users, 100, function(user, next) { - var newEmail = user.value.replace(/\uff0E/g, '.'); - if (newEmail === user.value) { - return process.nextTick(next); - } - async.series([ - async.apply(db.sortedSetRemove, 'email:uid', user.value), - async.apply(db.sortedSetAdd, 'email:uid', user.score, newEmail) - ], next); - - }, function(err) { - if (err) { - return next(err); - } - winston.info('[2015/05/08] Fixing emails done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - - } else { - winston.info('[2015/05/08] Fixing emails skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 4, 11); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/05/11] Updating widgets to tjs 0.2x'); - - require('./widgets/admin').get(function(err, data) { - async.each(data.areas, function(area, next) { - require('./widgets').getArea(area.template, area.location, function(err, widgets) { - if (err) { - return next(err); - } - - for (var w in widgets) { - if (widgets.hasOwnProperty(w)) { - widgets[w].data.container = widgets[w].data.container - .replace(/\{\{([\s\S]*?)\}\}/g, '{$1}') - .replace(/\{([\s\S]*?)\}/g, '{{$1}}'); - } - } - - require('./widgets').setArea({ - template: area.template, - location: area.location, - widgets: widgets - }, next); - }); - }, function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/05/11] Updating widgets to tjs 0.2x done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - } else { - winston.info('[2015/05/11] Updating widgets to tjs 0.2x skipped'); - next(); - } - }, - function(next) { - function upgradeSet(set, callback) { - db.getSortedSetRangeWithScores(set + ':uid', 0, -1, function(err, userData) { - if (err) { - return callback(err); - } - - userData = userData.filter(function(user) { - return user && user.value; - }); - - async.eachLimit(userData, 500, function(userData, next) { - db.sortedSetAdd(set + ':sorted', 0, userData.value.toLowerCase() + ':' + userData.score, next); - }, function(err) { - callback(err); - }); - }); - } - - thisSchemaDate = Date.UTC(2015, 4, 20); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/05/20] Adding username:sorted and email:sorted'); - - async.series([ - function(next) { - upgradeSet('username', next); - }, - function(next) { - upgradeSet('email', next); - } - ], function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/05/20] Added username:sorted and email:sorted'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/05/20] Adding username:sorted and email:sorted skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 5, 2); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/06/02] Creating group sorted sets'); - - db.getSortedSetRange('groups:createtime', 0, -1, function(err, groupNames) { - if (err) { - return callback(err); - } - - groupNames = groupNames.filter(Boolean); - - async.eachLimit(groupNames, 500, function(groupName, next) { - db.getObjectFields('group:' + groupName, ['hidden', 'system', 'createtime', 'memberCount'], function(err, groupData) { - if (err) { - return next(err); - } - - if (parseInt(groupData.hidden, 10) === 1 || parseInt(groupData.system, 10) === 1) { - return next(); - } - async.parallel([ - async.apply(db.sortedSetAdd, 'groups:visible:createtime', groupData.createtime, groupName), - async.apply(db.sortedSetAdd, 'groups:visible:memberCount', groupData.memberCount || 0, groupName), - async.apply(db.sortedSetAdd, 'groups:visible:name', 0, groupName.toLowerCase() + ':' + groupName) - ], next); - }); - }, function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/06/02] Creating group sorted sets done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - } else { - winston.info('[2015/06/02] Creating group sorted sets skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 6, 3); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/07/03] Enabling default composer plugin'); - - db.isSortedSetMember('plugins:active', 'nodebb-plugin-composer-default', function(err, active) { - if (!active) { - Plugins.toggleActive('nodebb-plugin-composer-default', function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/07/03] Enabling default composer plugin done'); - Upgrade.update(thisSchemaDate, next); - }); - } else { - winston.info('[2015/07/03] Enabling default composer plugin done'); - Upgrade.update(thisSchemaDate, next); - } - }); - } else { - winston.info('[2015/07/03] Enabling default composer plugin skipped'); - next(); - } - }, - function(next) { - thisSchemaDate = Date.UTC(2015, 7, 18); - if (schemaDate < thisSchemaDate) { - updatesMade = true; - winston.info('[2015/08/18] Creating children category sorted sets'); - - db.getSortedSetRange('categories:cid', 0, -1, function(err, cids) { - if (err) { - return next(err); - } - - async.each(cids, function(cid, next) { - db.getObjectFields('category:' + cid, ['parentCid', 'order'], function(err, category) { - if (err) { - return next(err); - } - if (!category) { - return next(); - } - if (parseInt(category.parentCid, 10)) { - db.sortedSetAdd('cid:' + category.parentCid + ':children', parseInt(category.order, 10), cid, next); - } else { - db.sortedSetAdd('cid:0:children', parseInt(category.order, 10), cid, next); - } - }); - }, function(err) { - if (err) { - return next(err); - } - - winston.info('[2015/08/18] Creating children category sorted sets done'); - Upgrade.update(thisSchemaDate, next); - }); - }); - - } else { - winston.info('[2015/08/18] Creating children category sorted sets skipped'); - next(); - } - }, function(next) { thisSchemaDate = Date.UTC(2015, 8, 30); if (schemaDate < thisSchemaDate) { @@ -536,7 +111,7 @@ Upgrade.upgrade = function(callback) { if (err) { return next(err); } - + if (!userData.picture || !userData.gravatarpicture) { return next(); } @@ -548,7 +123,7 @@ Upgrade.upgrade = function(callback) { }, function (next) { db.deleteObjectField('user:' + uid, 'gravatarpicture', next); - } + } ], next); } else { db.deleteObjectField('user:' + uid, 'gravatarpicture', next); diff --git a/src/user/create.js b/src/user/create.js index 9beca877f4..45fd9cbe62 100644 --- a/src/user/create.js +++ b/src/user/create.js @@ -151,7 +151,7 @@ module.exports = function(User) { } }, userNameValid: function(next) { - next((!utils.isUserNameValid(userData.username) || !userData.userslug) ? new Error('[[error:invalid-username]]') : null); + next((!utils.isUserNameValid(userData.username) || !userData.userslug) ? new Error('[[error:invalid-username, ' + userData.username + ']]') : null); }, passwordValid: function(next) { if (userData.password) { diff --git a/src/user/data.js b/src/user/data.js index e4bd7e8a2e..36dfc79247 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -105,6 +105,8 @@ module.exports = function(User) { user.username = '[[global:guest]]'; user.userslug = ''; user.picture = ''; + user['icon:text'] = '?'; + user['icon:bgColor'] = '#aaa'; } if (user.picture && user.picture === user.uploadedpicture) { @@ -118,7 +120,7 @@ module.exports = function(User) { } // User Icons - if (user.hasOwnProperty('picture') && user.username) { + if (user.hasOwnProperty('picture') && user.username && parseInt(user.uid, 10)) { user['icon:text'] = (user.username[0] || '').toUpperCase(); user['icon:bgColor'] = iconBackgrounds[Array.prototype.reduce.call(user.username, function(cur, next) { return cur + next.charCodeAt(); diff --git a/src/user/delete.js b/src/user/delete.js index 778d270ecc..2fc444da42 100644 --- a/src/user/delete.js +++ b/src/user/delete.js @@ -22,35 +22,12 @@ module.exports = function(User) { function(next) { deleteTopics(uid, next); }, - function(next) { - deleteVotes(uid, next); - }, function(next) { User.deleteAccount(uid, next); } ], callback); }; - function deleteVotes(uid, callback) { - async.waterfall([ - function (next) { - async.parallel({ - upvotedPids: async.apply(db.getSortedSetRange, 'uid:' + uid + ':upvote', 0, -1), - downvotedPids: async.apply(db.getSortedSetRange, 'uid:' + uid + ':downvote', 0, -1) - }, next); - }, - function (pids, next) { - pids = pids.upvotedPids.concat(pids.downvotedPids).filter(function(pid, index, array) { - return pid && array.indexOf(pid) === index; - }); - - async.eachLimit(pids, 50, function(pid, next) { - favourites.unvote(pid, uid, next); - }, next); - } - ], callback); - } - function deletePosts(uid, callback) { deleteSortedSetElements('uid:' + uid + ':posts', posts.purge, callback); } @@ -66,18 +43,19 @@ module.exports = function(User) { } User.deleteAccount = function(uid, callback) { - User.getUserFields(uid, ['username', 'userslug', 'fullname', 'email'], function(err, userData) { - if (err) { - return callback(err); - } - - plugins.fireHook('static:user.delete', { - uid: uid - }, function(err) { - if (err) { - return callback(err); - } - + var userData; + async.waterfall([ + function (next) { + User.getUserFields(uid, ['username', 'userslug', 'fullname', 'email'], next); + }, + function (_userData, next) { + userData = _userData; + plugins.fireHook('static:user.delete', {uid: uid}, next); + }, + function (next) { + deleteVotes(uid, next); + }, + function (next) { async.parallel([ function(next) { db.sortedSetRemove('username:uid', userData.username, next); @@ -137,17 +115,36 @@ module.exports = function(User) { // Deprecated as of v0.7.4, remove in v1.0.0 plugins.fireHook('filter:user.delete', uid, next); } - ], function(err) { - if (err) { - return callback(err); - } - - db.deleteAll(['followers:' + uid, 'following:' + uid, 'user:' + uid], callback); - }); - }); - }); + ], next); + }, + function (results, next) { + db.deleteAll(['followers:' + uid, 'following:' + uid, 'user:' + uid], next); + } + ], callback); }; + function deleteVotes(uid, callback) { + async.waterfall([ + function (next) { + async.parallel({ + upvotedPids: async.apply(db.getSortedSetRange, 'uid:' + uid + ':upvote', 0, -1), + downvotedPids: async.apply(db.getSortedSetRange, 'uid:' + uid + ':downvote', 0, -1) + }, next); + }, + function (pids, next) { + pids = pids.upvotedPids.concat(pids.downvotedPids).filter(function(pid, index, array) { + return pid && array.indexOf(pid) === index; + }); + + async.eachLimit(pids, 50, function(pid, next) { + favourites.unvote(pid, uid, next); + }, next); + } + ], function(err) { + callback(err); + }); + } + function deleteUserIps(uid, callback) { async.waterfall([ function (next) { diff --git a/src/user/picture.js b/src/user/picture.js index 503efd8845..2d72d265d8 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -9,7 +9,6 @@ var async = require('async'), request = require('request'), mime = require('mime'), - uploadsController = require('../controllers/uploads'), plugins = require('../plugins'), file = require('../file'), image = require('../image'), @@ -37,7 +36,7 @@ module.exports = function(User) { next(!extension ? new Error('[[error:invalid-image-extension]]') : null); }, function(next) { - file.isFileTypeAllowed(picture.path, ['png', 'jpeg', 'jpg', 'gif'], next); + file.isFileTypeAllowed(picture.path, next); }, function(next) { image.resizeImage({ @@ -141,8 +140,18 @@ module.exports = function(User) { return User.updateCoverPosition(data.uid, data.position, callback); } - async.series([ + if (!data.imageData && !data.file) { + return callback(new Error('[[error:invalid-data]]')); + } + + async.waterfall([ function(next) { + var size = data.file ? data.file.size : data.imageData.length; + meta.config.maximumCoverImageSize = meta.config.maximumCoverImageSize || 2048; + if (size > parseInt(meta.config.maximumCoverImageSize, 10) * 1024) { + return next(new Error('[[error:file-too-big, ' + meta.config.maximumCoverImageSize + ']]')); + } + if (data.file) { return next(); } @@ -150,12 +159,6 @@ module.exports = function(User) { md5sum = crypto.createHash('md5'); md5sum.update(data.imageData); md5sum = md5sum.digest('hex'); - next(); - }, - function(next) { - if (data.file) { - return next(); - } tempPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), md5sum); var buffer = new Buffer(data.imageData.slice(data.imageData.indexOf('base64') + 7), 'base64'); @@ -165,24 +168,39 @@ module.exports = function(User) { }, next); }, function(next) { - uploadsController.uploadUserCover({ + var image = { name: 'profileCover', - path: data.file ? data.file : tempPath, + path: data.file ? data.file.path : tempPath, uid: data.uid - }, function(err, uploadData) { + }; + + if (plugins.hasListeners('filter:uploadImage')) { + return plugins.fireHook('filter:uploadImage', {image: image, uid: data.uid}, next); + } + + var filename = data.uid + '-profilecover'; + file.saveFileToLocal(filename, 'profile', image.path, function(err, upload) { if (err) { return next(err); } - url = uploadData.url; - next(); + next(null, { + url: nconf.get('relative_path') + upload.url, + name: image.name + }); }); }, - function(next) { - User.setUserField(data.uid, 'cover:url', url, next); + function(uploadData, next) { + url = uploadData.url; + User.setUserField(data.uid, 'cover:url', uploadData.url, next); }, function(next) { - require('fs').unlink(data.file ? data.file : tempPath, next); + require('fs').unlink(data.file ? data.file.path : tempPath, function(err) { + if (err) { + winston.error(err); + } + next(); + }); } ], function(err) { if (err) { diff --git a/src/user/search.js b/src/user/search.js index 322c137738..59a3cd063b 100644 --- a/src/user/search.js +++ b/src/user/search.js @@ -3,7 +3,6 @@ var async = require('async'), meta = require('../meta'), - pagination = require('../pagination'), plugins = require('../plugins'), db = require('../database'); @@ -42,9 +41,11 @@ module.exports = function(User) { searchResult.matchCount = uids.length; if (paginate) { - var pagination = User.paginate(page, uids); - uids = pagination.data; - searchResult.pagination = pagination.pagination; + var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20; + var start = Math.max(0, page - 1) * resultsPerPage; + var stop = start + resultsPerPage; + searchResult.pageCount = Math.ceil(uids.length / resultsPerPage); + uids = uids.slice(start, stop); } User.getUsers(uids, uid, next); @@ -57,21 +58,6 @@ module.exports = function(User) { ], callback); }; - User.paginate = function(page, data) { - var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20; - var start = Math.max(0, page - 1) * resultsPerPage; - var stop = start + resultsPerPage; - - var pageCount = Math.ceil(data.length / resultsPerPage); - var currentPage = Math.max(1, Math.ceil((start + 1) / resultsPerPage)); - - return { - pagination: pagination.create(currentPage, pageCount), - pageCount: pageCount, - data: data.slice(start, stop) - }; - }; - function findUids(query, searchBy, callback) { if (!query) { return callback(null, []); diff --git a/src/views/admin/general/dashboard.tpl b/src/views/admin/general/dashboard.tpl index 3aa18f8867..6ea841352a 100644 --- a/src/views/admin/general/dashboard.tpl +++ b/src/views/admin/general/dashboard.tpl @@ -13,15 +13,15 @@
-
Page views Last Month
+
Page views Last Month
-
Page views This Month
+
Page views This Month
-
Page views in last 24 hours
+
Page views in last 24 hours
diff --git a/src/views/admin/settings/advanced.tpl b/src/views/admin/settings/advanced.tpl index 3a0a314106..b53cabacfb 100644 --- a/src/views/admin/settings/advanced.tpl +++ b/src/views/admin/settings/advanced.tpl @@ -50,6 +50,12 @@ point.

+
+ +
diff --git a/src/views/admin/settings/group.tpl b/src/views/admin/settings/group.tpl index 17cefdf00e..13b5121b24 100644 --- a/src/views/admin/settings/group.tpl +++ b/src/views/admin/settings/group.tpl @@ -6,7 +6,7 @@
diff --git a/src/views/admin/settings/post.tpl b/src/views/admin/settings/post.tpl index 84f2772086..96ceb01ff6 100644 --- a/src/views/admin/settings/post.tpl +++ b/src/views/admin/settings/post.tpl @@ -147,9 +147,6 @@
Topic Thumb Size

- - Allowed file types, (ie png, jpg, pdf, zip). Leave empty to allow all.

-
diff --git a/src/views/admin/settings/user.tpl b/src/views/admin/settings/user.tpl index d361a92cc0..0b27b24175 100644 --- a/src/views/admin/settings/user.tpl +++ b/src/views/admin/settings/user.tpl @@ -100,9 +100,14 @@
- +
+ +
+ + +
diff --git a/src/views/emails/digest_plaintext.tpl b/src/views/emails/digest_plaintext.tpl deleted file mode 100644 index d47c3a0166..0000000000 --- a/src/views/emails/digest_plaintext.tpl +++ /dev/null @@ -1,30 +0,0 @@ -[[email:welcome.greeting, {username}]], - - -[[email:digest.notifications, {site_title}]] - - -* {notifications.text} ({url}{notifications.path}) - - -=== - - -[[email:digest.latest_topics]] - - - -* {recent.title} ({url}/topic/{recent.slug}) - - -* [[email:digest.no_topics, {interval}]] - - -[[email:digest.cta, {site_title}]]: {url} - - -{footer_plaintext} - -=== - -[[email:digest.unsub.info]] [[email:unsub.cta]]: {url}/user/{userslug}/settings. \ No newline at end of file diff --git a/src/views/emails/invitation_plaintext.tpl b/src/views/emails/invitation_plaintext.tpl deleted file mode 100644 index 0ec6501f05..0000000000 --- a/src/views/emails/invitation_plaintext.tpl +++ /dev/null @@ -1,10 +0,0 @@ -[[email:greeting_no_name]], - -[[email:invitation.text1, {username}, {site_title}]] - -[[email:invitation.ctr]] - - {registerLink} - -{footer_plaintext} - diff --git a/src/views/emails/notif_chat_plaintext.tpl b/src/views/emails/notif_chat_plaintext.tpl deleted file mode 100644 index 59cc5dc3ca..0000000000 --- a/src/views/emails/notif_chat_plaintext.tpl +++ /dev/null @@ -1,14 +0,0 @@ -[[email:greeting_with_name, {username}]], - -{summary}: - -{message.content} - -[[email:notif.chat.cta]]: {url}/chats/{fromUserslug} - - -{footer_plaintext} - -=== - -[[email:notif.chat.unsub.info]] [[email:unsub.cta]]. diff --git a/src/views/emails/notif_post_plaintext.tpl b/src/views/emails/notif_post_plaintext.tpl deleted file mode 100644 index a2bf23fe20..0000000000 --- a/src/views/emails/notif_post_plaintext.tpl +++ /dev/null @@ -1,13 +0,0 @@ -[[email:greeting_with_name, {username}]], - -{intro}: - -{postBody} - -[[email:notif.post.cta]]: {url} - -{footer_plaintext} - -=== - -[[email:notif.post.unsub.info]] [[email:unsub.cta]]. diff --git a/src/views/emails/registration_accepted_plaintext.tpl b/src/views/emails/registration_accepted_plaintext.tpl deleted file mode 100644 index 404afd083f..0000000000 --- a/src/views/emails/registration_accepted_plaintext.tpl +++ /dev/null @@ -1,8 +0,0 @@ -[[email:greeting_with_name, {username}]], - -[[email:welcome.text1, {site_title}]] - -[[email:welcome.text3]] - - -{footer_plaintext} \ No newline at end of file diff --git a/src/views/emails/reset_notify_plaintext.tpl b/src/views/emails/reset_notify_plaintext.tpl deleted file mode 100644 index a2239ec13c..0000000000 --- a/src/views/emails/reset_notify_plaintext.tpl +++ /dev/null @@ -1,7 +0,0 @@ -[[email:greeting_with_name, {username}]], - -[[email:reset.notify.text1, {date}]] - -[[email:reset.notify.text2]] - -{footer_plaintext} \ No newline at end of file diff --git a/src/views/emails/reset_plaintext.tpl b/src/views/emails/reset_plaintext.tpl deleted file mode 100644 index 7114b967a7..0000000000 --- a/src/views/emails/reset_plaintext.tpl +++ /dev/null @@ -1,9 +0,0 @@ -[[email:greeting_no_name]], - -[[email:reset.text1]] - -[[email:reset.text2]] [[email:reset.cta]] - - {reset_link} - -{footer_plaintext} \ No newline at end of file diff --git a/src/views/emails/test_plaintext.tpl b/src/views/emails/test_plaintext.tpl deleted file mode 100644 index b7036533f4..0000000000 --- a/src/views/emails/test_plaintext.tpl +++ /dev/null @@ -1,5 +0,0 @@ -[[email:greeting_no_name]], - -[[email:test.text1]] - -{footer_plaintext} \ No newline at end of file diff --git a/src/views/emails/welcome_plaintext.tpl b/src/views/emails/welcome_plaintext.tpl deleted file mode 100644 index 53d9543a0e..0000000000 --- a/src/views/emails/welcome_plaintext.tpl +++ /dev/null @@ -1,10 +0,0 @@ -[[email:greeting_with_name, {username}]], - -[[email:welcome.text1, {site_title}]] - -[[email:welcome.text2]] [[email:welcome.cta]]: - - {confirm_link} - - -{footer_plaintext} \ No newline at end of file