mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-26 10:20:23 +01:00
Compare commits
38 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c36e81f3a | ||
|
|
4ce6bcfa6a | ||
|
|
7220ed2010 | ||
|
|
aebaf8f589 | ||
|
|
745007a2b3 | ||
|
|
0ffd5254ad | ||
|
|
cdca09a7b2 | ||
|
|
7b21760f00 | ||
|
|
69bc870017 | ||
|
|
5a2062ba32 | ||
|
|
d1fb09caec | ||
|
|
963d9b22b3 | ||
|
|
5adb8da427 | ||
|
|
7d9136f655 | ||
|
|
17e5d72815 | ||
|
|
0e5830d6f2 | ||
|
|
bc199d6872 | ||
|
|
648e9c4dc8 | ||
|
|
9560ee3a14 | ||
|
|
acc2dfa037 | ||
|
|
2af11a23ce | ||
|
|
f77f39e937 | ||
|
|
721649bff9 | ||
|
|
6a3200ed48 | ||
|
|
12fb512d3c | ||
|
|
3a520cdfbf | ||
|
|
9770983fdb | ||
|
|
fc495a83ec | ||
|
|
992bcffcdf | ||
|
|
1b9defdf8b | ||
|
|
335d711dbd | ||
|
|
07d57f945b | ||
|
|
91c012e642 | ||
|
|
a936866688 | ||
|
|
07e1102500 | ||
|
|
fc476ba168 | ||
|
|
bbc42a937e | ||
|
|
0283bfbef2 |
22
package.json
22
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "0.9.1",
|
||||
"version": "0.9.2",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -29,11 +29,11 @@
|
||||
"express": "^4.9.5",
|
||||
"express-session": "^1.8.2",
|
||||
"heapdump": "^0.3.0",
|
||||
"html-to-text": "1.3.2",
|
||||
"jimp": "0.2.19",
|
||||
"html-to-text": "1.5.0",
|
||||
"jimp": "0.2.20",
|
||||
"less": "^2.0.0",
|
||||
"logrotate-stream": "^0.2.3",
|
||||
"lru-cache": "^2.6.1",
|
||||
"lru-cache": "3.2.0",
|
||||
"mime": "^1.3.4",
|
||||
"minimist": "^1.1.1",
|
||||
"mkdirp": "~0.5.0",
|
||||
@@ -41,15 +41,15 @@
|
||||
"nconf": "~0.8.2",
|
||||
"nodebb-plugin-composer-default": "1.0.24",
|
||||
"nodebb-plugin-dbsearch": "0.2.18",
|
||||
"nodebb-plugin-emoji-extended": "0.4.16",
|
||||
"nodebb-plugin-emoji-extended": "0.4.17",
|
||||
"nodebb-plugin-markdown": "4.0.8",
|
||||
"nodebb-plugin-mentions": "1.0.10",
|
||||
"nodebb-plugin-mentions": "1.0.12",
|
||||
"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-theme-lavender": "3.0.2",
|
||||
"nodebb-theme-persona": "4.0.40",
|
||||
"nodebb-theme-vanilla": "5.0.15",
|
||||
"nodebb-widget-essentials": "2.0.5",
|
||||
"nodemailer": "0.7.1",
|
||||
"npm": "^2.1.4",
|
||||
@@ -64,8 +64,8 @@
|
||||
"sitemap": "^1.4.0",
|
||||
"socket.io": "^1.2.1",
|
||||
"socket.io-client": "^1.2.1",
|
||||
"socket.io-redis": "^0.1.3",
|
||||
"socketio-wildcard": "~0.1.1",
|
||||
"socket.io-redis": "^0.2.0",
|
||||
"socketio-wildcard": "~0.2.0",
|
||||
"string": "^3.0.0",
|
||||
"templates.js": "0.3.1",
|
||||
"toobusy-js": "^0.4.2",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> أشعَرَ بمشاركة مخلة في <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> أضاف ردا إلى: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> ذكرَ اسمك في <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> صار يتابعك.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> докладва Ваша публикация в <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> публикува отговор на: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> публикува нова тема: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> Ви спомена в <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> започна да Ви следва.",
|
||||
"new_register": "<strong>%1</strong> изпрати заявка за регистрация.",
|
||||
"email-confirmed": "Е-пощата беше потвърдена",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"pagination.out_of": "%2 এর মাঝে %1",
|
||||
"pagination.enter_index": "সূচক লিখুন",
|
||||
"header.admin": "অ্যাডমিন",
|
||||
"header.categories": "Categories",
|
||||
"header.categories": "বিভাগ",
|
||||
"header.recent": "সাম্প্রতিক",
|
||||
"header.unread": "অপঠিত",
|
||||
"header.tags": "ট্যাগ",
|
||||
@@ -52,7 +52,7 @@
|
||||
"views": "দেখেছেন",
|
||||
"reputation": "সন্মাননা",
|
||||
"read_more": "আরো পড়ুন",
|
||||
"more": "More",
|
||||
"more": "আরো...",
|
||||
"posted_ago_by_guest": "অতিথি পোস্ট করেছেন %1",
|
||||
"posted_ago_by": " %1 %2 দ্বারা পোস্টকৃত",
|
||||
"posted_ago": "পোস্ট করেছেন %1",
|
||||
@@ -83,5 +83,5 @@
|
||||
"follow": "Follow",
|
||||
"unfollow": "Unfollow",
|
||||
"delete_all": "সব মুছে ফেলুন",
|
||||
"map": "Map"
|
||||
"map": "ম্যাপ"
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"username-email": "Username / Email",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"username-email": "ইউজারনেম / ইমেইল",
|
||||
"username": "ইউজারনেম",
|
||||
"email": "ইমেইল",
|
||||
"remember_me": "মনে রাখুন",
|
||||
"forgot_password": "পাসওয়ার্ড ভুলে গিয়েছেন?",
|
||||
"alternative_logins": "বিকল্প প্রবেশ",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> একটি উত্তর দিয়েছেন: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong>, <strong>%2</strong> এ আপনার নাম উল্লেখ করেছেন",
|
||||
"user_started_following_you": "<strong>%1</strong> আপনাকে অনুসরন করা শুরু করেছেন।",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "ইমেইল নিশ্চিত করা হয়েছে",
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
"users/map": "User Map",
|
||||
"users/search": "User Search",
|
||||
"notifications": "বিজ্ঞপ্তি",
|
||||
"tags": "Tags",
|
||||
"tags": "ট্যাগসমূহ",
|
||||
"tag": "Topics tagged under \"%1\"",
|
||||
"register": "Register an account",
|
||||
"login": "Login to your account",
|
||||
"reset": "Reset your account password",
|
||||
"categories": "Categories",
|
||||
"categories": "বিভাগ",
|
||||
"groups": "Groups",
|
||||
"group": "%1 group",
|
||||
"chats": "Chats",
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
"alternative_registration": "বিকল্প নিবন্ধন",
|
||||
"terms_of_use": "নিয়মাবলী",
|
||||
"agree_to_terms_of_use": "আমি নিয়মাবলী মেনে চলতে সম্মতি জানালাম",
|
||||
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator."
|
||||
"registration-added-to-queue": "আপনার নিবন্ধনটি এ্যাপ্লুভাল তালিকায় যুক্ত হয়েছে। একজন এডমিনিস্ট্রেটর কর্তৃক নিবন্ধন গৃহীত হলে আপনি একটি মেইল পাবেন। "
|
||||
}
|
||||
@@ -1,40 +1,40 @@
|
||||
{
|
||||
"results_matching": "\"%2\" এর সাথে মিলিয়ে %1 ফলাফল পাওয়া গেছে, ( %3 seconds সময় লেগেছে )",
|
||||
"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",
|
||||
"search-child-categories": "Search child categories",
|
||||
"reply-count": "Reply Count",
|
||||
"at-least": "At least",
|
||||
"at-most": "At most",
|
||||
"post-time": "Post time",
|
||||
"no-matches": "কোন মিল খুঁজে পাওয়া যায় নি",
|
||||
"advanced-search": "এডভান্সড সার্চ",
|
||||
"in": "এর মধ্যে",
|
||||
"titles": "টাইটেলস",
|
||||
"titles-posts": "টাইটেল এবং পোস্ট সমূহ",
|
||||
"posted-by": "পোষ্ট করেছেন",
|
||||
"in-categories": "বিভাগের ভিতরে",
|
||||
"search-child-categories": "উপবিভাগের ভিতরে",
|
||||
"reply-count": "রিপ্লাই কাউন্ট",
|
||||
"at-least": "কমপক্ষে",
|
||||
"at-most": "সর্বোচ্চ",
|
||||
"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",
|
||||
"last-reply-time": "Last reply time",
|
||||
"topic-title": "Topic title",
|
||||
"number-of-replies": "Number of replies",
|
||||
"number-of-views": "Number of views",
|
||||
"topic-start-date": "Topic start date",
|
||||
"username": "Username",
|
||||
"any-date": "যেকোন তারিখ",
|
||||
"yesterday": "গতকাল",
|
||||
"one-week": "এক সপ্তাহ",
|
||||
"two-weeks": "দুই সপ্তাহ",
|
||||
"one-month": "এক মাস",
|
||||
"three-months": "তিন মাস",
|
||||
"six-months": "ছয় মাস",
|
||||
"one-year": "এক বছর",
|
||||
"sort-by": "সাজানোর ভিত্তি",
|
||||
"last-reply-time": "সর্বশেষ রিপ্লাইয়ের সময়",
|
||||
"topic-title": "টপিকের টাইটেল",
|
||||
"number-of-replies": "রিপ্লাইয়ের সংখ্যা",
|
||||
"number-of-views": "সর্বমোট ভিউ",
|
||||
"topic-start-date": "টপিক শুরুর তারিখ",
|
||||
"username": "ইউজারনেম",
|
||||
"category": "বিভাগ",
|
||||
"descending": "In descending order",
|
||||
"ascending": "In ascending order",
|
||||
"save-preferences": "Save preferences",
|
||||
"descending": "বড় থেকে ছোট অর্ডারে",
|
||||
"ascending": "ছোট থেকে বড় অর্ডারে",
|
||||
"save-preferences": "প্রেফারেন্স সেভ",
|
||||
"clear-preferences": "Clear preferences",
|
||||
"search-preferences-saved": "Search preferences saved",
|
||||
"search-preferences-cleared": "Search preferences cleared",
|
||||
"show-results-as": "Show results as"
|
||||
"show-results-as": "ফলাফল দেখানো হোক : "
|
||||
}
|
||||
@@ -2,17 +2,17 @@
|
||||
"banned": "নিষিদ্ধ",
|
||||
"offline": "অফলাইন",
|
||||
"username": "সদস্যের নাম",
|
||||
"joindate": "Join Date",
|
||||
"postcount": "Post Count",
|
||||
"joindate": "নিবন্ধন তারিখ",
|
||||
"postcount": "সর্বমোট পোষ্ট",
|
||||
"email": "ইমেইল",
|
||||
"confirm_email": "ইমেইল নিশ্চিত করুন",
|
||||
"ban_account": "Ban Account",
|
||||
"ban_account_confirm": "Do you really want to ban this user?",
|
||||
"unban_account": "Unban Account",
|
||||
"ban_account": "একাউন্ট নিষিদ্ধ করুন",
|
||||
"ban_account_confirm": "আপনি কি নিশ্চিত যে এই সদস্যকে নিষিদ্ধ করতে চান ?",
|
||||
"unban_account": "নিষেদ্ধাজ্ঞা তুলে নিন",
|
||||
"delete_account": "একাউন্ট মুছে ফেলুন",
|
||||
"delete_account_confirm": "আপনি কি নিশ্চিত যে আপনি আপনার একাউন্ট মুছে ফেলতে চান ? <br /><strong>এই কাজটির ফলে আপনার কোন তথ্য পুনরূদ্ধার করা সম্ভব নয় </strong><br /><br /> নিশ্চিত করতে আপনার ইউজারনেম প্রবেশ করান। ",
|
||||
"delete_this_account_confirm": "Are you sure you want to delete this account? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
|
||||
"account-deleted": "Account deleted",
|
||||
"account-deleted": "একাউন্ট মুছে ফেলা হয়েছে",
|
||||
"fullname": "পুর্ণ নাম",
|
||||
"website": "ওয়েবসাইট",
|
||||
"location": "স্থান",
|
||||
@@ -23,23 +23,23 @@
|
||||
"profile_views": "প্রোফাইল দেখেছেন",
|
||||
"reputation": "সন্মাননা",
|
||||
"favourites": "পছন্দের তালিকা",
|
||||
"watched": "Watched",
|
||||
"watched": "দেখা হয়েছে",
|
||||
"followers": "যাদের অনুসরণ করছেন",
|
||||
"following": "যারা আপনাকে অনুসরণ করছে",
|
||||
"aboutme": "About me",
|
||||
"aboutme": "আমার সম্পর্কে: ",
|
||||
"signature": "স্বাক্ষর",
|
||||
"birthday": "জন্মদিন",
|
||||
"chat": "বার্তালাপ",
|
||||
"chat_with": "Chat with %1",
|
||||
"chat_with": "চ্যাট উইথ %1",
|
||||
"follow": "অনুসরন করুন",
|
||||
"unfollow": "অনুসরন করা থেকে বিরত থাকুন",
|
||||
"more": "More",
|
||||
"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 থেকে নতুন ছবি আপলোড করুন",
|
||||
@@ -57,8 +57,8 @@
|
||||
"password_same_as_username": "Your password is the same as your username, please select another password.",
|
||||
"upload_picture": "ছবি আপলোড করুন",
|
||||
"upload_a_picture": "ছবি (একটি) আপলোড করুন",
|
||||
"remove_uploaded_picture": "Remove Uploaded Picture",
|
||||
"image_spec": "You may only upload PNG, JPG, or BMP files",
|
||||
"remove_uploaded_picture": "আপলোড করা ছবিটি সরিয়ে নাও",
|
||||
"image_spec": "আপনি শুধুমাত্র PNG, JPG অথবা BMP ফাইল আপলোড করতে পারবেন",
|
||||
"settings": "সেটিংস",
|
||||
"show_email": "আমার ইমেইল দেখাও",
|
||||
"show_fullname": "আমার সম্পূর্ণ নাম দেখাও",
|
||||
@@ -70,21 +70,21 @@
|
||||
"digest_weekly": "সাপ্তাহিক",
|
||||
"digest_monthly": "মাসিক",
|
||||
"send_chat_notifications": "যদি আমি অনলাইনে না থাকি, সেক্ষেত্রে নতুন চ্যাট মেসেজ আসলে আমাকে ইমেইল করুন",
|
||||
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
|
||||
"settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
|
||||
"send_post_notifications": "আমার সাবস্ক্রাইব করা টপিকগুলোতে রিপ্লাই করা হলে আমাকে মেইল করা হোক",
|
||||
"settings-require-reload": "কিছু কিছু পরিবর্তনের জন্য রিলোড করা আবশ্যক। পেজটি রিলোড করতে এখানে ক্লিক করুন",
|
||||
"has_no_follower": "এই সদস্যের কোন ফলোয়ার নেই :(",
|
||||
"follows_no_one": "এই সদস্য কাউকে ফলো করছেন না :(",
|
||||
"has_no_posts": "This user hasn't posted anything yet.",
|
||||
"has_no_topics": "This user hasn't posted any topics yet.",
|
||||
"has_no_watched_topics": "This user hasn't watched any topics yet.",
|
||||
"has_no_posts": "এই সদস্য এখন পর্যন্ত কোন পোস্ট করেন নি",
|
||||
"has_no_topics": "এই সদস্য এখনো কোন টপিক করেন নি",
|
||||
"has_no_watched_topics": "এই সদস্য এখনো কোন টপিক দেখেন নি",
|
||||
"email_hidden": "ইমেইল গোপন রাখা হয়েছে",
|
||||
"hidden": "গোপন করা হয়েছে",
|
||||
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
|
||||
"paginate_description": "ইনফাইনাইট স্ক্রলের বদলে টপিক ও পোস্টের জন্য পেজিনেশন ব্যাবহার করা হোক",
|
||||
"topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে",
|
||||
"posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে",
|
||||
"notification_sounds": "Play a sound when you receive a notification",
|
||||
"notification_sounds": "নোটিফিকেশনের জন্য নোটিফিকেশন সাউন্ড এনাবল করুন",
|
||||
"browsing": "Browsing সেটিংস",
|
||||
"open_links_in_new_tab": "Open outgoing links in new tab",
|
||||
"open_links_in_new_tab": "আউটগোয়িং লিংকগুলো নতুন ট্যাবে খুলুন",
|
||||
"enable_topic_searching": "In-Topic সার্চ সক্রীয় করো",
|
||||
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
|
||||
"follow_topics_you_reply_to": "Follow topics that you reply to",
|
||||
|
||||
@@ -5,17 +5,17 @@
|
||||
"search": "খুঁজুন",
|
||||
"enter_username": "ইউজারনেম এর ভিত্তিতে সার্চ করুন",
|
||||
"load_more": "আরো লোড করুন",
|
||||
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
|
||||
"filter-by": "Filter By",
|
||||
"online-only": "Online only",
|
||||
"picture-only": "Picture only",
|
||||
"invite": "Invite",
|
||||
"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"
|
||||
"users-found-search-took": "%1 জন সদস্য(দের) খুঁজে পাওয়া গেছে। খুঁজতে সময় লেগেছে %2 সেকেন্ড ",
|
||||
"filter-by": "ফিল্টার করার ধরন",
|
||||
"online-only": "শুধুমাত্র অনলাইন",
|
||||
"picture-only": "শুধুমাত্র ছবি",
|
||||
"invite": "ইনভাইট",
|
||||
"invitation-email-sent": "%1 কে একটি ইনভাইটেশন ইমেইল পাঠানো হয়েছে",
|
||||
"user_list": "সদস্য তালিকা",
|
||||
"recent_topics": "সাম্প্রতিক টপিক",
|
||||
"popular_topics": "জনপ্রিয় টপিক",
|
||||
"unread_topics": "অপঠিত টপিক",
|
||||
"categories": "বিভাগ",
|
||||
"tags": "ট্যাগসমূহ",
|
||||
"map": "ম্যাপ"
|
||||
}
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email Confirmed",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> har anmeldt et indlæg i <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> har skrevet et svar til: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> har oprettet en ny tråd: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> nævnte dig i <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> har valgt at følge dig.",
|
||||
"new_register": "<strong>%1</strong> har sendt en registrerings anmodning.",
|
||||
"email-confirmed": "Email bekræftet",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"greeting_with_name": "Hallo %1",
|
||||
"welcome.text1": "Vielen Dank für die Registrierung bei %1!",
|
||||
"welcome.text2": "Um dein Konto vollständig zu aktivieren, müssen wir überprüfen, ob du Besitzer der E-Mail-Adresse bist, mit der du dich registriert hast.",
|
||||
"welcome.text3": "Ein Administrator hat deine Registration aktzeptiert. Du kannst dich jetzt mit deinem Benutzernamen/Passwort einloggen.",
|
||||
"welcome.text3": "Ein Administrator hat deine Registrierung aktzeptiert. Du kannst dich jetzt mit deinem Benutzernamen/Passwort einloggen.",
|
||||
"welcome.cta": "Klicke hier, um deine E-Mail-Adresse zu bestätigen.",
|
||||
"invitation.text1": "%1 hat dich eingeladen %2 beizutreten",
|
||||
"invitation.ctr": "Klicke hier, um ein Konto zu erstellen.",
|
||||
@@ -25,7 +25,7 @@
|
||||
"notif.chat.cta": "Klicke hier, um die Unterhaltung fortzusetzen",
|
||||
"notif.chat.unsub.info": "Diese Chat-Benachrichtigung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
|
||||
"notif.post.cta": "Hier klicken, um das gesamte Thema zu lesen",
|
||||
"notif.post.unsub.info": "Diese Mitteilung wurde wegen ihrer Abonnement-Einstellung gesendet.",
|
||||
"notif.post.unsub.info": "Diese Mitteilung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
|
||||
"test.text1": "Dies ist eine Test-E-Mail, um zu überprüfen, ob der E-Mailer deines NodeBB korrekt eingestellt wurde.",
|
||||
"unsub.cta": "Klicke hier, um diese Einstellungen zu ändern.",
|
||||
"closing": "Danke!"
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> hat einen Beitrag in </strong>%2</strong> gemeldet",
|
||||
"user_posted_to": "<strong>%1</strong> hat auf <strong>%2</strong> geantwortet.",
|
||||
"user_posted_topic": "<strong>%1</strong> hat ein neues Thema erstellt: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> erwähnte dich in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> folgt dir jetzt.",
|
||||
"new_register": "<strong>%1</strong> hat eine Registrationsanfrage geschickt.",
|
||||
"email-confirmed": "E-Mail bestätigt",
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"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/following": "Nutzer, denen %1 folgt",
|
||||
"account/followers": "Nutzer, die %1 folgen",
|
||||
"account/posts": "Beiträge von %1",
|
||||
"account/topics": "Themen verfasst von %1",
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
"reputation": "Reputation",
|
||||
"favourites": "Favoriten",
|
||||
"watched": "Beobachtet",
|
||||
"followers": "Folger",
|
||||
"following": "Folgt",
|
||||
"followers": "Follower",
|
||||
"following": "Folge ich",
|
||||
"aboutme": "Über mich",
|
||||
"signature": "Signatur",
|
||||
"birthday": "Geburtstag",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "Ο/Η <strong>%1</strong> επεσήμανε μια δημοσίευσή σου στο <strong>%2</strong>",
|
||||
"user_posted_to": "Ο/Η <strong>%1</strong> έγραψε μια απάντηση στο: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "Ο/Η <strong>%1</strong> σε ανέφερε στο <strong>%2</strong>",
|
||||
"user_started_following_you": "Ο/Η <strong>%1</strong> σε ακολουθεί.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Το Εmail Επιβεβαιώθηκε",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email Confirmed",
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to" : "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email Confirmed",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> ha reportado una respuesta en <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> ha respondido a: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> ha publicado un nuevo tema: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> te mencionó en <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> comenzó a seguirte.",
|
||||
"new_register": "<strong>%1</strong> envió una solicitud de registro.",
|
||||
"email-confirmed": "Correo electrónico confirmado",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> raporteeris postitust <strong>%2</strong>",
|
||||
"user_posted_to": "Kasutaja <strong>%1</strong> postitas vastuse teemasse <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> on postitanud uue teema: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mainis sind postituses <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> hakkas sind jälgima.",
|
||||
"new_register": "<strong>%1</strong> saatis registreerimistaotluse.",
|
||||
"email-confirmed": "Emaili aadress kinnitatud",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> دیدگاه شما را در <strong>%2</strong> علامتدار کرده",
|
||||
"user_posted_to": "پاسخ دادن به <strong>%2</strong> از سوی <strong>%1</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> یک جستار جدید ارسال کرده: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> در \n<strong>%1</strong> mentioned you in <strong>%2</strong> از شما نام برده",
|
||||
"user_started_following_you": "<strong>%1</strong> شروع به دنبال کردن شما کرده",
|
||||
"new_register": "<strong>%1</strong> یک درخواست ثبت نام ارسال کرده است",
|
||||
"email-confirmed": "رایانامه تایید شد",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> on vastannut viestiin: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> on kirjoittanut uuden aiheen: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mainitsi sinut viestissä <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> alkoi seurata sinua.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Sähköpostiosoite vahvistettu",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> a signalé un message dans <strong>%2</strong>.",
|
||||
"user_posted_to": "<strong>%1</strong> a répondu à : <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> a posté un nouveau sujet: <strong>%2</strong>.",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> vous a mentionné dans <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> vous suit.",
|
||||
"new_register": "<strong>%1</strong> a envoyé une demande d'incription.",
|
||||
"email-confirmed": "Email vérifié",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> reportou unha mensaxe en <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> publicou unha resposta en: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> publicou un novo tema: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mencionóute en <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> comezou a seguirte.",
|
||||
"new_register": "<strong>%1</strong> enviou unha petición de rexistro.",
|
||||
"email-confirmed": "Correo confirmado",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> דיווח על פוסט ב <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> פרסם תגובה ל: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> העלה נושא חדש: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> הזכיר אותך ב <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> התחיל לעקוב אחריך.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "כתובת המייל אושרה",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email Confirmed",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> menandai sebuah posting di <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> telah mengirim sebuah balasan kepada: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> telah membuat topik baru: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> menyebut mu di <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> mulai mengikutimu.",
|
||||
"new_register": "<strong>%1</strong> mengirim permintaan registrasi.",
|
||||
"email-confirmed": "Email telah Dikonfirmasi",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> ha segnalato un post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> ha postato una risposta a: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> ha postato un nuovo Topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> ti ha menzionato in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> ha iniziato a seguirti.",
|
||||
"new_register": "<strong>%1</strong> ha inviato una richiesta di registrazione.",
|
||||
"email-confirmed": "Email Confermata",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> は <strong>%2</strong> への返事を作成しました。",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email Confirmed",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong>님이 <strong>%2</strong>의 게시물을 신고했습니다.",
|
||||
"user_posted_to": "<strong>%1</strong>님이 <strong>%2</strong>에 답글을 작성했습니다.",
|
||||
"user_posted_topic": "<strong>%1</strong>님이 새 주제를 작성했습니다: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong>님이 <strong>%2</strong>에서 나를 언급했습니다.",
|
||||
"user_started_following_you": "<strong>%1</strong>님이 나를 팔로우합니다.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "확인된 이메일",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong>pagrįso nuomone čia <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> parašė atsaką <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> paskelbė naują temą: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> paminėjo Jus <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> pradėjo sekti tave",
|
||||
"new_register": "<strong>%1</strong> atsiuntė registracijos prašymą",
|
||||
"email-confirmed": "El. paštas patvirtintas",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> menanda kiriman anda di <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> telah membalas kiriman kepada: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> membuka topik baru : <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> sebut anda di <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> mula mengikut anda.",
|
||||
"new_register": "<strong>%1</strong> menghantar jemputan pendaftaran.",
|
||||
"email-confirmed": "Emel Disahkan",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> har flagget et innlegg i <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> har skrevet et svar til: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> har skrevet et nytt emne: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> nevnte deg i <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> begynte å følge deg.",
|
||||
"new_register": "<strong>%1</strong> sendte en forespørsel om registrering",
|
||||
"email-confirmed": "E-post bekreftet",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> rapporteerde een bericht in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> heeft een reactie geplaatst in <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> heeft een nieuw onderwerp geplaatst: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "Onze naam is genoemd door <strong>%1</strong> in <strong>%2</strong>.",
|
||||
"user_started_following_you": "<strong>%1</strong> volgt jou nu.",
|
||||
"new_register": "<strong>%1</strong> heeft een registratie verzoek aangevraagd.",
|
||||
"email-confirmed": "E-mailadres bevestigd",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1<strong> oflagował Twój post w <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> dodał odpowiedź do <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> wysłał nowy temat: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> wspomniał cię w <strong>%2</strong>",
|
||||
"user_started_following_you": "<string>%1</strong> zaczął Cię śledzić.",
|
||||
"new_register": "<strong>%1</strong> wysłał żądanie rejestracji.",
|
||||
"email-confirmed": "E-mail potwierdzony",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> sinalizou um post em <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> postou uma resposta para: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> postou um novo tópico: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mencionou você em <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> começou a seguir você.",
|
||||
"new_register": "<strong>%1</strong> lhe enviou um pedido de cadastro.",
|
||||
"email-confirmed": "Email Confirmado",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> a semnalizat un mesaj în <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> a postat un răspuns la: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> te-a menționat în <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> a început să te urmărească.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email confirmat",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> пометил сообщение в <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> ответил на запись: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> открыл новую тему: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> упомянул Вас в <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> подписался на Вас.",
|
||||
"new_register": "<strong>%1</strong> отправлен запрос на регистрацию.",
|
||||
"email-confirmed": "Email подтвержден",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> yatambikanye ikintu muri <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> yanditse kuri: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> yatangije ikiganiro gishya: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> yakuvuze muri <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> yatangiye kugukurikira.",
|
||||
"new_register": "<strong>%1</strong> yasabye kwandikwa.",
|
||||
"email-confirmed": "Email Yemejwe",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email Confirmed",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> odpovedal: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email bol potvrdený",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong>je prijavil vašo objavo v <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> je odgovoril na: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> je odprl novo temo: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> te je omenil v <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> te sledi.",
|
||||
"new_register": "<strong>%1</strong> je poslal prošnjo za registracijo.",
|
||||
"email-confirmed": "E-mail naslov potrjen",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> означи поруку у <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> посла нови одговор за: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> постави нову тему:",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> вас помену у <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> поче да вас прати.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Е-пошта је је отврђена.",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flaggade ett inlägg i <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> har skrivit ett svar på: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> har skapat ett nytt ämne: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> nämnde dig i <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> började följa dig.",
|
||||
"new_register": "<strong>%1</strong> skickade en registreringsförfrågan.",
|
||||
"email-confirmed": "Epost bekräftad",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Email ได้รับการยืนยันแล้ว",
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
"group-name-too-short": "Grup ismi çok kısa",
|
||||
"group-already-exists": "Grup zaten var",
|
||||
"group-name-change-not-allowed": "Grup ismini değiştiremezsiniz",
|
||||
"group-already-member": "Already part of this group",
|
||||
"group-already-member": "Bu grubun zaten bir parçasısın.",
|
||||
"group-not-member": "Bu grubun bir üyesi yok",
|
||||
"group-needs-owner": "Bu grubu en az bir kişi sahiplenmesi gerekiyor",
|
||||
"group-already-invited": "Bu kullanıcı zaten davet edilmiş",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> bir iletiyi bayrakladı. <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> <strong>%2</strong> başlığına bir ileti gönderdi.",
|
||||
"user_posted_topic": "<strong>%1</strong> yeni bir konu yarattı: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> <strong>%2</strong> başlığında sizden bahsetti.",
|
||||
"user_started_following_you": "<strong>%1</strong> sizi takip etmeye başladı.",
|
||||
"new_register": "<strong>%1</strong> kayıt olma isteği gönderdi.",
|
||||
"email-confirmed": "E-posta onaylandı",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> gắn cờ 1 bài trong <strong>%2</strong>",
|
||||
"user_posted_to": "<strong>%1</strong> đã trả lời <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> đã gởi chủ đề mới ở <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> nhắc đến bạn trong <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> đã theo dõi bạn.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "Đã xác nhận email",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> 在 <strong>%2</strong> 标记了一个帖子",
|
||||
"user_posted_to": "<strong>%1</strong> 回复了:<strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> 发表了新主题:<strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> 在 <strong>%2</strong> 中提到了您",
|
||||
"user_started_following_you": "<strong>%1</strong>关注了您。",
|
||||
"new_register": "<strong>%1</strong> 发出了注册请求",
|
||||
"email-confirmed": "电子邮箱已确认",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"user_flagged_post_in": "<strong>%1</strong> 舉報了 <strong>%2</strong>裡的一個post。",
|
||||
"user_posted_to": "<strong>%1</strong> 發布一個回覆給: <strong>%2</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> 發布了一個新的主題: <strong>%2</strong>",
|
||||
"user_mentioned_you_in": "<strong>%1</strong> 在 <strong>%2</strong>提到你",
|
||||
"user_started_following_you": "<strong>%1</strong> 開始關注你。",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"email-confirmed": "已確認電郵",
|
||||
|
||||
@@ -1 +1,22 @@
|
||||
.flag-reporters {
|
||||
font-size: 1.2rem;
|
||||
|
||||
ul {
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
list-style-type: none;
|
||||
|
||||
img, .user-icon {
|
||||
.user-icon-style(18px, 1rem);
|
||||
margin-right: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.flag-post-body {
|
||||
img, .user-icon {
|
||||
.user-icon-style(24px, 1.5rem);
|
||||
}
|
||||
}
|
||||
@@ -55,3 +55,24 @@
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
.avatar {
|
||||
/* Contains the user icon class as a mixin, so there's no need to include that in the template */
|
||||
.user-icon;
|
||||
|
||||
&.avatar-sm {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
.user-icon-style(24px, 1.5rem);
|
||||
}
|
||||
|
||||
&.avatar-lg {
|
||||
width: 128px;
|
||||
height: 128px;
|
||||
.user-icon-style(128px, 7.5rem);
|
||||
}
|
||||
|
||||
&.avatar-rounded {
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
@@ -10,8 +10,13 @@ define('admin/appearance/skins', function() {
|
||||
$('body').append(scriptEl);
|
||||
|
||||
$('#skins').on('click', function(e){
|
||||
var target = $(e.target),
|
||||
action = target.attr('data-action');
|
||||
var target = $(e.target);
|
||||
|
||||
if (!target.attr('data-action')) {
|
||||
target = target.parents('[data-action]');
|
||||
}
|
||||
|
||||
var action = target.attr('data-action');
|
||||
|
||||
if (action && action === 'use') {
|
||||
var parentEl = target.parents('[data-theme]'),
|
||||
@@ -19,6 +24,7 @@ define('admin/appearance/skins', function() {
|
||||
cssSrc = parentEl.attr('data-css'),
|
||||
themeId = parentEl.attr('data-theme');
|
||||
|
||||
|
||||
socket.emit('admin.themes.set', {
|
||||
type: themeType,
|
||||
id: themeId,
|
||||
|
||||
@@ -60,10 +60,7 @@ define('admin/general/dashboard', ['semver'], function(semver) {
|
||||
checkEl.append('<p>You are <strong>up-to-date</strong> <i class="fa fa-check"></i></p>');
|
||||
} else if (semver.gt(latestVersion, version)) {
|
||||
checkEl.removeClass('alert-info').addClass('alert-danger');
|
||||
checkEl.append('<p>A new version (v' + latestVersion + ') has been released. Consider upgrading your NodeBB.</p>');
|
||||
} else if (semver.gt(version, latestVersion)) {
|
||||
checkEl.removeClass('alert-info').addClass('alert-warning');
|
||||
checkEl.append('<p>You are running a <strong>development version</strong>! Unintended bugs may occur. <i class="fa fa-warning"></i></p>');
|
||||
checkEl.append('<p>A new version (v' + latestVersion + ') has been released. Consider <a href="https://docs.nodebb.org/en/latest/upgrading/index.html">upgrading your NodeBB</a>.</p>');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ define('admin/manage/flags', [
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
|
||||
$('.post-container').empty().text('No flagged posts!');
|
||||
ajaxify.refresh();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
"use strict";
|
||||
/* global config, socket, define, templates, bootbox, app, ajaxify, */
|
||||
/* global config, socket, define, templates, bootbox, app, ajaxify */
|
||||
define('admin/manage/users', ['admin/modules/selectable'], function(selectable) {
|
||||
var Users = {};
|
||||
|
||||
Users.init = function() {
|
||||
var yourid = ajaxify.data.yourid;
|
||||
|
||||
selectable.enable('#users-container', '.user-selectable');
|
||||
|
||||
function getSelectedUids() {
|
||||
@@ -94,7 +92,7 @@ define('admin/manage/users', ['admin/modules/selectable'], function(selectable)
|
||||
return;
|
||||
}
|
||||
|
||||
if (uids.indexOf(yourid) !== -1) {
|
||||
if (uids.indexOf(app.user.uid.toString()) !== -1) {
|
||||
app.alertError('You can\'t remove yourself as Administrator!');
|
||||
} else {
|
||||
socket.emit('admin.user.makeAdmins', uids, done('User(s) are now administrators.', '.administrator', true));
|
||||
@@ -108,7 +106,7 @@ define('admin/manage/users', ['admin/modules/selectable'], function(selectable)
|
||||
return;
|
||||
}
|
||||
|
||||
if (uids.indexOf(yourid.toString()) !== -1) {
|
||||
if (uids.indexOf(app.user.uid.toString()) !== -1) {
|
||||
app.alertError('You can\'t remove yourself as Administrator!');
|
||||
} else {
|
||||
bootbox.confirm('Do you really want to remove admins?', function(confirm) {
|
||||
|
||||
@@ -38,13 +38,8 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll',
|
||||
};
|
||||
|
||||
Chats.addEventListeners = function() {
|
||||
$('.chats-list').on('click', 'li', function(e) {
|
||||
var env = utils.findBootstrapEnvironment();
|
||||
if (env === 'xs' || env === 'sm') {
|
||||
app.openChat($(this).attr('data-username'), $(this).attr('data-uid'));
|
||||
} else {
|
||||
Chats.switchChat(parseInt($(this).attr('data-uid'), 10), $(this).attr('data-username'));
|
||||
}
|
||||
components.get('chat/recent').on('click', 'li', function(e) {
|
||||
Chats.switchChat(parseInt($(this).attr('data-uid'), 10), $(this).attr('data-username'));
|
||||
});
|
||||
|
||||
Chats.addSendHandlers(Chats.getRecipientUid(), $('.chat-input'), $('.expanded-chat button[data-action="send"]'));
|
||||
|
||||
@@ -255,10 +255,12 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator
|
||||
pid: post.attr('data-pid'),
|
||||
room_id: app.currentRoom
|
||||
}, function(err) {
|
||||
if (err.message === 'self-vote') {
|
||||
showVotes(post.attr('data-pid'));
|
||||
} else {
|
||||
app.alertError(err.message);
|
||||
if (err) {
|
||||
if (err.message === 'self-vote') {
|
||||
showVotes(post.attr('data-pid'));
|
||||
} else {
|
||||
app.alertError(err.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -268,6 +270,11 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator
|
||||
function showVotes(pid) {
|
||||
socket.emit('posts.getVoters', {pid: pid, cid: ajaxify.data.cid}, function(err, data) {
|
||||
if (err) {
|
||||
if (err.message === '[[error:no-privileges]]') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Only show error if it's an unexpected error.
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ $('document').ready(function() {
|
||||
|
||||
$.post('/launch', function() {
|
||||
setInterval(function() {
|
||||
$.get('/admin', function(data) {
|
||||
$.get('/admin').done(function(data) {
|
||||
window.location = 'admin';
|
||||
});
|
||||
}, 750);
|
||||
|
||||
@@ -19,11 +19,6 @@ define('chat', ['components', 'taskbar', 'string', 'sounds', 'forum/chats', 'tra
|
||||
});
|
||||
|
||||
socket.on('event:chats.receive', function(data) {
|
||||
if (ajaxify.currentPage.slice(0, 6) === 'chats/') {
|
||||
// User is on the chats page, so do nothing (src/forum/chats.js will handle it)
|
||||
return;
|
||||
}
|
||||
|
||||
var username = data.message.fromUser.username;
|
||||
var isSelf = parseInt(data.message.fromUser.uid, 10) === parseInt(app.user.uid, 10);
|
||||
data.message.self = data.self;
|
||||
|
||||
@@ -179,21 +179,68 @@ apiController.getObject = function(req, res, next) {
|
||||
apiController.getUserByUID = function(req, res, next) {
|
||||
var uid = req.params.uid ? req.params.uid : 0;
|
||||
|
||||
getUserByUID(uid, function(err, userData) {
|
||||
if (err || !userData) {
|
||||
return next(err);
|
||||
}
|
||||
res.json(userData);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
apiController.getUserByUsername = function(req, res, next) {
|
||||
var username = req.params.username ? req.params.username : 0;
|
||||
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
user.getUidByUsername(username, next);
|
||||
},
|
||||
function(uid, next) {
|
||||
getUserByUID(uid, next);
|
||||
}
|
||||
], function(err, userData) {
|
||||
if (err || !userData) {
|
||||
return next(err);
|
||||
}
|
||||
res.json(userData);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
apiController.getUserByEmail = function(req, res, next) {
|
||||
var email = req.params.email ? req.params.email : 0;
|
||||
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
user.getUidByEmail(email, next);
|
||||
},
|
||||
function(uid, next) {
|
||||
getUserByUID(uid, next);
|
||||
}
|
||||
], function(err, userData) {
|
||||
if (err || !userData) {
|
||||
return next(err);
|
||||
}
|
||||
res.json(userData);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
function getUserByUID(uid, callback) {
|
||||
async.parallel({
|
||||
userData: async.apply(user.getUserData, uid),
|
||||
settings: async.apply(user.getSettings, uid)
|
||||
}, function(err, results) {
|
||||
if (err || !results.userData) {
|
||||
return next(err);
|
||||
return callback(err, null);
|
||||
}
|
||||
|
||||
results.userData.email = results.settings.showemail ? results.userData.email : undefined;
|
||||
results.userData.fullname = results.settings.showfullname ? results.userData.fullname : undefined;
|
||||
|
||||
res.json(results.userData);
|
||||
callback(null, results.userData);
|
||||
});
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
apiController.getModerators = function(req, res, next) {
|
||||
categories.getModerators(req.params.cid, function(err, moderators) {
|
||||
|
||||
@@ -50,7 +50,16 @@ Controllers.home = function(req, res, next) {
|
||||
} else if (route === 'popular') {
|
||||
Controllers.popular.get(req, res, next);
|
||||
} else {
|
||||
res.redirect(route);
|
||||
var match = /^category\/(\d+)\/(.*)$/.exec(route);
|
||||
|
||||
if (match) {
|
||||
req.params.topic_index = "1";
|
||||
req.params.category_id = match[1];
|
||||
req.params.slug = match[2];
|
||||
Controllers.categories.get(req, res, next);
|
||||
} else {
|
||||
res.redirect(route);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -14,13 +14,26 @@ var async = require('async'),
|
||||
translator = require('../public/src/modules/translator'),
|
||||
|
||||
transports = {
|
||||
direct: nodemailer.createTransport('direct')
|
||||
direct: nodemailer.createTransport('direct'),
|
||||
gmail: undefined
|
||||
},
|
||||
app;
|
||||
|
||||
(function(Emailer) {
|
||||
Emailer.registerApp = function(expressApp) {
|
||||
app = expressApp;
|
||||
|
||||
// Enable Gmail transport if enabled in ACP
|
||||
if (parseInt(meta.config['email:GmailTransport:enabled'], 10) === 1) {
|
||||
transports.gmail = nodemailer.createTransport('SMTP', {
|
||||
service: 'Gmail',
|
||||
auth: {
|
||||
user: meta.config['email:GmailTransport:user'],
|
||||
pass: meta.config['email:GmailTransport:pass']
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return Emailer;
|
||||
};
|
||||
|
||||
@@ -101,7 +114,8 @@ var async = require('async'),
|
||||
data.text = data.plaintext;
|
||||
delete data.plaintext;
|
||||
|
||||
transports.direct.sendMail(data, callback);
|
||||
winston.verbose('[emailer] Sending email to uid ' + data.uid);
|
||||
transports[transports.gmail ? 'gmail' : 'direct'].sendMail(data, callback);
|
||||
};
|
||||
|
||||
function render(tpl, params, next) {
|
||||
|
||||
@@ -133,19 +133,9 @@ var async = require('async'),
|
||||
|
||||
putVoteInProgress(pid, uid);
|
||||
|
||||
user.getUserField(uid, 'reputation', function(err, reputation) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
if (reputation < parseInt(meta.config['privileges:downvote'], 10)) {
|
||||
return callback(new Error('[[error:not-enough-reputation-to-downvote]]'));
|
||||
}
|
||||
|
||||
toggleVote('downvote', pid, uid, function(err, data) {
|
||||
clearVoteProgress(pid, uid);
|
||||
callback(err, data);
|
||||
});
|
||||
toggleVote('downvote', pid, uid, function(err, data) {
|
||||
clearVoteProgress(pid, uid);
|
||||
callback(err, data);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -197,6 +187,9 @@ var async = require('async'),
|
||||
},
|
||||
voteStatus: function(next) {
|
||||
Favourites.hasVoted(pid, uid, next);
|
||||
},
|
||||
reputation: function(next) {
|
||||
user.getUserField(uid, 'reputation', next);
|
||||
}
|
||||
}, function(err, results) {
|
||||
if (err) {
|
||||
@@ -207,6 +200,10 @@ var async = require('async'),
|
||||
return callback(new Error('self-vote'));
|
||||
}
|
||||
|
||||
if (command === 'downvote' && parseInt(results.reputation) < parseInt(meta.config['privileges:downvote'], 10)) {
|
||||
return callback(new Error('[[error:not-enough-reputation-to-downvote]]'));
|
||||
}
|
||||
|
||||
var voteStatus = results.voteStatus,
|
||||
hook,
|
||||
current = voteStatus.upvoted ? 'upvote' : 'downvote';
|
||||
|
||||
@@ -10,7 +10,7 @@ var async = require('async'),
|
||||
|
||||
DATABASES = {
|
||||
"redis": {
|
||||
"dependencies": ["redis@~0.10.1", "connect-redis@~2.0.0"]
|
||||
"dependencies": ["redis@~2.4.2", "connect-redis@~2.0.0"]
|
||||
},
|
||||
"mongo": {
|
||||
"dependencies": ["mongodb@~2.0.0", "connect-mongo@~0.8.2"]
|
||||
|
||||
@@ -222,7 +222,7 @@ middleware.privateUploads = function(req, res, next) {
|
||||
|
||||
middleware.busyCheck = function(req, res, next) {
|
||||
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'));
|
||||
res.status(503).type('text/html').sendFile(path.join(__dirname, '../../public/503.html'));
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
|
||||
@@ -9,9 +9,8 @@ module.exports = function(Posts) {
|
||||
Posts.parsePost = function(postData, callback) {
|
||||
postData.content = postData.content || '';
|
||||
|
||||
var cachedContent = cache.get(postData.pid);
|
||||
if (cachedContent) {
|
||||
postData.content = cachedContent;
|
||||
if (postData.pid && cache.has(postData.pid)) {
|
||||
postData.content = cache.get(postData.pid);
|
||||
return callback(null, postData);
|
||||
}
|
||||
|
||||
@@ -38,4 +37,4 @@ module.exports = function(Posts) {
|
||||
|
||||
plugins.fireHook('filter:parse.signature', {userData: userData, uid: uid}, callback);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
23
src/reset.js
23
src/reset.js
@@ -2,6 +2,7 @@
|
||||
|
||||
var winston = require('winston');
|
||||
var nconf = require('nconf');
|
||||
var async = require('async');
|
||||
var db = require('./database');
|
||||
|
||||
var Reset = {};
|
||||
@@ -81,11 +82,29 @@ function resetThemes(callback) {
|
||||
}
|
||||
|
||||
function resetPlugin(pluginId) {
|
||||
db.sortedSetRemove('plugins:active', pluginId, function(err) {
|
||||
var active = false;
|
||||
|
||||
async.waterfall([
|
||||
async.apply(db.isSortedSetMember, 'plugins:active', pluginId),
|
||||
function(isMember, next) {
|
||||
active = isMember;
|
||||
|
||||
if (isMember) {
|
||||
db.sortedSetRemove('plugins:active', pluginId, next);
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
}
|
||||
], function(err) {
|
||||
if (err) {
|
||||
winston.error('[reset] Could not disable plugin: %s encountered error %s', pluginId, err.message);
|
||||
} else {
|
||||
winston.info('[reset] Plugin `%s` disabled', pluginId);
|
||||
if (active) {
|
||||
winston.info('[reset] Plugin `%s` disabled', pluginId);
|
||||
} else {
|
||||
winston.warn('[reset] Plugin `%s` was not active on this forum', pluginId);
|
||||
winston.info('[reset] No action taken.');
|
||||
}
|
||||
}
|
||||
|
||||
process.exit();
|
||||
|
||||
@@ -13,6 +13,9 @@ module.exports = function(app, middleware, controllers) {
|
||||
router.get('/widgets/render', controllers.api.renderWidgets);
|
||||
|
||||
router.get('/user/uid/:uid', middleware.checkGlobalPrivacySettings, controllers.api.getUserByUID);
|
||||
router.get('/user/username/:username', middleware.checkGlobalPrivacySettings, controllers.api.getUserByUsername);
|
||||
router.get('/user/email/:email', middleware.checkGlobalPrivacySettings, controllers.api.getUserByEmail);
|
||||
|
||||
router.get('/:type/pid/:id', controllers.api.getObject);
|
||||
router.get('/:type/tid/:id', controllers.api.getObject);
|
||||
router.get('/:type/cid/:id', controllers.api.getObject);
|
||||
@@ -28,7 +31,7 @@ module.exports = function(app, middleware, controllers) {
|
||||
router.post('/post/upload', middlewares, uploadsController.uploadPost);
|
||||
router.post('/topic/thumb/upload', middlewares, uploadsController.uploadThumb);
|
||||
router.post('/user/:userslug/uploadpicture', middlewares.concat([middleware.authenticate, middleware.checkGlobalPrivacySettings, middleware.checkAccountPermissions]), controllers.accounts.edit.uploadPicture);
|
||||
|
||||
|
||||
router.post('/user/:userslug/uploadcover', middlewares.concat([middleware.authenticate, middleware.checkGlobalPrivacySettings, middleware.checkAccountPermissions]), controllers.accounts.edit.uploadCoverPicture);
|
||||
router.post('/groups/uploadpicture', middlewares.concat([middleware.authenticate]), controllers.groups.uploadCover);
|
||||
};
|
||||
|
||||
@@ -6,6 +6,7 @@ var nconf = require('nconf'),
|
||||
controllers = require('../controllers'),
|
||||
plugins = require('../plugins'),
|
||||
express = require('express'),
|
||||
validator = require('validator'),
|
||||
|
||||
accountRoutes = require('./accounts'),
|
||||
|
||||
@@ -195,7 +196,7 @@ function handleErrors(app, middleware) {
|
||||
res.json({path: req.path, error: err.message});
|
||||
} else {
|
||||
middleware.buildHeader(req, res, function() {
|
||||
res.render('500', {path: req.path, error: err.message});
|
||||
res.render('500', {path: req.path, error: validator.escape(err.message)});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -32,7 +32,7 @@ var async = require('async'),
|
||||
var confirm_code = utils.generateUUID(),
|
||||
confirm_link = nconf.get('url') + '/confirm/' + confirm_code;
|
||||
|
||||
var emailInterval = 10;
|
||||
var emailInterval = meta.config.hasOwnProperty('emailConfirmInterval') ? parseInt(meta.config.emailConfirmInterval, 10) : 10;
|
||||
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
|
||||
@@ -10,9 +10,16 @@
|
||||
<!-- BEGIN events -->
|
||||
<div>
|
||||
<span>#{events.eid} </span><span class="label label-info">{events.type}</span>
|
||||
<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank"><img class="user-img" src="{events.user.picture}"/></a> <a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">{events.user.username}</a> (uid {events.user.uid}) (IP {events.ip})
|
||||
<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">
|
||||
<!-- IF events.user.picture -->
|
||||
<img class="avatar avatar-sm" src="{events.user.picture}" />
|
||||
<!-- ELSE -->
|
||||
<div class="avatar avatar-sm" style="background-color: {events.user.icon:bgColor};">{events.user.icon:text}</div>
|
||||
<!-- ENDIF events.user.picture -->
|
||||
</a>
|
||||
<a href="{config.relative_path}/user/{events.user.userslug}" target="_blank">{events.user.username}</a> (uid {events.user.uid}) (IP {events.ip})
|
||||
<span class="pull-right">{events.timestampISO}</span>
|
||||
<br/><br/>
|
||||
<br /><br />
|
||||
<pre>{events.jsonString}</pre>
|
||||
</div>
|
||||
<!-- END events -->
|
||||
|
||||
@@ -30,42 +30,63 @@
|
||||
|
||||
<div class="post-container" data-next="{next}">
|
||||
<!-- IF !posts.length -->
|
||||
No flagged posts!
|
||||
<div class="alert alert-success">
|
||||
No flagged posts!
|
||||
</div>
|
||||
<!-- ENDIF !posts.length -->
|
||||
|
||||
<!-- BEGIN posts -->
|
||||
<div>
|
||||
<div class="panel panel-default" data-pid="{posts.pid}" data-tid="{posts.topic.tid}">
|
||||
<div class="panel-body">
|
||||
<a href="{config.relative_path}/user/{posts.user.userslug}">
|
||||
<img title="{posts.user.username}" class="img-rounded user-img" src="{posts.user.picture}">
|
||||
</a>
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<div class="panel panel-default" data-pid="{posts.pid}" data-tid="{posts.topic.tid}">
|
||||
<div class="panel-body flag-post-body">
|
||||
<a href="{config.relative_path}/user/{../user.userslug}">
|
||||
<!-- IF ../user.picture -->
|
||||
<img title="{posts.user.username}" src="{../user.picture}">
|
||||
<!-- ELSE -->
|
||||
<div class="user-icon" style="background-color: {../user.icon:bgColor};">{../user.icon:text}</div>
|
||||
<!-- ENDIF ../user.picture -->
|
||||
</a>
|
||||
|
||||
<a href="{config.relative_path}/user/{posts.user.userslug}">
|
||||
<strong><span>{posts.user.username}</span></strong>
|
||||
</a>
|
||||
<div class="content">
|
||||
<p>{posts.content}</p>
|
||||
<p class="fade-out"></p>
|
||||
<a href="{config.relative_path}/user/{../user.userslug}">
|
||||
<strong><span>{../user.username}</span></strong>
|
||||
</a>
|
||||
<div class="content">
|
||||
<p>{posts.content}</p>
|
||||
<p class="fade-out"></p>
|
||||
</div>
|
||||
<small>
|
||||
<span class="pull-right">
|
||||
Posted in <a href="{config.relative_path}/category/{posts.category.slug}" target="_blank"><i class="fa {posts.category.icon}"></i> {posts.category.name}</a>, <span class="timeago" title="{posts.relativeTime}"></span> •
|
||||
<a href="{config.relative_path}/topic/{posts.topic.slug}/{posts.index}" target="_blank">Read More</a>
|
||||
</span>
|
||||
</small>
|
||||
</div>
|
||||
<small>
|
||||
<span class="pull-right">
|
||||
Posted in <a href="{config.relative_path}/category/{posts.category.slug}" target="_blank"><i class="fa {posts.category.icon}"></i> {posts.category.name}</a>, <span class="timeago" title="{posts.relativeTime}"></span> •
|
||||
<a href="{config.relative_path}/topic/{posts.topic.slug}/{posts.index}" target="_blank">Read More</a>
|
||||
</span>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span class="badge badge-warning"><i class="fa fa-flag"></i> {posts.flags}</span>
|
||||
<br/>
|
||||
<!-- BEGIN posts.flagReasons -->
|
||||
<a target="_blank" href="{config.relative_path}/user/{../user.userslug}"><img class="user-img" src="{../user.picture}">{../user.username}</a>: "{../reason}" <br/>
|
||||
<!-- END posts.flagReasons -->
|
||||
<br/>
|
||||
<button class="btn btn-warning dismiss">Dismiss</button>
|
||||
<button class="btn btn-danger delete">Delete</button>
|
||||
<br/><br/>
|
||||
<div class="col-sm-4">
|
||||
<i class="fa fa-flag"></i> This post has been flagged {posts.flags} time(s):
|
||||
<blockquote class="flag-reporters">
|
||||
<ul>
|
||||
<!-- BEGIN posts.flagReasons -->
|
||||
<li>
|
||||
<a target="_blank" href="{config.relative_path}/user/{../user.userslug}">
|
||||
<!-- IF ../user.picture -->
|
||||
<img src="{../user.picture}" />
|
||||
<!-- ELSE -->
|
||||
<div class="user-icon" style="background-color: {../user.icon:bgColor};">{../user.icon:text}</div>
|
||||
<!-- ENDIF ../user.picture -->
|
||||
{../user.username}
|
||||
</a>: "{../reason}"
|
||||
</li>
|
||||
<!-- END posts.flagReasons -->
|
||||
</ul>
|
||||
</blockquote>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-sm btn-success dismiss">Dismiss</button>
|
||||
<button class="btn btn-sm btn-danger delete">Delete</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END posts -->
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,13 @@
|
||||
<!-- IF privileges.users.length -->
|
||||
<!-- BEGIN privileges.users -->
|
||||
<tr data-uid="{privileges.users.uid}">
|
||||
<td><img src="{privileges.users.picture}" title="{privileges.users.username}" /></td>
|
||||
<td>
|
||||
<!-- IF ../picture -->
|
||||
<img class="avatar avatar-sm" src="{privileges.users.picture}" title="{privileges.users.username}" />
|
||||
<!-- ELSE -->
|
||||
<div class="avatar avatar-sm" style="background-color: {../icon:bgColor};">{../icon:text}</div>
|
||||
<!-- ENDIF ../picture -->
|
||||
</td>
|
||||
<td>{privileges.users.username}</td>
|
||||
{function.spawnPrivilegeStates, privileges.users.username, privileges}
|
||||
</tr>
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
<div class="col-sm-2 col-xs-12 settings-header">Email Settings</div>
|
||||
<div class="col-sm-10 col-xs-12">
|
||||
<form>
|
||||
<p>
|
||||
Please ensure that you have installed a third-party emailer (e.g. PostageApp, Mailgun, Mandrill, SendGrid, etc), otherwise emails will not be sent by NodeBB
|
||||
</p>
|
||||
<div class="form-group">
|
||||
<label for="email:from"><strong>Email Address</strong></label>
|
||||
<p class="help-block">
|
||||
@@ -25,6 +22,31 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2 col-xs-12 settings-header">Gmail Routing</div>
|
||||
<div class="col-sm-10 col-xs-12">
|
||||
<form>
|
||||
<div class="checkbox">
|
||||
<label for="email:GmailTransport:enabled" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
|
||||
<input class="mdl-switch__input" type="checkbox" id="email:GmailTransport:enabled" data-field="email:GmailTransport:enabled" name="email:GmailTransport:enabled" />
|
||||
<span class="mdl-switch__label">Route emails through a Gmail/Google Apps account</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email:GmailTransport:user"><strong>Username</strong></label>
|
||||
<input type="text" class="form-control input-lg" id="email:GmailTransport:user" data-field="email:GmailTransport:user" placeholder="admin@example.org" /><br />
|
||||
<p class="help-block">
|
||||
Enter the full email address here, especially if you are using a Google Apps managed domain.
|
||||
</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email:GmailTransport:pass"><strong>Password</strong></label>
|
||||
<input type="password" class="form-control input-lg" id="email:GmailTransport:pass" data-field="email:GmailTransport:pass" /><br />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2 col-xs-12 settings-header">Edit Email Template</div>
|
||||
<div class="col-sm-10 col-xs-12">
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-inline">
|
||||
<label for="emailConfirmInterval">User may not resend a confirmation email until</label>
|
||||
<input class="form-control" data-field="emailConfirmInterval" type="number" id="emailConfirmInterval" placeholder="Default: 10" value="10" />
|
||||
<label for="emailConfirmInterval">minutes have elapsed</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Allow login with</label>
|
||||
<select class="form-control" data-field="allowLoginWith">
|
||||
|
||||
@@ -121,7 +121,7 @@ function cacheStaticFiles(callback) {
|
||||
}
|
||||
|
||||
function listen(callback) {
|
||||
var port = nconf.get('port');
|
||||
var port = parseInt(nconf.get('port'), 10);
|
||||
|
||||
if (Array.isArray(port)) {
|
||||
if (!port.length) {
|
||||
@@ -138,7 +138,7 @@ function listen(callback) {
|
||||
}
|
||||
}
|
||||
|
||||
if (port !== 80 && port !== 443 && nconf.get('use_port') === false) {
|
||||
if ((port !== 80 && port !== 443) || nconf.get('trust_proxy') === true) {
|
||||
winston.info('Enabling \'trust proxy\'');
|
||||
app.enable('trust proxy');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user