Merge branch 'master' of github.com:designcreateplay/NodeBB
commit
8f67252547
@ -0,0 +1,7 @@
|
||||
{
|
||||
"new_topic_button": "新規スレッド",
|
||||
"no_topics": "<strong>まだスレッドはありません.</strong><br />一番目のスレッドを書いてみないか?",
|
||||
"browsing": "閲覧中",
|
||||
"no_replies": "返事はまだありません",
|
||||
"share_this_category": "この板を共有"
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"stats.online": "利用者",
|
||||
"stats.users": "登録",
|
||||
"stats.topics": "スレッド",
|
||||
"stats.posts": "ポスト",
|
||||
"success": "成功"
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "日本語",
|
||||
"code": "ja",
|
||||
"dir": "ltr"
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"username": "ユーザー名 / メール",
|
||||
"remember_me": "ログイン情報を記憶",
|
||||
"forgot_password": "パスワードがわからない?",
|
||||
"alternative_logins": "ほかのログイン方法",
|
||||
"failed_login_attempt": "ログインに失敗しました.ユーザー名やパスワードをご確認ください。",
|
||||
"login_successful": "ログインしました!"
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"chat.chatting_with": "<span id=\"chat-with-name\"></span>とチャット",
|
||||
"chat.placeholder": "メッセージを入力する",
|
||||
"chat.send": "送信",
|
||||
"chat.no_active": "チャットはありません。",
|
||||
"chat.user_typing": "%1 は入力中 ..."
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
{
|
||||
"title": "通知センター",
|
||||
"no_notifs": "新しい通知はありません",
|
||||
"see_all": "すべての通知を確認",
|
||||
"back_to_home": "NodeBBへ戻る",
|
||||
"outgoing_link": "外部サイトへのリンク",
|
||||
"outgoing_link_message": "リービング",
|
||||
"continue_to": "続き",
|
||||
"return_to": "戻る ",
|
||||
"new_notification": "新しい通知",
|
||||
"you_have_unread_notifications": "未読の通知があります。",
|
||||
"user_made_post": "<strong>%1</strong>は新しいポストを投稿しました。",
|
||||
"new_message_from": "<strong>%1</strong>からの新しいメッセージ",
|
||||
"upvoted_your_post": "<strong>%1</strong>はあなたのポストを評価しました。",
|
||||
"favourited_your_post": "<strong>%1</strong>はあなたのポストをお気に入りにしました。",
|
||||
"user_flagged_post": "<strong>%1</strong> ポストを報告しました。",
|
||||
"user_posted_to": "<strong>%1</strong> は <strong>%2</strong> への返事を作成しました。"
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"home": "ホーム",
|
||||
"unread": "未読スレッド",
|
||||
"popular": "人気スレッド",
|
||||
"recent": "最新スレッド",
|
||||
"users": "登録したユーザー",
|
||||
"notifications": "通知",
|
||||
"user.edit": "編集中 \"%1\"",
|
||||
"user.following": "%1がフォロー中",
|
||||
"user.followers": "%1のフォロワー",
|
||||
"user.posts": "%1が作成したポスト",
|
||||
"user.topics": "%1が作成したスレッド",
|
||||
"user.favourites": "%1のお気に入りポスト",
|
||||
"user.settings": "ユーザー設定"
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"title": "最近の更新",
|
||||
"day": "最近 1 日",
|
||||
"week": "最近 1 週",
|
||||
"month": "最近 1 ヶ月",
|
||||
"no_recent_topics": "最近のスレッドはありません。"
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
{
|
||||
"register": "登録",
|
||||
"help.email": "デフォルト設定ではメールアドレスは公開されません。",
|
||||
"help.username_restrictions": "%1 から %2 文字までのユニークなユーザー名.Twitter の @<span id='yourUsername'>username</span> 方式でメンションすることができます。",
|
||||
"help.minimum_password_length": "パスワードには最小 %1 文字が必要です。",
|
||||
"email_address": "メールアドレス",
|
||||
"email_address_placeholder": "メールアドレスを入力ください",
|
||||
"username": "ユーザー名",
|
||||
"username_placeholder": "ユーザー名を入力してください",
|
||||
"password": "パスワード",
|
||||
"password_placeholder": "パスワードを入力してください",
|
||||
"confirm_password": "パスワード再入力",
|
||||
"confirm_password_placeholder": "パスワード再入力してください",
|
||||
"register_now_button": "今すぐ登録する",
|
||||
"alternative_registration": "ほかの登録方法",
|
||||
"terms_of_use": "利用規約",
|
||||
"agree_to_terms_of_use": "利用規約に同意する"
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"reset_password": "パスワードをリセット",
|
||||
"update_password": "パスワードを更新",
|
||||
"password_changed.title": "パスワードを更新しました",
|
||||
"password_changed.message": "<p>パスワードをリセットできました.こちらで<a href=\"/login\">ログインしてください</a>。",
|
||||
"wrong_reset_code.title": "リセットコードは正しくありません",
|
||||
"wrong_reset_code.message": "リセットコードは正しくありません.もう一度入力するか、<a href=\"/reset\">新しいリセットコードを請求する</a>ことができます。",
|
||||
"new_password": "新しいパスワード",
|
||||
"repeat_password": "パスワード再入力",
|
||||
"enter_email": "<strong>メールアドレス</strong>を入力してください.パスワードリセットの指示をメールでご送付します。",
|
||||
"enter_email_address": "メールアドレスを入力してください",
|
||||
"password_reset_sent": "パスワードリセットのメールを送信しました",
|
||||
"invalid_email": "このメールアドレスは存在しません"
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"success": "成功",
|
||||
"topic-post": "成功に投稿しました。",
|
||||
"authentication-successful": "認証が成功しました",
|
||||
"settings-saved": "設定を保存しました。"
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
{
|
||||
"topic": "スレッド",
|
||||
"topic_id": "スレッド ID",
|
||||
"topic_id_placeholder": "スレッド ID を入力してください",
|
||||
"no_topics_found": "スレッドが見つかりません!",
|
||||
"no_posts_found": "ポストはありません!",
|
||||
"post_is_deleted": "このポストが削除されます!",
|
||||
"profile": "プロフィール",
|
||||
"posted_by": "%1 のポスト",
|
||||
"chat": "チャット",
|
||||
"notify_me": "このスレッドに新しいポストが投稿された際に通知する",
|
||||
"quote": "引用",
|
||||
"reply": "返答",
|
||||
"edit": "編集",
|
||||
"delete": "削除",
|
||||
"restore": "リストア",
|
||||
"move": "移動",
|
||||
"fork": "フォーク",
|
||||
"banned": "停止した",
|
||||
"link": "リンク",
|
||||
"share": "シェア",
|
||||
"tools": "ツール",
|
||||
"flag": "フラグ",
|
||||
"bookmark_instructions": "こちらをクリックして前の場所に戻ります。",
|
||||
"flag_title": "リポートする",
|
||||
"flag_confirm": "本当にこのポストをリポートするか?",
|
||||
"flag_success": "このポストをリポートしました。",
|
||||
"deleted_message": "このスレッドは削除されました。管理者しか見れません。",
|
||||
"following_topic.message": "このスレッドが更新された際に通知を受け取ります。",
|
||||
"not_following_topic.message": "このスレッドの更新通知を停止しました。",
|
||||
"login_to_subscribe": "このスレッドを購読するためにログインが必要です。",
|
||||
"markAsUnreadForAll.success": "すべてのスレッドを未読にしました。",
|
||||
"watch": "ウオッチ",
|
||||
"watch.title": "新しいポストの通知を受ける",
|
||||
"share_this_post": "ポストを共有",
|
||||
"thread_tools.title": "スレッドツール",
|
||||
"thread_tools.markAsUnreadForAll": "未読にする",
|
||||
"thread_tools.pin": "スレッドを最上部に固定",
|
||||
"thread_tools.unpin": "スレッドの固定を解除",
|
||||
"thread_tools.lock": "スレッドをロック",
|
||||
"thread_tools.unlock": "スレッドをアンロック",
|
||||
"thread_tools.move": "スレッドを移動",
|
||||
"thread_tools.move_all": "すべてを移動",
|
||||
"thread_tools.fork": "スレッドをフォーク",
|
||||
"thread_tools.delete": "スレッドを削除",
|
||||
"thread_tools.delete_confirm": "本当にスレッドを削除しますか?",
|
||||
"thread_tools.restore": "スレッドをリストア",
|
||||
"thread_tools.restore_confirm": "本当にスレッドをリストアしますか?",
|
||||
"topic_lock_success": "スレッドはロックされました。",
|
||||
"topic_unlock_success": "スレッドはアンロックされました。",
|
||||
"topic_pin_success": "スレッドは上部に固定されました。",
|
||||
"topic_unpin_success": "スレッドの固定を取り消しました。",
|
||||
"topic_move_success": "このスレッドを %1 に移動しました。",
|
||||
"post_delete_confirm": "本当にポストを削除しますか?",
|
||||
"post_restore_confirm": "本当にポストをリストアしますか?",
|
||||
"post_delete_error": "ポストを削除できませんでした!",
|
||||
"post_restore_error": "ポストをリストアできませんでした!",
|
||||
"load_categories": "板をローディング中...",
|
||||
"disabled_categories_note": "使用不可の板はグレーに表示されます。",
|
||||
"confirm_move": "移動",
|
||||
"confirm_fork": "フォーク",
|
||||
"favourite": "お気に入り",
|
||||
"favourites": "お気に入り",
|
||||
"favourites.has_no_favourites": "お気に入りはまだありません!",
|
||||
"loading_more_posts": "もっと見る",
|
||||
"move_topic": "スレッドを移動",
|
||||
"move_post": "ポストを移動",
|
||||
"post_moved": "ポストを移動しました!",
|
||||
"fork_topic": "スレッドをフォーク",
|
||||
"topic_will_be_moved_to": "スレッドはこちらのカテゴリへ移動",
|
||||
"fork_topic_instruction": "フォークしたいポストをクリックして",
|
||||
"fork_no_pids": "ポストが選択されていません!",
|
||||
"fork_success": "スレッドをフォークできました!",
|
||||
"composer.title_placeholder": "スレッドのタイトルを入力して...",
|
||||
"composer.write": "作成する",
|
||||
"composer.preview": "プレビュー",
|
||||
"composer.help": "ヘルプ",
|
||||
"composer.discard": "破棄する",
|
||||
"composer.submit": "保存する",
|
||||
"composer.replying_to": "%1へ返答中",
|
||||
"composer.new_topic": "新規スレッド",
|
||||
"composer.uploading": "アップロード中...",
|
||||
"composer.thumb_url_label": "スレッドのサムネイルのURLを入力して",
|
||||
"composer.thumb_title": "スレッドにサムネイルを追加",
|
||||
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
||||
"composer.thumb_file_label": "またはファイルをアップロード",
|
||||
"composer.thumb_remove": "入力をクリア",
|
||||
"composer.drag_and_drop_images": "こちらへ画像をドラッグ&ドロップ",
|
||||
"composer.upload_instructions": "ドラッグ&ドロップで画像をアップロードすることができます。",
|
||||
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
|
||||
"more_users": "%1 more user(s)",
|
||||
"more_guests": "%1 more guest(s)"
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "未読",
|
||||
"no_unread_topics": "未読のスレッドがあります。",
|
||||
"load_more": "もっと見る",
|
||||
"mark_as_read": "既読にする",
|
||||
"selected": "選択済み",
|
||||
"all": "すべて",
|
||||
"topics_marked_as_read.success": "すべてのスレッドを既読にしました。"
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
{
|
||||
"banned": "停止された",
|
||||
"offline": "オフライン",
|
||||
"username": "ユーザー名",
|
||||
"email": "メール",
|
||||
"fullname": "フルネーム",
|
||||
"website": "ウェブサイト",
|
||||
"location": "ロケーション",
|
||||
"age": "年齢",
|
||||
"joined": "参加",
|
||||
"lastonline": "最後オンライン",
|
||||
"profile": "プロフィール",
|
||||
"profile_views": "閲覧数",
|
||||
"reputation": "評価",
|
||||
"favourites": "お気に入り",
|
||||
"followers": "フォロワー",
|
||||
"following": "フォロー中",
|
||||
"signature": "署名",
|
||||
"gravatar": "Gravatar",
|
||||
"birthday": "誕生日",
|
||||
"chat": "チャット",
|
||||
"follow": "フォロー",
|
||||
"unfollow": "フォローしない",
|
||||
"profile_update_success": "プロフィールを更新しました!",
|
||||
"change_picture": "画像を変更",
|
||||
"edit": "編集",
|
||||
"uploaded_picture": "アップロード済みの画像",
|
||||
"upload_new_picture": "新しい画像をアップロード",
|
||||
"current_password": "現在のパスワード",
|
||||
"change_password": "パスワードを変更",
|
||||
"change_password_error": "無効のパスワード!",
|
||||
"change_password_error_wrong_current": "現在のパスワードは正しくありません!",
|
||||
"change_password_error_length": "パスワードは短い過ぎです!",
|
||||
"change_password_error_match": "パスワードは一致しません!",
|
||||
"change_password_error_privileges": "パスワードを更新する権限はありません。",
|
||||
"change_password_success": "パスワードを更新しました!",
|
||||
"confirm_password": "パスワードを再入力",
|
||||
"password": "パスワード",
|
||||
"username_taken_workaround": "このユーザー名はすでに使用されています。いまのユーザー名は <strong>%1</strong> です。",
|
||||
"upload_picture": "画像をアップロード",
|
||||
"upload_a_picture": "画像をアップロード",
|
||||
"image_spec": "PNG、JPGかGIFフォーマットの画像をアップロードしてください。",
|
||||
"max": "max。",
|
||||
"settings": "設定",
|
||||
"show_email": "メールアドレスを表示",
|
||||
"digest_label": "ダイジェストを購読",
|
||||
"digest_description": "この掲示板のアップデートを受信する",
|
||||
"digest_off": "オフ",
|
||||
"digest_daily": "デイリー",
|
||||
"digest_weekly": "ウィークリー",
|
||||
"digest_monthly": "マンスリー",
|
||||
"has_no_follower": "フォロワーはまだいません :(",
|
||||
"follows_no_one": "フォロー中のユーザーはまだいません :(",
|
||||
"has_no_posts": "まだポストを投稿したことありません。",
|
||||
"has_no_topics": "まだスレッドを作成したありません。",
|
||||
"email_hidden": "メールアドレスを非表示",
|
||||
"hidden": "非表示",
|
||||
"paginate_description": "スクロールでのページ自動ロードはしない",
|
||||
"topics_per_page": "ページ毎のスレッド数",
|
||||
"posts_per_page": "ページ毎のポスト数",
|
||||
"notification_sounds": "通知が来たとき音を流す"
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"latest_users": "最新ユーザー",
|
||||
"top_posters": "最も投稿したユーザー",
|
||||
"most_reputation": "最も評価されたユーザー",
|
||||
"search": "検索",
|
||||
"enter_username": "検索するユーザー名を入力してください",
|
||||
"load_more": "もっと表示"
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"new_topic_button": "Chủ đề mới",
|
||||
"no_topics": "<strong>Không có bài viết trong danh mục.</strong><br />Hãy đăng một bài viết mới?",
|
||||
"browsing": "đang duyệt",
|
||||
"no_replies": "Chưa có ai bình luận",
|
||||
"share_this_category": "Chia sẻ phần mục này"
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
{
|
||||
"invalid-data": "Dữ liệu không hợp lệ",
|
||||
"not-logged-in": "Bạn không được đăng nhập.",
|
||||
"invalid-cid": "Danh mục ID không hợp lệ",
|
||||
"invalid-tid": "ID chủ đề không hợp lệ",
|
||||
"invalid-pid": "ID bài viết không hợp lệ",
|
||||
"invalid-uid": "ID tài khoản không hợp lệ",
|
||||
"invalid-username": "Tên đăng nhập không hợp lệ",
|
||||
"invalid-email": "Email không hợp lệ",
|
||||
"invalid-title": "Tiêu đề không hợp lệ",
|
||||
"invalid-user-data": "Dữ liệu tài khoản không hợp lệ",
|
||||
"invalid-password": "Mật khẩu không hợp lệ",
|
||||
"invalid-pagination-value": "Số trang không hợp lệ",
|
||||
"username-taken": "Tên đăng nhập đã tồn tại",
|
||||
"email-taken": "Email đã tồn tại",
|
||||
"user-banned": "Tài khoản bị ban",
|
||||
"no-category": "Phần mục không tồn tại",
|
||||
"no-topic": "Chủ đề không tồn tại",
|
||||
"no-post": "Bài viết không tồn tại",
|
||||
"no-group": "Nhóm không tồn tại",
|
||||
"no-user": "Tài khoản không tồn tại",
|
||||
"no-teaser": "Teaser không tồn tại",
|
||||
"no-privileges": "Bạn không đủ quyền cho hành động này",
|
||||
"category-disabled": "Danh mục bị disabled",
|
||||
"topic-locked": "Chủ đề bị khóa",
|
||||
"still-uploading": "Vui lòng chờ upload",
|
||||
"content-too-short": "Vui lòng nhập dài hơn. Ít nhất %1 ký tự",
|
||||
"title-too-short": "Yêu cầu nhập tiêu đề dài hơn. Ít nhất %1 ký tự",
|
||||
"title-too-long": "Yêu cầu tiêu đề ngắn hơn. Không dài quá %1 ký tự",
|
||||
"too-many-posts": "Bạn chỉ có thể gửi bài viết %1 giây nữa",
|
||||
"file-too-big": "Kích thước file tối đa %1kb",
|
||||
"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",
|
||||
"already-unfavourited": "Bạn đã từ bỏ yêu thích cho bài viết này",
|
||||
"cant-ban-other-admins": "Bạn không thể ban được các admin khác",
|
||||
"invalid-image-type": "Kiểu hình ảnh không hợp lệ",
|
||||
"group-name-too-short": "Tên nhóm quá ngắn",
|
||||
"group-already-exists": "Nhóm đã tồn tại",
|
||||
"group-name-change-not-allowed": "Không cho phép đổi tên nhóm",
|
||||
"post-already-deleted": "Bài viết đã được xóa rồi",
|
||||
"post-already-restored": "Bài viết đã được phục hồi rồi",
|
||||
"topic-already-deleted": "Chủ đề đã bị xóa rồi",
|
||||
"topic-already-restored": "Chủ đề đã được phục hồi rồi",
|
||||
"topic-thumbnails-are-disabled": "Thumbnails cho chủ đề đã bị tắt",
|
||||
"invalid-file": "File không hợp lệ",
|
||||
"uploads-are-disabled": "Đã khóa lựa chọn tải lên",
|
||||
"signature-too-long": "Chứ ký không được dài quá %1 ký tự",
|
||||
"cant-chat-with-yourself": "Bạn không thể chat với chính bạn!"
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
{
|
||||
"home": "Trang chủ",
|
||||
"search": "Tìm kiếm",
|
||||
"buttons.close": "Đóng lại",
|
||||
"403.title": "Từ chối truy cập",
|
||||
"403.message": "Có vẻ như bạn đang cố vào một trang mà bạn không có quyền truy cập. Bạn nên thử đăng nhập để truy cập ",
|
||||
"404.title": "Không tìm thấy",
|
||||
"404.message": "Có vẻ bạn đang cố vào một trang không tồn tại. Hãy trở lại trang chủ",
|
||||
"500.title": "Lỗi nội bộ",
|
||||
"500.message": "Úi chà! Có vẻ như có trục trặc rồi!",
|
||||
"register": "Đăng ký",
|
||||
"login": "Đăng nhập",
|
||||
"please_log_in": "Xin hãy đăng nhập",
|
||||
"logout": "Đăng xuất",
|
||||
"posting_restriction_info": "Hiện giờ chỉ có các thành viên mới được quyền gửi bài viết, hãy nhấn vào đây để đăng nhập",
|
||||
"welcome_back": "Chào mừng bạn quay lại",
|
||||
"you_have_successfully_logged_in": "Bạn đã đăng nhập thành công",
|
||||
"save_changes": "Lưu thay đổi",
|
||||
"close": "Đóng lại",
|
||||
"pagination": "Số trang",
|
||||
"header.admin": "Quản trị viên",
|
||||
"header.recent": "Gần đây",
|
||||
"header.unread": "Chưa đọc",
|
||||
"header.popular": "Nổi bật",
|
||||
"header.users": "Số người dùng",
|
||||
"header.chats": "Phần Chat",
|
||||
"header.notifications": "Thông báo",
|
||||
"header.search": "Tìm kiếm",
|
||||
"header.profile": "Hồ sơ",
|
||||
"notifications.loading": "Đang tải Thông báo",
|
||||
"chats.loading": "Đang tải phần Chat",
|
||||
"motd.welcome": "Chào mừng bạn tới NodeBB, Platform của tương lai",
|
||||
"previouspage": "Trang trước",
|
||||
"nextpage": "Trang kế tiếp",
|
||||
"alert.success": "Thành công",
|
||||
"alert.error": "Lỗi",
|
||||
"alert.banned": "Bị ban",
|
||||
"alert.banned.message": "Bạn đã bị ban, giờ bạn sẽ đăng xuất",
|
||||
"alert.unfollow": "Bạn đã không còn theo dõi %1!",
|
||||
"alert.follow": "Bạn giờ đang theo dõi %1!",
|
||||
"online": "Đang online",
|
||||
"users": "Số người dùng",
|
||||
"topics": "Số Chủ đề",
|
||||
"posts": "Số bài viết",
|
||||
"views": "Số lượt view",
|
||||
"reputation": "Độ uy tín",
|
||||
"read_more": "Đọc thêm",
|
||||
"posted_ago_by_guest": "Đã viết %1 bởi Khách",
|
||||
"posted_ago_by": "Đã viết %1 bởi %2",
|
||||
"posted_ago": "Đã viết %1",
|
||||
"posted_in_ago_by_guest": "Đã viết trong %1 %2 bởi Khách",
|
||||
"posted_in_ago_by": "Đã viết trong %1 %2 bởi %3",
|
||||
"posted_in_ago": "Đã viết trong %1",
|
||||
"replied_ago": "Đã trả lời %1",
|
||||
"user_posted_ago": "%1 đã viết %2",
|
||||
"guest_posted_ago": "Khách đã viết %1",
|
||||
"last_edited_by_ago": "Được chỉnh sửa lần cuối bởi %1 %2",
|
||||
"norecentposts": "Không có bài viết nào gần đây",
|
||||
"norecenttopics": "Không có chủ đề gần đây",
|
||||
"recentposts": "Số bài viết gần đây",
|
||||
"recentips": "Các IP vừa mới đăng nhập",
|
||||
"away": "Đang away",
|
||||
"dnd": "Không được quấy rầy",
|
||||
"invisible": "Ẩn",
|
||||
"offline": "Đang offline",
|
||||
"email": "Email",
|
||||
"language": "Ngôn ngữ",
|
||||
"guest": "Khách",
|
||||
"guests": "Số khách"
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "Tiếng Việt",
|
||||
"code": "vi",
|
||||
"dir": "ltr"
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"username": "Tên người dùng / Email",
|
||||
"remember_me": "Ghi nhớ tôi?",
|
||||
"forgot_password": "Quên mật khẩu?",
|
||||
"alternative_logins": "Đăng nhập bằng tên khác",
|
||||
"failed_login_attempt": "Đăng nhập thất bại, xin hãy thử lại",
|
||||
"login_successful": "Bạn đã đăng nhập thành công!"
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"chat.chatting_with": "Chat với <span id=\"chat-with-name\"></span>",
|
||||
"chat.placeholder": "đánh đoạn tin nhắn chat ở đây, nhấn phím enter để gửi đi",
|
||||
"chat.send": "Gửi đi",
|
||||
"chat.no_active": "Bạn hiện giờ không có cuộc chat nào",
|
||||
"chat.user_typing": "%1b đang gõ"
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
{
|
||||
"title": "Thông báo",
|
||||
"no_notifs": "Bạn không có thông báo nào mới",
|
||||
"see_all": "Xem tất cả thông báo",
|
||||
"back_to_home": "Quay lại NodeBB",
|
||||
"outgoing_link": "Liên kết ngoài",
|
||||
"outgoing_link_message": "Bạn giờ đang thoát",
|
||||
"continue_to": "Tiếp tục đến",
|
||||
"return_to": "Trở về",
|
||||
"new_notification": "Thông báo mới",
|
||||
"you_have_unread_notifications": "Bạn có thông báo chưa đọc",
|
||||
"user_made_post": "<strong>%1</strong> đã viết bài mới",
|
||||
"new_message_from": "Tin nhắn mới từ <strong>%1</strong>",
|
||||
"upvoted_your_post": "<strong>%1</strong> đã hủy vote cho bài viết của bạn",
|
||||
"favourited_your_post": "<strong>%1</strong> thích bài viết của bạn",
|
||||
"user_flagged_post": "<strong>%1</strong> đã flag một bài viết",
|
||||
"user_posted_to": "<strong>%1</strong> đã trả lời <strong>%2</strong>"
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"home": "Trang chủ",
|
||||
"unread": "Chủ đề chưa đọc",
|
||||
"popular": "Các chủ đề nổi bật",
|
||||
"recent": "Chủ đề gần đây",
|
||||
"users": "Số người dùng đã đăng ký",
|
||||
"notifications": "Thông báo",
|
||||
"user.edit": "Chỉnh sửa \"%1\"",
|
||||
"user.following": "Người mà %1 theo dõi",
|
||||
"user.followers": "Người đang theo dõi %1",
|
||||
"user.posts": "Các bài được %1 viết",
|
||||
"user.topics": "Các chủ đề được %1 tạo",
|
||||
"user.favourites": "Các bài gửi yêu thích của %1",
|
||||
"user.settings": "Thiết lập cho người dùng"
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"title": "Mới nhất",
|
||||
"day": "Ngày",
|
||||
"week": "Tuần",
|
||||
"month": "Tháng",
|
||||
"no_recent_topics": "Không có chủ đề nào gần đây"
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
{
|
||||
"register": "Đăng ký",
|
||||
"help.email": "Theo mặc định, Email của bạn sẽ ở dạng ẩn và public sẽ không thấy được",
|
||||
"help.username_restrictions": "Một tên truy cập duy nhất có từ %1 đến %2 ký tự. Những người khác có thể nhắc đến bạn bằng @<span id='yourUsername'>tên truy cập</span>.",
|
||||
"help.minimum_password_length": "Mật khẩu của bạn phải có ít nhất %1 ký tự",
|
||||
"email_address": "Địa chỉ Email",
|
||||
"email_address_placeholder": "Nhập địa chỉ Email",
|
||||
"username": "Tên truy cập",
|
||||
"username_placeholder": "Nhập tên truy cập",
|
||||
"password": "Mật khẩu",
|
||||
"password_placeholder": "Nhập mật khẩu",
|
||||
"confirm_password": "Xác nhận mật khẩu",
|
||||
"confirm_password_placeholder": "Xác nhận mật khẩu",
|
||||
"register_now_button": "Đăng ký ngay",
|
||||
"alternative_registration": "Đăng ký tài khoản khác",
|
||||
"terms_of_use": "Điều khoản sử dụng",
|
||||
"agree_to_terms_of_use": "Tôi đồng ý với các điều khoản sử dụng"
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"reset_password": "Thiết lập lại mật khẩu",
|
||||
"update_password": "Cập nhật mật khẩu",
|
||||
"password_changed.title": "Mật khẩu đã được thay đổi",
|
||||
"password_changed.message": "<p>Mật khẩu đã được thiết lập lại thành công, xin hãy <a href=\"/login\">đăng nhập lại</a>.",
|
||||
"wrong_reset_code.title": "Mã thiết lập lại không đúng",
|
||||
"wrong_reset_code.message": "Mã thiết lập lại không đúng. Xin hãy thử lại, hoặc <a href=\"/reset\">yêu cầu một mã thiết lập lại khác</a>.",
|
||||
"new_password": "Mật khẩu mới",
|
||||
"repeat_password": "Xác nhận lại mật khẩu",
|
||||
"enter_email": "Xin hãy nhập <strong>địa chỉ email</strong> của bạn và chúng tôi sẽ gửi một email hướng dẫn cách thiết lập lại tài khoản cho bạn",
|
||||
"enter_email_address": "Nhập địa chỉ Email",
|
||||
"password_reset_sent": "Đã gửi mật khẩu được thiết lập lại",
|
||||
"invalid_email": "Email không đúng / Email không tồn tại!"
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"success": "Thành công",
|
||||
"topic-post": "Bạn đã gửi bài thành công",
|
||||
"authentication-successful": "Xác thực thành công",
|
||||
"settings-saved": "Đã lưu thiết lập"
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
{
|
||||
"topic": "Chủ đề",
|
||||
"topic_id": "ID của chủ đề",
|
||||
"topic_id_placeholder": "Nhập ID của chủ đề",
|
||||
"no_topics_found": "Không tìm thấy chủ đề nào!",
|
||||
"no_posts_found": "Không tìm thấy bài gửi nào",
|
||||
"post_is_deleted": "Bài gửi này đã bị xóa!",
|
||||
"profile": "Hồ sơ",
|
||||
"posted_by": "Được viết bởi %1",
|
||||
"chat": "Chat",
|
||||
"notify_me": "Được thông báo khi có trả lời mới trong chủ đề này",
|
||||
"quote": "Trích dẫn",
|
||||
"reply": "Trả lời",
|
||||
"edit": "Chỉnh sửa",
|
||||
"delete": "Xóa",
|
||||
"restore": "Phục hồi",
|
||||
"move": "Chuyển đi",
|
||||
"fork": "Fork",
|
||||
"banned": "bị ban",
|
||||
"link": "đường dẫn",
|
||||
"share": "Chia sẻ",
|
||||
"tools": "Công cụ",
|
||||
"flag": "Flag",
|
||||
"bookmark_instructions": "Bấm vào đây để quay về hoặc đóng lại để hủy",
|
||||
"flag_title": "Flag bài viết này để chỉnh sửa",
|
||||
"flag_confirm": "Bạn có chắc là muốn flag bài viết này không?",
|
||||
"flag_success": "Chủ đề này đã được flag để chỉnh sửa",
|
||||
"deleted_message": "Thread này đã bị xóa. Chỉ người dùng có quyền quản lý thread mới xem được.",
|
||||
"following_topic.message": "Từ giờ bạn sẽ nhận được thông báo khi có ai đó gửi bài viết trong chủ đề này",
|
||||
"not_following_topic.message": "Bạn sẽ không còn nhận được thông báo từ chủ đề này",
|
||||
"login_to_subscribe": "Xin hãy đăng ký hoặc đăng nhập để theo dõi topic này",
|
||||
"markAsUnreadForAll.success": "Chủ đề đã được đánh dấu là chưa đọc toàn bộ",
|
||||
"watch": "Xem",
|
||||
"watch.title": "Được thông báo khi có trả lời mới trong chủ đề này",
|
||||
"share_this_post": "Chia sẻ bài viết này",
|
||||
"thread_tools.title": "Công cụ cho Thread",
|
||||
"thread_tools.markAsUnreadForAll": "Đánh dấu chưa đọc",
|
||||
"thread_tools.pin": "Pin chủ đề",
|
||||
"thread_tools.unpin": "Bỏ pin chủ đề",
|
||||
"thread_tools.lock": "Khóa chủ đề",
|
||||
"thread_tools.unlock": "Mở khóa chủ đề",
|
||||
"thread_tools.move": "Chuyển chủ đề",
|
||||
"thread_tools.move_all": "Chuyển tất cả",
|
||||
"thread_tools.fork": "Fork chủ đề",
|
||||
"thread_tools.delete": "Xóa chủ đề",
|
||||
"thread_tools.delete_confirm": "Bạn có chắc là muốn hủy thread này không?",
|
||||
"thread_tools.restore": "Phục hồi chủ đề",
|
||||
"thread_tools.restore_confirm": "Bạn có chắc là muốn phục hồi thread này không",
|
||||
"topic_lock_success": "Đã khóa thành công chủ đề.",
|
||||
"topic_unlock_success": "Đã mở khóa thành công chủ đề.",
|
||||
"topic_pin_success": "Đã pin chủ đề thành công",
|
||||
"topic_unpin_success": "Đã bỏ pin chủ đề thành công",
|
||||
"topic_move_success": "Đã chuyển thành công chủ đề này sang %1",
|
||||
"post_delete_confirm": "Bạn có chắc là muốn xóa bài gửi này không?",
|
||||
"post_restore_confirm": "Bạn có chắc là muốn phục hồi bài gửi này không?",
|
||||
"post_delete_error": "Không thể xóa bài gửi này!",
|
||||
"post_restore_error": "Không thể phục hồi bài gửi này!",
|
||||
"load_categories": "Đang tải các phần mục",
|
||||
"disabled_categories_note": "Các phần mục bị khóa đã được đánh xám",
|
||||
"confirm_move": "Chuyển",
|
||||
"confirm_fork": "Fork",
|
||||
"favourite": "Yêu thích",
|
||||
"favourites": "Đang yêu thích",
|
||||
"favourites.has_no_favourites": "Bạn đang không có yêu thích nào. Hãy yêu thích một vài bài viết để thấy được chúng tại đây!",
|
||||
"loading_more_posts": "Tải thêm các bài gửi khác",
|
||||
"move_topic": "Chuyển chủ đề",
|
||||
"move_post": "Chuyển bài gửi",
|
||||
"post_moved": "Đã chuyển bài gửi!",
|
||||
"fork_topic": "Fork chủ đề",
|
||||
"topic_will_be_moved_to": "Chủ đề này sẽ được chuyển tới phần mục",
|
||||
"fork_topic_instruction": "Nhấp vào bài gửi mà bạn muốn fork",
|
||||
"fork_no_pids": "Chưa chọn bài gửi nào!",
|
||||
"fork_success": "Đã fork chủ đề thành công!",
|
||||
"composer.title_placeholder": "Nhập tiêu đề cho chủ đề của bạn tại đây...",
|
||||
"composer.write": "Viết",
|
||||
"composer.preview": "Xem trước",
|
||||
"composer.help": "Trợ giúp",
|
||||
"composer.discard": "Loại bỏ",
|
||||
"composer.submit": "Gửi",
|
||||
"composer.replying_to": "Đang trả lời %1",
|
||||
"composer.new_topic": "Chủ đề mới",
|
||||
"composer.uploading": "đang tải lên...",
|
||||
"composer.thumb_url_label": "Dán một thumbnail URL cho chủ đề",
|
||||
"composer.thumb_title": "Thêm một thumbnail cho chủ đề này",
|
||||
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
||||
"composer.thumb_file_label": "Hoặc tải lên một tệp",
|
||||
"composer.thumb_remove": "Xóa toàn bộ",
|
||||
"composer.drag_and_drop_images": "Kéo và thả hình ảnh tại đây",
|
||||
"composer.upload_instructions": "Tải lên hình ảnh bằng cách kéo và thả",
|
||||
"more_users_and_guests": "%1 người dùng và %2 khách nữa",
|
||||
"more_users": "%1 người dùng nữa",
|
||||
"more_guests": "%1 khách nữa"
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Chưa đọc",
|
||||
"no_unread_topics": "Không có chủ đề chưa được đọc",
|
||||
"load_more": "Tải thêm",
|
||||
"mark_as_read": "Đánh dấu đã đọc",
|
||||
"selected": "Đã chọn",
|
||||
"all": "Tất cả",
|
||||
"topics_marked_as_read.success": "Chủ đề được đánh dấu đã đọc"
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
{
|
||||
"banned": "Bị ban",
|
||||
"offline": "Offline",
|
||||
"username": "Tên truy cập",
|
||||
"email": "Email",
|
||||
"fullname": "Tên đầy đủ",
|
||||
"website": "Website",
|
||||
"location": "Địa điểm",
|
||||
"age": "Tuổi",
|
||||
"joined": "Đã gia nhập",
|
||||
"lastonline": "Online lần cuối vào",
|
||||
"profile": "Hồ sơ",
|
||||
"profile_views": "Khung hiển thị hồ sơ",
|
||||
"reputation": "Mức uy tín",
|
||||
"favourites": "Yêu thích",
|
||||
"followers": "Số người theo dõi",
|
||||
"following": "Đang theo dõi",
|
||||
"signature": "Chữ ký",
|
||||
"gravatar": "Gavatar",
|
||||
"birthday": "Ngày sinh ",
|
||||
"chat": "Chat",
|
||||
"follow": "Theo dõi",
|
||||
"unfollow": "Hủy theo dõi",
|
||||
"profile_update_success": "Hồ sơ đã được cập nhật thành công",
|
||||
"change_picture": "Thay đổi hình ảnh",
|
||||
"edit": "Chỉnh sửa",
|
||||
"uploaded_picture": "Ảnh đã tải lên",
|
||||
"upload_new_picture": "Tải lên ảnh mới",
|
||||
"current_password": "Mật khẩu hiện tại",
|
||||
"change_password": "Thay đổi mật khẩu",
|
||||
"change_password_error": "Mật khẩu không đúng!",
|
||||
"change_password_error_wrong_current": "Mật khẩu hiện tại của bạn không đúng",
|
||||
"change_password_error_length": "Mật khẩu quá ngắn!",
|
||||
"change_password_error_match": "Mật khẩu phải khớp!",
|
||||
"change_password_error_privileges": "Bạn không có quyền thay đổi mật khẩu này",
|
||||
"change_password_success": "Mật khẩu của bạn đã được cập nhật",
|
||||
"confirm_password": "Xác nhận mật khẩu",
|
||||
"password": "Mật khẩu",
|
||||
"username_taken_workaround": "Tên truy cập này đã tồn tại, vì vậy chúng tôi đã sửa đổi nó một chút. Tên truy cập của bạn giờ là <strong>%1</strong>",
|
||||
"upload_picture": "Tải lên hình ảnh",
|
||||
"upload_a_picture": "Tải lên một hình ảnh",
|
||||
"image_spec": "Bạn chỉ có thể tải lên được các file PNG, JPG hoặc GIF",
|
||||
"max": "tối đa",
|
||||
"settings": "Thiết lập",
|
||||
"show_email": "Hiện Email của tôi",
|
||||
"digest_label": "Đăng ký để digest",
|
||||
"digest_description": "Đăng ký để được forum gửi cập nhật tới email (thông báo và chủ đề mới) trong một khoảng thời gian lặp lại nhất định ",
|
||||
"digest_off": "Off",
|
||||
"digest_daily": "Hàng ngày",
|
||||
"digest_weekly": "Hàng tuần",
|
||||
"digest_monthly": "Hàng tháng",
|
||||
"has_no_follower": "Người dùng này hiện chưa có ai theo dõi :(",
|
||||
"follows_no_one": "Người dùng này hiện chưa theo dõi ai :(",
|
||||
"has_no_posts": "Người dùng này chưa viết bài nào",
|
||||
"has_no_topics": "Người dùng này chưa tạo một chủ đề nào",
|
||||
"email_hidden": "Ẩn Email",
|
||||
"hidden": "Đã ẩn",
|
||||
"paginate_description": "Phân trang cho chủ đề và bài viết thay vì cuộn liên tục",
|
||||
"topics_per_page": "Số chủ đề trong một trang",
|
||||
"posts_per_page": "Số bài viết trong một trang",
|
||||
"notification_sounds": "Xuất hiện âm thanh khi bạn nhận được một thông báo"
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"latest_users": "Những người dùng mới nhất",
|
||||
"top_posters": "Những người viết bài nhiều nhất",
|
||||
"most_reputation": "Uy tín nhất",
|
||||
"search": "Tìm kiếm",
|
||||
"enter_username": "Gõ tên người dùng để tìm kiếm",
|
||||
"load_more": "Tải thêm"
|
||||
}
|
@ -1,83 +1,31 @@
|
||||
'use strict';
|
||||
|
||||
var async = require('async'),
|
||||
|
||||
db = require('./../database'),
|
||||
posts = require('./../posts'),
|
||||
topics = require('./../topics');
|
||||
|
||||
module.exports = function(Categories) {
|
||||
|
||||
Categories.isUserActiveIn = function(cid, uid, callback) {
|
||||
|
||||
db.getSortedSetRange('uid:' + uid + ':posts', 0, -1, function(err, pids) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var index = 0,
|
||||
active = false;
|
||||
|
||||
async.whilst(
|
||||
function() {
|
||||
return active === false && index < pids.length;
|
||||
},
|
||||
function(callback) {
|
||||
posts.getCidByPid(pids[index], function(err, postCid) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
if (postCid === cid) {
|
||||
active = true;
|
||||
}
|
||||
Categories.getActiveUsers = function(cid, callback) {
|
||||
db.getSortedSetRevRange('categories:recent_posts:cid:' + cid, 0, 99, function(err, pids) {
|
||||
var keys = pids.map(function(pid) {
|
||||
return 'post:' + pid;
|
||||
});
|
||||
|
||||
++index;
|
||||
callback();
|
||||
});
|
||||
},
|
||||
function(err) {
|
||||
callback(err, active);
|
||||
db.getObjectsFields(keys, ['uid'], function(err, users) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
Categories.addActiveUser = function(cid, uid, timestamp) {
|
||||
if(parseInt(uid, 10)) {
|
||||
db.sortedSetAdd('cid:' + cid + ':active_users', timestamp, uid);
|
||||
}
|
||||
};
|
||||
|
||||
Categories.removeActiveUser = function(cid, uid, callback) {
|
||||
db.sortedSetRemove('cid:' + cid + ':active_users', uid, callback);
|
||||
};
|
||||
var uids = users.map(function(user) {
|
||||
return user.uid;
|
||||
}).filter(function(value, index, array) {
|
||||
return parseInt(value, 10) !== 0 && array.indexOf(value) === index;
|
||||
}).slice(0, 24);
|
||||
|
||||
Categories.getActiveUsers = function(cid, callback) {
|
||||
db.getSortedSetRevRange('cid:' + cid + ':active_users', 0, 23, callback);
|
||||
};
|
||||
|
||||
Categories.moveActiveUsers = function(tid, oldCid, cid) {
|
||||
function updateUser(uid, timestamp) {
|
||||
Categories.addActiveUser(cid, uid, timestamp);
|
||||
Categories.isUserActiveIn(oldCid, uid, function(err, active) {
|
||||
|
||||
if (!err && !active) {
|
||||
Categories.removeActiveUser(oldCid, uid);
|
||||
}
|
||||
callback(null, uids);
|
||||
});
|
||||
}
|
||||
|
||||
topics.getTopicField(tid, 'timestamp', function(err, timestamp) {
|
||||
if(!err) {
|
||||
topics.getUids(tid, function(err, uids) {
|
||||
if (!err && uids) {
|
||||
for (var i = 0; i < uids.length; ++i) {
|
||||
updateUser(uids[i], timestamp);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
|
@ -0,0 +1,62 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
var async = require('async'),
|
||||
nconf = require('nconf'),
|
||||
|
||||
db = require('../database'),
|
||||
user = require('../user'),
|
||||
notifications = require('../notifications');
|
||||
|
||||
module.exports = function(Topics) {
|
||||
|
||||
|
||||
Topics.isFollowing = function(tid, uid, callback) {
|
||||
db.isSetMember('tid:' + tid + ':followers', uid, callback);
|
||||
};
|
||||
|
||||
Topics.getFollowers = function(tid, callback) {
|
||||
db.getSetMembers('tid:' + tid + ':followers', callback);
|
||||
};
|
||||
|
||||
Topics.notifyFollowers = function(tid, pid, exceptUid) {
|
||||
async.parallel({
|
||||
nid: function(next) {
|
||||
Topics.getTopicFields(tid, ['title', 'slug'], function(err, topicData) {
|
||||
if(err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
user.getUserField(exceptUid, 'username', function(err, username) {
|
||||
if(err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
notifications.create({
|
||||
text: '[[notifications:user_posted_to, ' + username + ', ' + topicData.title + ']]',
|
||||
path: nconf.get('relative_path') + '/topic/' + topicData.slug + '#' + pid,
|
||||
uniqueId: 'topic:' + tid,
|
||||
from: exceptUid
|
||||
}, function(nid) {
|
||||
next(null, nid);
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
followers: function(next) {
|
||||
Topics.getFollowers(tid, next);
|
||||
}
|
||||
}, function(err, results) {
|
||||
if (!err && results.followers.length) {
|
||||
|
||||
var index = results.followers.indexOf(exceptUid.toString());
|
||||
if (index !== -1) {
|
||||
results.followers.splice(index, 1);
|
||||
}
|
||||
|
||||
notifications.push(results.nid, results.followers);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
};
|
Loading…
Reference in New Issue