Merge branch 'main' into production

This commit is contained in:
Mouse Reeve 2021-08-16 11:00:27 -07:00
commit a8dbecde57
6 changed files with 142 additions and 149 deletions

View file

@ -3,4 +3,5 @@
{% block filter_fields %}
{% include 'user_admin/server_filter.html' %}
{% include 'user_admin/username_filter.html' %}
{% include 'directory/community_filter.html' %}
{% endblock %}

View file

@ -1,5 +1,4 @@
""" testing import """
from unittest.mock import patch
from django.test import RequestFactory, TestCase
@ -7,59 +6,77 @@ from bookwyrm import models
from bookwyrm.views import rss_feed
@patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay")
@patch("bookwyrm.activitystreams.ActivityStream.get_activity_stream")
@patch("bookwyrm.activitystreams.ActivityStream.add_status")
class RssFeedView(TestCase):
"""rss feed behaves as expected"""
def setUp(self):
"""test data"""
self.site = models.SiteSettings.objects.create()
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"):
self.user = models.User.objects.create_user(
self.local_user = models.User.objects.create_user(
"rss_user", "rss@test.rss", "password", local=True
)
work = models.Work.objects.create(title="Test Work")
self.book = models.Edition.objects.create(
title="Example Edition",
remote_id="https://example.com/book/1",
parent_work=work,
)
with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"):
with patch("bookwyrm.activitystreams.ActivityStream.add_status"):
self.review = models.Review.objects.create(
name="Review name",
content="test content",
rating=3,
user=self.user,
book=self.book,
)
self.quote = models.Quotation.objects.create(
quote="a sickening sense",
content="test content",
user=self.user,
book=self.book,
)
self.generatednote = models.GeneratedNote.objects.create(
content="test content", user=self.user
)
self.factory = RequestFactory()
@patch("bookwyrm.activitystreams.ActivityStream.get_activity_stream")
def test_rss_feed(self, _):
models.SiteSettings.objects.create()
def test_rss_empty(self, *_):
"""load an rss feed"""
view = rss_feed.RssFeed()
request = self.factory.get("/user/rss_user/rss")
request.user = self.user
with patch("bookwyrm.models.SiteSettings.objects.get") as site:
site.return_value = self.site
result = view(request, username=self.user.username)
request.user = self.local_user
result = view(request, username=self.local_user.username)
self.assertEqual(result.status_code, 200)
self.assertIn(b"Status updates from rss_user", result.content)
def test_rss_comment(self, *_):
"""load an rss feed"""
models.Comment.objects.create(
content="comment test content",
user=self.local_user,
book=self.book,
)
view = rss_feed.RssFeed()
request = self.factory.get("/user/rss_user/rss")
request.user = self.local_user
result = view(request, username=self.local_user.username)
self.assertEqual(result.status_code, 200)
self.assertIn(b"Example Edition", result.content)
def test_rss_review(self, *_):
"""load an rss feed"""
models.Review.objects.create(
name="Review name",
content="test content",
rating=3,
user=self.local_user,
book=self.book,
)
view = rss_feed.RssFeed()
request = self.factory.get("/user/rss_user/rss")
request.user = self.local_user
result = view(request, username=self.local_user.username)
self.assertEqual(result.status_code, 200)
def test_rss_quotation(self, *_):
"""load an rss feed"""
models.Quotation.objects.create(
quote="a sickening sense",
content="test content",
user=self.local_user,
book=self.book,
)
view = rss_feed.RssFeed()
request = self.factory.get("/user/rss_user/rss")
request.user = self.local_user
result = view(request, username=self.local_user.username)
self.assertEqual(result.status_code, 200)
self.assertIn(b"Status updates from rss_user", result.content)
self.assertIn(b"a sickening sense", result.content)
self.assertIn(b"Example Edition", result.content)

View file

@ -1,6 +1,9 @@
""" serialize user's posts in rss feed """
from django.contrib.syndication.views import Feed
from django.template.loader import get_template
from django.utils.translation import gettext_lazy as _
from .helpers import get_user_from_username, privacy_filter
# pylint: disable=no-self-use, unused-argument
@ -8,7 +11,15 @@ class RssFeed(Feed):
"""serialize user's posts in rss feed"""
description_template = "rss/content.html"
title_template = "rss/title.html"
def item_title(self, item):
"""render the item title"""
if hasattr(item, "pure_name") and item.pure_name:
return item.pure_name
title_template = get_template("snippets/status/header_content.html")
title = title_template.render({"status": item})
template = get_template("rss/title.html")
return template.render({"user": item.user, "item_title": title}).strip()
def get_object(self, request, username): # pylint: disable=arguments-differ
"""the user who's posts get serialized"""
@ -20,7 +31,7 @@ class RssFeed(Feed):
def title(self, obj):
"""title of the rss feed entry"""
return f"Status updates from {obj.display_name}"
return _(f"Status updates from {obj.display_name}")
def items(self, obj):
"""the user's activity feed"""

View file

@ -30,6 +30,9 @@ class UserAdminList(View):
username = request.GET.get("username")
if username:
filters["username__icontains"] = username
scope = request.GET.get("scope")
if scope:
filters["local"] = scope == "local"
users = models.User.objects.filter(**filters)

Binary file not shown.

View file

@ -101,10 +101,8 @@ msgid "Home"
msgstr "主页"
#: bookwyrm/settings.py:124
#, fuzzy
#| msgid "Book Title"
msgid "Books Timeline"
msgstr "书"
msgstr "书目时间线"
#: bookwyrm/settings.py:124 bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42
@ -446,7 +444,7 @@ msgstr "从网址加载封面:"
#: bookwyrm/templates/book/edit_book.html:11
#, python-format
msgid "Edit \"%(book_title)s\""
msgstr "编辑 \"%(book_title)s\""
msgstr "编辑《%(book_title)s》"
#: bookwyrm/templates/book/edit_book.html:5
#: bookwyrm/templates/book/edit_book.html:13
@ -460,7 +458,7 @@ msgstr "确认书目信息"
#: bookwyrm/templates/book/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" an existing author?"
msgstr "\"%(name)s\" 是已存在的作者吗?"
msgstr "“%(name)s” 是已存在的作者吗?"
#: bookwyrm/templates/book/edit_book.html:71
#, python-format
@ -474,7 +472,7 @@ msgstr "这是一位新的作者"
#: bookwyrm/templates/book/edit_book.html:82
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "正在创建新的作者: %(name)s"
msgstr "正在创建新的作者: %(name)s"
#: bookwyrm/templates/book/edit_book.html:89
msgid "Is this an edition of an existing work?"
@ -591,7 +589,7 @@ msgstr "%(book_title)s 的各版本"
#: bookwyrm/templates/book/editions.html:8
#, python-format
msgid "Editions of <a href=\"%(work_path)s\">\"%(work_title)s\"</a>"
msgstr "<a href=\"%(work_path)s\">\"%(work_title)s\"</a> 的各版本"
msgstr "<a href=\"%(work_path)s\">《%(work_title)s》</a> 的各版本"
#: bookwyrm/templates/book/format_filter.html:8
#: bookwyrm/templates/book/language_filter.html:8
@ -685,30 +683,24 @@ msgid "Compose status"
msgstr "撰写状态"
#: bookwyrm/templates/confirm_email/confirm_email.html:4
#, fuzzy
#| msgid "Confirm"
msgid "Confirm email"
msgstr "确认"
msgstr "确认邮箱"
#: bookwyrm/templates/confirm_email/confirm_email.html:7
#, fuzzy
#| msgid "Email address:"
msgid "Confirm your email address"
msgstr "邮箱地址:"
msgstr "确认你的邮箱地址:"
#: bookwyrm/templates/confirm_email/confirm_email.html:13
msgid "A confirmation code has been sent to the email address you used to register your account."
msgstr ""
msgstr "确认码已经被发送到了你注册时所使用的邮箱地址。"
#: bookwyrm/templates/confirm_email/confirm_email.html:15
msgid "Sorry! We couldn't find that code."
msgstr ""
msgstr "抱歉!我们无法找到该代码。"
#: bookwyrm/templates/confirm_email/confirm_email.html:19
#, fuzzy
#| msgid "Confirm password:"
msgid "Confirmation code:"
msgstr "确认码:"
msgstr "确认代码:"
#: bookwyrm/templates/confirm_email/confirm_email.html:25
#: bookwyrm/templates/landing/landing_layout.html:70
@ -718,11 +710,11 @@ msgstr "提交"
#: bookwyrm/templates/confirm_email/confirm_email.html:32
msgid "Can't find your code?"
msgstr ""
msgstr "找不到你的代码?"
#: bookwyrm/templates/confirm_email/resend_form.html:4
msgid "Resend confirmation link"
msgstr ""
msgstr "重新发送确认链接"
#: bookwyrm/templates/confirm_email/resend_form.html:11
#: bookwyrm/templates/landing/landing_layout.html:64
@ -733,10 +725,8 @@ msgid "Email address:"
msgstr "邮箱地址:"
#: bookwyrm/templates/confirm_email/resend_form.html:17
#, fuzzy
#| msgid "Re-send invite"
msgid "Resend link"
msgstr "重新发送请求"
msgstr "重新发送链接"
#: bookwyrm/templates/directory/community_filter.html:5
msgid "Community"
@ -787,10 +777,8 @@ msgstr "最近活跃"
#: bookwyrm/templates/directory/user_card.html:18
#: bookwyrm/templates/user/user_preview.html:16
#: bookwyrm/templates/user/user_preview.html:17
#, fuzzy
#| msgid "Your Account"
msgid "Locked account"
msgstr "你的帐号"
msgstr "帐号已上锁"
#: bookwyrm/templates/directory/user_card.html:40
msgid "follower you follow"
@ -825,15 +813,13 @@ msgstr "所有已知用户"
#: bookwyrm/templates/discover/discover.html:4
#: bookwyrm/templates/discover/discover.html:10
#: bookwyrm/templates/layout.html:71
#, fuzzy
#| msgid "Discard"
msgid "Discover"
msgstr "削除"
msgstr "发现"
#: bookwyrm/templates/discover/discover.html:12
#, python-format
msgid "See what's new in the local %(site_name)s community"
msgstr ""
msgstr "看看本地 %(site_name)s 社区的新消息"
#: bookwyrm/templates/discover/large-book.html:46
#: bookwyrm/templates/discover/small-book.html:32
@ -857,36 +843,32 @@ msgstr "引用了"
#: bookwyrm/templates/discover/large-book.html:68
#: bookwyrm/templates/discover/small-book.html:52
#, fuzzy
#| msgid "Like status"
msgid "View status"
msgstr "喜欢状态"
msgstr "浏览状态"
#: bookwyrm/templates/email/confirm/html_content.html:6
#: bookwyrm/templates/email/confirm/text_content.html:4
#, python-format
msgid "One last step before you join %(site_name)s! Please confirm your email address by clicking the link below:"
msgstr ""
msgstr "在加入 %(site_name)s 前的最后一步!请点击以下链接以确认你的邮箱:"
#: bookwyrm/templates/email/confirm/html_content.html:11
#, fuzzy
#| msgid "Confirm"
msgid "Confirm Email"
msgstr "确认"
msgstr "确认邮箱"
#: bookwyrm/templates/email/confirm/html_content.html:15
#, python-format
msgid "Or enter the code \"<code>%(confirmation_code)s</code>\" at login."
msgstr ""
msgstr "或者在登录时输入代码 “<code>%(confirmation_code)s</code>”。"
#: bookwyrm/templates/email/confirm/subject.html:2
msgid "Please confirm your email"
msgstr ""
msgstr "请确认你的邮箱"
#: bookwyrm/templates/email/confirm/text_content.html:10
#, python-format
msgid "Or enter the code \"%(confirmation_code)s\" at login."
msgstr ""
msgstr "或者在登录时输入代码 “%(confirmation_code)s”。"
#: bookwyrm/templates/email/html_layout.html:15
#: bookwyrm/templates/email/text_layout.html:2
@ -969,10 +951,9 @@ msgid "You have no messages right now."
msgstr "你现在没有消息。"
#: bookwyrm/templates/feed/feed.html:22
#, fuzzy, python-format
#| msgid "load <span data-poll=\"stream/%(tab)s\">0</span> unread status(es)"
#, python-format
msgid "load <span data-poll=\"stream/%(tab_key)s\">0</span> unread status(es)"
msgstr "加载 <span data-poll=\"stream/%(tab)s\">0</span> 条未读状态"
msgstr "加载 <span data-poll=\"stream/%(tab_key)s\">0</span> 条未读状态"
#: bookwyrm/templates/feed/feed.html:38
msgid "There aren't any activities right now! Try following a user to get started"
@ -1447,7 +1428,7 @@ msgstr "联系站点管理员"
#: bookwyrm/templates/layout.html:226
msgid "Documentation"
msgstr "文档:"
msgstr "文档"
#: bookwyrm/templates/layout.html:233
#, python-format
@ -1591,7 +1572,7 @@ msgstr "清除搜索"
#: bookwyrm/templates/lists/list.html:151
#, python-format
msgid "No books found matching the query \"%(query)s\""
msgstr "没有符合 \"%(query)s\" 请求的书目"
msgstr "没有符合 “%(query)s” 请求的书目"
#: bookwyrm/templates/lists/list.html:179
msgid "Suggest"
@ -1607,7 +1588,7 @@ msgstr "登录"
#: bookwyrm/templates/login.html:16
msgid "Success! Email address confirmed."
msgstr ""
msgstr "成功!邮箱地址已确认。"
#: bookwyrm/templates/login.html:28 bookwyrm/templates/password_reset.html:17
#: bookwyrm/templates/snippets/register_form.html:22
@ -1811,13 +1792,13 @@ msgstr "转发了你的 <a href=\"%(related_path)s\">状态</a>"
#: bookwyrm/templates/notifications.html:121
#, python-format
msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
msgstr " 添加了 <em><a href=\"%(book_path)s\">%(book_title)s</a></em> 到你的列表 \"<a href=\"%(list_path)s\">%(list_name)s</a>\""
msgid " added <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list “<a href=\"%(list_path)s\">%(list_name)s</a>”"
msgstr " 添加了 <em><a href=\"%(book_path)s\">%(book_title)s</a></em> 到你的列表 “<a href=\"%(list_path)s\">%(list_name)s</a>”"
#: bookwyrm/templates/notifications.html:123
#, python-format
msgid " suggested adding <em><a href=\"%(book_path)s\">%(book_title)s</a></em> to your list \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
msgstr " 推荐添加 <em><a href=\"%(book_path)s\">%(book_title)s</a></em> 到你的列表 \"<a href=\"%(list_path)s/curate\">%(list_name)s</a>\""
msgstr " 推荐添加 <em><a href=\"%(book_path)s\">%(book_title)s</a></em> 到你的列表 “<a href=\"%(list_path)s/curate\">%(list_name)s</a>”"
#: bookwyrm/templates/notifications.html:128
#, python-format
@ -1893,10 +1874,8 @@ msgid "Show set reading goal prompt in feed:"
msgstr "在消息流中显示设置阅读目标的提示:"
#: bookwyrm/templates/preferences/edit_user.html:58
#, fuzzy
#| msgid "Post privacy"
msgid "Default post privacy:"
msgstr "发文隐私"
msgstr "默认发文隐私:"
#: bookwyrm/templates/preferences/edit_user.html:70
#, python-format
@ -1922,17 +1901,17 @@ msgstr "关系"
#: bookwyrm/templates/reading_progress/finish.html:5
#, python-format
msgid "Finish \"%(book_title)s\""
msgstr "完成 \"%(book_title)s\""
msgstr "完成《%(book_title)s》"
#: bookwyrm/templates/reading_progress/start.html:5
#, python-format
msgid "Start \"%(book_title)s\""
msgstr "开始 \"%(book_title)s\""
msgstr "开始《%(book_title)s》"
#: bookwyrm/templates/reading_progress/want.html:5
#, python-format
msgid "Want to Read \"%(book_title)s\""
msgstr "想要阅读 \"%(book_title)s\""
msgstr "想要阅读《%(book_title)s》"
#: bookwyrm/templates/search/book.html:64
msgid "Load results from other catalogues"
@ -1944,7 +1923,7 @@ msgstr "手动添加书目"
#: bookwyrm/templates/search/book.html:73
msgid "Log in to import or add books."
msgstr "登以导入或添加书目。"
msgstr "登以导入或添加书目。"
#: bookwyrm/templates/search/layout.html:16
msgid "Search query"
@ -1965,7 +1944,7 @@ msgstr "用户"
#: bookwyrm/templates/search/layout.html:58
#, python-format
msgid "No results found for \"%(query)s\""
msgstr "没有找到 \"%(query)s\" 的搜索结果"
msgstr "没有找到 “%(query)s” 的搜索结果"
#: bookwyrm/templates/settings/admin_layout.html:4
msgid "Administration"
@ -2414,11 +2393,11 @@ msgstr "允许请求邀请"
#: bookwyrm/templates/settings/site.html:97
msgid "Require users to confirm email address"
msgstr ""
msgstr "要求用户确认邮箱地址"
#: bookwyrm/templates/settings/site.html:99
msgid "(Recommended if registration is open)"
msgstr ""
msgstr "(当开放注册时推荐)"
#: bookwyrm/templates/settings/site.html:102
msgid "Registration closed text:"
@ -2433,15 +2412,14 @@ msgstr "由 <a href=\"%(user_path)s\">%(username)s</a> 发布"
#, python-format
msgid "and %(remainder_count_display)s other"
msgid_plural "and %(remainder_count_display)s others"
msgstr[0] ""
msgstr[0] "与其它 %(remainder_count_display)s 位"
#: bookwyrm/templates/snippets/book_cover.html:32
msgid "No cover"
msgstr "没有封面"
#: bookwyrm/templates/snippets/book_titleby.html:6
#, fuzzy, python-format
#| msgid "<a href=\"%(path)s\">%(title)s</a> by "
#, python-format
msgid "<a href=\"%(path)s\">%(title)s</a> by"
msgstr "<a href=\"%(path)s\">%(title)s</a> 来自"
@ -2465,7 +2443,7 @@ msgstr "引用"
#: bookwyrm/templates/snippets/create_status/comment.html:15
msgid "Some thoughts on the book"
msgstr ""
msgstr "对书的一些看法"
#: bookwyrm/templates/snippets/create_status/comment.html:26
#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:16
@ -2533,16 +2511,14 @@ msgid "Quote:"
msgstr "引用:"
#: bookwyrm/templates/snippets/create_status/quotation.html:27
#, fuzzy, python-format
#| msgid "Start \"%(book_title)s\""
#, python-format
msgid "An excerpt from '%(book_title)s'"
msgstr "开始 \"%(book_title)s\""
msgstr "摘自《%(book_title)s》的节录"
#: bookwyrm/templates/snippets/create_status/review.html:20
#, fuzzy, python-format
#| msgid "Editions of %(book_title)s"
#, python-format
msgid "Your review of '%(book_title)s'"
msgstr "%(book_title)s 的各版本"
msgstr "你对《%(book_title)s》的书评"
#: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Review:"
@ -2584,10 +2560,9 @@ msgid "Clear filters"
msgstr "清除过滤器"
#: bookwyrm/templates/snippets/follow_button.html:14
#, fuzzy, python-format
#| msgid "Report @%(username)s"
#, python-format
msgid "Follow @%(username)s"
msgstr "报告 %(username)s"
msgstr "关注 @%(username)s"
#: bookwyrm/templates/snippets/follow_button.html:16
msgid "Follow"
@ -2598,10 +2573,9 @@ msgid "Undo follow request"
msgstr "撤回关注请求"
#: bookwyrm/templates/snippets/follow_button.html:30
#, fuzzy, python-format
#| msgid "Report @%(username)s"
#, python-format
msgid "Unfollow @%(username)s"
msgstr "报告 %(username)s"
msgstr "取消关注 @%(username)s"
#: bookwyrm/templates/snippets/follow_button.html:32
msgid "Unfollow"
@ -2630,9 +2604,7 @@ msgid_plural "set a goal to read %(counter)s books in %(year)s"
msgstr[0] "设定了在 %(year)s 内要读 %(counter)s 本书的目标"
#: bookwyrm/templates/snippets/generated_status/rating.html:3
#, fuzzy, python-format
#| msgid "Rated <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_rating)s star"
#| msgid_plural "Rated <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_rating)s stars"
#, python-format
msgid "rated <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_rating)s star"
msgid_plural "rated <em><a href=\"%(path)s\">%(title)s</a></em>: %(display_rating)s stars"
msgstr[0] "为 <em><a href=\"%(path)s\">%(title)s</a></em> 打了分: %(display_rating)s 星"
@ -2641,12 +2613,12 @@ msgstr[0] "为 <em><a href=\"%(path)s\">%(title)s</a></em> 打了分: %(display_
#, python-format
msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s"
msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s"
msgstr[0] "\"%(book_title)s\" 的书评(%(display_rating)s 星): %(review_title)s"
msgstr[0] "《%(book_title)s》的书评(%(display_rating)s 星): %(review_title)s"
#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:8
#, python-format
msgid "Review of \"%(book_title)s\": %(review_title)s"
msgstr "\"%(book_title)s\" 的书评: %(review_title)s"
msgstr "《%(book_title)s》的书评: %(review_title)s"
#: bookwyrm/templates/snippets/goal_card.html:23
#, python-format
@ -2777,7 +2749,7 @@ msgstr "移动书目"
#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:5
#, python-format
msgid "Finish \"<em>%(book_title)s</em>\""
msgstr "完成 \"<em>%(book_title)s</em>\""
msgstr "完成《<em>%(book_title)s</em>》"
#: bookwyrm/templates/snippets/shelve_button/progress_update_modal.html:5
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:45
@ -2809,12 +2781,12 @@ msgstr "从 %(name)s 移除"
#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:5
#, python-format
msgid "Start \"<em>%(book_title)s</em>\""
msgstr "开始 \"<em>%(book_title)s</em>\""
msgstr "开始《<em>%(book_title)s</em>》"
#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:5
#, python-format
msgid "Want to Read \"<em>%(book_title)s</em>\""
msgstr "想要阅读 \"<em>%(book_title)s</em>\""
msgstr "想要阅读《<em>%(book_title)s</em>》"
#: bookwyrm/templates/snippets/status/content_status.html:72
#: bookwyrm/templates/snippets/trimmed_text.html:17
@ -2831,10 +2803,9 @@ msgid "Open image in new window"
msgstr "在新窗口中打开图像"
#: bookwyrm/templates/snippets/status/headers/comment.html:2
#, fuzzy, python-format
#| msgid "Editions of <a href=\"%(work_path)s\">\"%(work_title)s\"</a>"
#, python-format
msgid "commented on <a href=\"%(book_path)s\">%(book)s</a>"
msgstr "<a href=\"%(work_path)s\">\"%(work_title)s\"</a> 的各版本"
msgstr "评论了 <a href=\"%(book_path)s\">%(book)s</a>"
#: bookwyrm/templates/snippets/status/headers/note.html:15
#, python-format
@ -2842,40 +2813,35 @@ msgid "replied to <a href=\"%(user_path)s\">%(username)s</a>'s <a href=\"%(statu
msgstr "回复了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">状态</a>"
#: bookwyrm/templates/snippets/status/headers/quotation.html:2
#, fuzzy, python-format
#, python-format
#| msgid "Reported by <a href=\"%(path)s\">%(username)s</a>"
msgid "quoted <a href=\"%(book_path)s\">%(book)s</a>"
msgstr "由 <a href=\"%(path)s\">%(username)s</a> 报告"
msgstr "引用了 <a href=\"%(book_path)s\">%(book)s</a>"
#: bookwyrm/templates/snippets/status/headers/rating.html:3
#, fuzzy, python-format
#| msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
#, python-format
msgid "rated <a href=\"%(book_path)s\">%(book)s</a>:"
msgstr "由 <a href=\"%(path)s\">%(username)s</a> 创建"
msgstr "为 <a href=\"%(book_path)s\">%(book)s</a> 打了分:"
#: bookwyrm/templates/snippets/status/headers/read.html:5
#, fuzzy, python-format
#| msgid "Editions of <a href=\"%(work_path)s\">\"%(work_title)s\"</a>"
#, python-format
msgid "finished reading <a href=\"%(book_path)s\">%(book)s</a>"
msgstr "<a href=\"%(work_path)s\">\"%(work_title)s\"</a> 的各版本"
msgstr "完成阅读 <a href=\"%(book_path)s\">%(book)s</a>"
#: bookwyrm/templates/snippets/status/headers/reading.html:6
#, fuzzy, python-format
#| msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
#, python-format
msgid "started reading <a href=\"%(book_path)s\">%(book)s</a>"
msgstr "由 <a href=\"%(path)s\">%(username)s</a> 创建"
msgstr "开始阅读 <a href=\"%(book_path)s\">%(book)s</a>"
#: bookwyrm/templates/snippets/status/headers/review.html:3
#, fuzzy, python-format
#| msgid "Created by <a href=\"%(path)s\">%(username)s</a>"
#, python-format
msgid "reviewed <a href=\"%(book_path)s\">%(book)s</a>"
msgstr "由 <a href=\"%(path)s\">%(username)s</a> 创建"
msgstr "为 <a href=\"%(book_path)s\">%(book)s</a> 撰写了书评"
#: bookwyrm/templates/snippets/status/headers/to_read.html:6
#, fuzzy, python-format
#| msgid "replied to <a href=\"%(user_path)s\">%(username)s's</a> <a href=\"%(status_path)s\">status</a>"
#, python-format
msgid "<a href=\"%(user_path)s\">%(username)s</a> wants to read <a href=\"%(book_path)s\">%(book)s</a>"
msgstr "回复了 <a href=\"%(user_path)s\">%(username)s</a> 的 <a href=\"%(status_path)s\">状态</a>"
msgstr "<a href=\"%(user_path)s\">%(username)s</a> 想要阅读 <a href=\"%(book_path)s\">%(book)s</a>"
#: bookwyrm/templates/snippets/status/layout.html:21
#: bookwyrm/templates/snippets/status/status_options.html:17
@ -2925,10 +2891,8 @@ msgstr[0] "%(shared_books)s 本在你书架上也有的书"
#: bookwyrm/templates/snippets/suggested_users.html:31
#: bookwyrm/templates/user/user_preview.html:36
#, fuzzy
#| msgid "followed you"
msgid "Follows you"
msgstr "关注了你"
msgstr "正在关注着你"
#: bookwyrm/templates/snippets/switch_edition_button.html:5
msgid "Switch to this edition"
@ -3079,11 +3043,8 @@ msgid_plural "%(mutuals_display)s followers you follow"
msgstr[0] "%(mutuals_display)s 个你也关注的关注者"
#: bookwyrm/templates/user/user_preview.html:38
#, fuzzy
#| msgid "follower you follow"
#| msgid_plural "followers you follow"
msgid "No followers you follow"
msgstr "你关注的关注者"
msgstr "没有你关注的关注者"
#: bookwyrm/templates/user_admin/user.html:9
msgid "Back to users"
@ -3167,7 +3128,7 @@ msgstr "%(title)s%(subtitle)s"
#: bookwyrm/views/authentication.py:69
msgid "Username or password are incorrect"
msgstr ""
msgstr "用户名或密码不正确"
#: bookwyrm/views/import_data.py:67
msgid "Not a valid csv file"