rephrase share as crosspost

This commit is contained in:
Your Name 2024-06-16 21:54:20 -04:00 committed by Henri Dickson
parent 4e41165be4
commit 77eefa9e13
16 changed files with 81 additions and 83 deletions

View file

@ -18,7 +18,7 @@ class ReviewForm(forms.ModelForm):
title = forms.CharField(label=_("Title")) title = forms.CharField(label=_("Title"))
body = MarkdownxFormField(label=_("Content (Markdown)"), strip=False) body = MarkdownxFormField(label=_("Content (Markdown)"), strip=False)
share_to_mastodon = forms.BooleanField( share_to_mastodon = forms.BooleanField(
label=_("Post to Fediverse"), initial=True, required=False label=_("Crosspost to timeline"), initial=True, required=False
) )
id = forms.IntegerField(required=False, widget=forms.HiddenInput()) id = forms.IntegerField(required=False, widget=forms.HiddenInput())
visibility = forms.TypedChoiceField( visibility = forms.TypedChoiceField(
@ -40,7 +40,7 @@ class CollectionForm(forms.ModelForm):
# id = forms.IntegerField(required=False, widget=forms.HiddenInput()) # id = forms.IntegerField(required=False, widget=forms.HiddenInput())
title = forms.CharField(label=_("Title")) title = forms.CharField(label=_("Title"))
brief = MarkdownxFormField(label=_("Content (Markdown)"), strip=False) brief = MarkdownxFormField(label=_("Content (Markdown)"), strip=False)
# share_to_mastodon = forms.BooleanField(label=_("Repost to Fediverse"), initial=True, required=False) # share_to_mastodon = forms.BooleanField(label=_("Crosspost to timeline"), initial=True, required=False)
visibility = forms.TypedChoiceField( visibility = forms.TypedChoiceField(
label=_("Visibility"), label=_("Visibility"),
initial=0, initial=0,

View file

@ -112,13 +112,13 @@ class Comment(Content):
comment.save() comment.save()
return comment return comment
def get_repost_postfix(self): def get_crosspost_postfix(self):
tags = render_post_with_macro( tags = render_post_with_macro(
self.owner.user.preference.mastodon_append_tag, self.item self.owner.user.preference.mastodon_append_tag, self.item
) )
return "\n" + tags if tags else "" return "\n" + tags if tags else ""
def get_repost_template(self): def get_crosspost_template(self):
return _( return _(
ShelfManager.get_action_template(ShelfType.PROGRESS, self.item.category) ShelfManager.get_action_template(ShelfType.PROGRESS, self.item.category)
) )
@ -126,9 +126,9 @@ class Comment(Content):
def to_mastodon_params(self): def to_mastodon_params(self):
spoiler_text, txt = render_spoiler_text(self.text, self.item) spoiler_text, txt = render_spoiler_text(self.text, self.item)
content = ( content = (
self.get_repost_template().format(item=self.item.display_title) self.get_crosspost_template().format(item=self.item.display_title)
+ f"\n{txt}\n{settings.SITE_INFO['site_url']}{self.item_url}" + f"\n{txt}\n{settings.SITE_INFO['site_url']}{self.item_url}"
+ self.get_repost_postfix() + self.get_crosspost_postfix()
) )
params = { params = {
"content": content, "content": content,
@ -140,13 +140,13 @@ class Comment(Content):
def to_post_params(self): def to_post_params(self):
item_link = f"{settings.SITE_INFO['site_url']}/~neodb~{self.item_url}" item_link = f"{settings.SITE_INFO['site_url']}/~neodb~{self.item_url}"
prepend_content = ( prepend_content = (
self.get_repost_template().format( self.get_crosspost_template().format(
item=f'<a href="{item_link}">{self.item.display_title}</a>' item=f'<a href="{item_link}">{self.item.display_title}</a>'
) )
+ "<br>" + "<br>"
) )
spoiler_text, txt = render_spoiler_text(self.text, self.item) spoiler_text, txt = render_spoiler_text(self.text, self.item)
content = f"{txt}\n{self.get_repost_postfix()}" content = f"{txt}\n{self.get_crosspost_postfix()}"
return { return {
"prepend_content": prepend_content, "prepend_content": prepend_content,
"content": content, "content": content,

View file

@ -128,14 +128,14 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin):
"takahe.Post", related_name="pieces", through="PiecePost" "takahe.Post", related_name="pieces", through="PiecePost"
) )
def get_mastodon_repost_url(self): def get_mastodon_crosspost_url(self):
return ( return (
(self.metadata or {}).get("shared_link") (self.metadata or {}).get("shared_link")
if hasattr(self, "metadata") if hasattr(self, "metadata")
else None else None
) )
def set_mastodon_repost_url(self, url: str | None): def set_mastodon_crosspost_url(self, url: str | None):
if not hasattr(self, "metadata"): if not hasattr(self, "metadata"):
logger.warning("metadata field not found") logger.warning("metadata field not found")
return return
@ -152,7 +152,7 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin):
def delete(self, *args, **kwargs): def delete(self, *args, **kwargs):
if self.local: if self.local:
Takahe.delete_posts(self.all_post_ids) Takahe.delete_posts(self.all_post_ids)
toot_url = self.get_mastodon_repost_url() toot_url = self.get_mastodon_crosspost_url()
if toot_url: if toot_url:
delete_toot_later(self.owner.user, toot_url) delete_toot_later(self.owner.user, toot_url)
return super().delete(*args, **kwargs) return super().delete(*args, **kwargs)
@ -314,7 +314,7 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin):
if user.preference.mastodon_repost_mode == 1: if user.preference.mastodon_repost_mode == 1:
if delete_existing: if delete_existing:
self.delete_mastodon_repost() self.delete_mastodon_repost()
return self.repost_to_mastodon() return self.crosspost_to_mastodon()
elif self.latest_post: elif self.latest_post:
return boost_toot_later(user, self.latest_post.url) return boost_toot_later(user, self.latest_post.url)
else: else:
@ -322,17 +322,17 @@ class Piece(PolymorphicModel, UserOwnedObjectMixin):
return False, 404 return False, 404
def delete_mastodon_repost(self): def delete_mastodon_repost(self):
toot_url = self.get_mastodon_repost_url() toot_url = self.get_mastodon_crosspost_url()
if toot_url: if toot_url:
self.set_mastodon_repost_url(None) self.set_mastodon_crosspost_url(None)
delete_toot(self.owner.user, toot_url) delete_toot(self.owner.user, toot_url)
def repost_to_mastodon(self): def crosspost_to_mastodon(self):
user = self.owner.user user = self.owner.user
d = { d = {
"user": user, "user": user,
"visibility": self.visibility, "visibility": self.visibility,
"update_toot_url": self.get_mastodon_repost_url(), "update_toot_url": self.get_mastodon_crosspost_url(),
} }
d.update(self.to_mastodon_params()) d.update(self.to_mastodon_params())
response = post_toot2(**d) response = post_toot2(**d)

View file

@ -294,10 +294,10 @@ class Mark:
# publish a new or updated ActivityPub post # publish a new or updated ActivityPub post
user = self.owner.user user = self.owner.user
post_as_new = shelf_type != last_shelf_type or visibility != last_visibility post_as_new = shelf_type != last_shelf_type or visibility != last_visibility
classic_repost = user.preference.mastodon_repost_mode == 1 classic_crosspost = user.preference.mastodon_repost_mode == 1
append = ( append = (
f"@{user.mastodon_acct}\n" f"@{user.mastodon_acct}\n"
if visibility > 0 and share_to_mastodon and not classic_repost if visibility > 0 and share_to_mastodon and not classic_crosspost
else "" else ""
) )
post = Takahe.post_mark(self, post_as_new, append) post = Takahe.post_mark(self, post_as_new, append)
@ -306,7 +306,7 @@ class Mark:
Takahe.bookmark(post.pk, self.owner.pk) Takahe.bookmark(post.pk, self.owner.pk)
# async boost to mastodon # async boost to mastodon
if post and share_to_mastodon: if post and share_to_mastodon:
if classic_repost: if classic_crosspost:
share_mark(self, post_as_new) share_mark(self, post_as_new)
else: else:
boost_toot_later(user, post.url) boost_toot_later(user, post.url)

View file

@ -177,7 +177,9 @@ class Note(Content):
"content": self.content + footer, "content": self.content + footer,
"sensitive": self.sensitive, "sensitive": self.sensitive,
"reply_to_toot_url": ( "reply_to_toot_url": (
self.shelfmember.get_mastodon_repost_url() if self.shelfmember else None self.shelfmember.get_mastodon_crosspost_url()
if self.shelfmember
else None
), ),
} }
if self.latest_post: if self.latest_post:

View file

@ -78,20 +78,20 @@ class Review(Content):
p.link_post_id(post.id) p.link_post_id(post.id)
return p return p
def get_repost_postfix(self): def get_crosspost_postfix(self):
tags = render_post_with_macro( tags = render_post_with_macro(
self.owner.user.preference.mastodon_append_tag, self.item self.owner.user.preference.mastodon_append_tag, self.item
) )
return "\n" + tags if tags else "" return "\n" + tags if tags else ""
def get_repost_template(self): def get_crosspost_template(self):
return _(ShelfManager.get_action_template("reviewed", self.item.category)) return _(ShelfManager.get_action_template("reviewed", self.item.category))
def to_mastodon_params(self): def to_mastodon_params(self):
content = ( content = (
self.get_repost_template().format(item=self.item.display_title) self.get_crosspost_template().format(item=self.item.display_title)
+ f"\n{self.title}\n{self.absolute_url} " + f"\n{self.title}\n{self.absolute_url} "
+ self.get_repost_postfix() + self.get_crosspost_postfix()
) )
params = {"content": content} params = {"content": content}
return params return params
@ -99,12 +99,14 @@ class Review(Content):
def to_post_params(self): def to_post_params(self):
item_link = f"{settings.SITE_INFO['site_url']}/~neodb~{self.item.url}" item_link = f"{settings.SITE_INFO['site_url']}/~neodb~{self.item.url}"
prepend_content = ( prepend_content = (
self.get_repost_template().format( self.get_crosspost_template().format(
item=f'<a href="{item_link}">{self.item.display_title}</a>' item=f'<a href="{item_link}">{self.item.display_title}</a>'
) )
+ f'<br><a href="{self.absolute_url}">{self.title}</a>' + f'<br><a href="{self.absolute_url}">{self.title}</a>'
) )
content = f"{render_rating(self.rating_grade, 1)}\n{self.get_repost_postfix()}" content = (
f"{render_rating(self.rating_grade, 1)}\n{self.get_crosspost_postfix()}"
)
return { return {
"prepend_content": prepend_content, "prepend_content": prepend_content,
"content": content, "content": content,

View file

@ -59,7 +59,7 @@
id="id_share_to_mastodon" id="id_share_to_mastodon"
value="1" value="1"
{% if request.user.preference.mastodon_default_repost %}checked{% endif %}> {% if request.user.preference.mastodon_default_repost %}checked{% endif %}>
{% trans "Repost to timeline" %} {% trans "Crosspost to timeline" %}
</label> </label>
{% endif %} {% endif %}
</fieldset> </fieldset>

View file

@ -117,7 +117,7 @@
id="id_share_to_mastodon" id="id_share_to_mastodon"
value="1" value="1"
{% if request.user.preference.mastodon_default_repost %}checked{% endif %}> {% if request.user.preference.mastodon_default_repost %}checked{% endif %}>
{% trans "Repost to timeline" %} {% trans "Crosspost to timeline" %}
</label> </label>
{% endif %} {% endif %}
</fieldset> </fieldset>

View file

@ -30,7 +30,7 @@ def render_relogin(request):
"common/error.html", "common/error.html",
{ {
"url": reverse("users:connect") + "?domain=" + request.user.mastodon_site, "url": reverse("users:connect") + "?domain=" + request.user.mastodon_site,
"msg": _("Data saved but unable to repost to Fediverse instance."), "msg": _("Data saved but unable to crosspost to Fediverse instance."),
"secondary_msg": _( "secondary_msg": _(
"Redirecting to your Fediverse instance now to re-authenticate." "Redirecting to your Fediverse instance now to re-authenticate."
), ),

View file

@ -115,7 +115,7 @@ def mark(request: AuthedHttpRequest, item_uuid):
"common/error.html", "common/error.html",
{ {
"msg": _( "msg": _(
"Data saved but unable to repost to Fediverse instance." "Data saved but unable to crosspost to Fediverse instance."
), ),
"secondary_msg": err, "secondary_msg": err,
}, },

View file

@ -23,7 +23,7 @@ class NoteForm(NeoModelForm):
widget=forms.RadioSelect(), choices=VisibilityType.choices, initial=0 widget=forms.RadioSelect(), choices=VisibilityType.choices, initial=0
) )
share_to_mastodon = forms.BooleanField( share_to_mastodon = forms.BooleanField(
label=_("Post to Fediverse"), initial=True, required=False label=_("Crosspost to timeline"), initial=True, required=False
) )
uuid = forms.CharField(widget=forms.HiddenInput(), required=False) uuid = forms.CharField(widget=forms.HiddenInput(), required=False)
# content = forms.CharField(required=False, widget=forms.Textarea) # content = forms.CharField(required=False, widget=forms.Textarea)

View file

@ -49,7 +49,7 @@ def post_reply(request: AuthedHttpRequest, post_id: int):
@require_http_methods(["POST"]) @require_http_methods(["POST"])
@login_required @login_required
def post_boost(request: AuthedHttpRequest, post_id: int): def post_boost(request: AuthedHttpRequest, post_id: int):
# classic_repost = request.user.preference.mastodon_repost_mode == 1 # classic_crosspost = request.user.preference.mastodon_repost_mode == 1
post = Takahe.get_post(post_id) post = Takahe.get_post(post_id)
if not post: if not post:
raise BadRequest(_("Invalid parameter")) raise BadRequest(_("Invalid parameter"))

View file

@ -127,8 +127,8 @@ class WrappedShareView(LoginRequiredMixin, TemplateView):
Takahe.visibility_n2t(visibility, user.preference.post_public_mode), Takahe.visibility_n2t(visibility, user.preference.post_public_mode),
attachments=[media], attachments=[media],
) )
classic_repost = user.preference.mastodon_repost_mode == 1 classic_crosspost = user.preference.mastodon_repost_mode == 1
if classic_repost: if classic_crosspost:
post_toot_later( post_toot_later(
user, user,
comment, comment,

View file

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-15 23:28-0400\n" "POT-Creation-Date: 2024-06-16 21:51-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -1678,9 +1678,10 @@ msgstr "标题"
msgid "Content (Markdown)" msgid "Content (Markdown)"
msgstr "内容 Markdown格式" msgstr "内容 Markdown格式"
#: journal/forms.py:21 journal/views/note.py:26 #: journal/forms.py:21 journal/templates/comment.html:62
msgid "Post to Fediverse" #: journal/templates/mark.html:120 journal/views/note.py:26
msgstr "发布到联邦宇宙" msgid "Crosspost to timeline"
msgstr "转发到时间轴"
#: journal/forms.py:25 journal/forms.py:45 #: journal/forms.py:25 journal/forms.py:45
#: journal/templates/collection_share.html:24 #: journal/templates/collection_share.html:24
@ -1807,7 +1808,7 @@ msgstr "第{value}首"
msgid "Cycle {value}" msgid "Cycle {value}"
msgstr "{value}周目" msgstr "{value}周目"
#: journal/models/renderers.py:94 mastodon/api.py:619 takahe/utils.py:543 #: journal/models/renderers.py:94 mastodon/api.py:619 takahe/utils.py:550
#, python-brace-format #, python-brace-format
msgid "regarding {item_title}, may contain spoiler or triggering content" msgid "regarding {item_title}, may contain spoiler or triggering content"
msgstr "关于 {item_title},可能包含剧透或敏感内容" msgstr "关于 {item_title},可能包含剧透或敏感内容"
@ -2387,10 +2388,6 @@ msgstr "写短评"
msgid "Tips: use &gt;!text!&lt; for spoilers; some instances may not be able to show posts longer than 360 charactors." msgid "Tips: use &gt;!text!&lt; for spoilers; some instances may not be able to show posts longer than 360 charactors."
msgstr "提示: 善用 &gt;!文字!&lt; 标记可隐藏剧透; 超过360字可能无法分享到联邦宇宙实例时间轴。" msgstr "提示: 善用 &gt;!文字!&lt; 标记可隐藏剧透; 超过360字可能无法分享到联邦宇宙实例时间轴。"
#: journal/templates/comment.html:62 journal/templates/mark.html:120
msgid "Repost to timeline"
msgstr "转发到时间轴"
#: journal/templates/comment.html:75 #: journal/templates/comment.html:75
msgid "share with playback position" msgid "share with playback position"
msgstr "分享播放位置" msgstr "分享播放位置"
@ -2659,7 +2656,7 @@ msgid "Login required"
msgstr "登录后访问" msgstr "登录后访问"
#: journal/views/common.py:33 journal/views/mark.py:118 #: journal/views/common.py:33 journal/views/mark.py:118
msgid "Data saved but unable to repost to Fediverse instance." msgid "Data saved but unable to crosspost to Fediverse instance."
msgstr "数据已保存但未能转发到联邦实例。" msgstr "数据已保存但未能转发到联邦实例。"
#: journal/views/common.py:35 #: journal/views/common.py:35
@ -2802,7 +2799,7 @@ msgstr "播放"
msgid "comment" msgid "comment"
msgstr "写短评" msgstr "写短评"
#: social/templates/activity/create_collection.html:16 takahe/utils.py:593 #: social/templates/activity/create_collection.html:16 takahe/utils.py:600
msgid "created collection" msgid "created collection"
msgstr "创建了收藏单" msgstr "创建了收藏单"
@ -3195,39 +3192,39 @@ msgstr "登录信息已更新"
msgid "Account mismatch." msgid "Account mismatch."
msgstr "账号信息不匹配。" msgstr "账号信息不匹配。"
#: users/data.py:127 #: users/data.py:131
msgid "Generating exports." msgid "Generating exports."
msgstr "正在生成导出文件。" msgstr "正在生成导出文件。"
#: users/data.py:139 #: users/data.py:143
msgid "Export file expired. Please export again." msgid "Export file expired. Please export again."
msgstr "导出文件已失效,请重新导出" msgstr "导出文件已失效,请重新导出"
#: users/data.py:150 #: users/data.py:154
msgid "Sync in progress." msgid "Sync in progress."
msgstr "正在同步。" msgstr "正在同步。"
#: users/data.py:164 #: users/data.py:168
msgid "Settings saved." msgid "Settings saved."
msgstr "设置已保存" msgstr "设置已保存"
#: users/data.py:175 #: users/data.py:179
msgid "Reset completed." msgid "Reset completed."
msgstr "重置已完成。" msgstr "重置已完成。"
#: users/data.py:184 #: users/data.py:188
msgid "Import in progress." msgid "Import in progress."
msgstr "正在导出" msgstr "正在导出"
#: users/data.py:186 #: users/data.py:190
msgid "Invalid URL." msgid "Invalid URL."
msgstr "无效网址。" msgstr "无效网址。"
#: users/data.py:200 users/data.py:225 users/data.py:240 #: users/data.py:204 users/data.py:229 users/data.py:244
msgid "File is uploaded and will be imported soon." msgid "File is uploaded and will be imported soon."
msgstr "文件已上传,等待后台导入。" msgstr "文件已上传,等待后台导入。"
#: users/data.py:203 users/data.py:243 #: users/data.py:207 users/data.py:247
msgid "Invalid file." msgid "Invalid file."
msgstr "无效文件。" msgstr "无效文件。"
@ -3625,15 +3622,15 @@ msgid "local, this site only"
msgstr "仅本站" msgstr "仅本站"
#: users/templates/users/preferences.html:96 #: users/templates/users/preferences.html:96
msgid "Turn on repost to timeline by default" msgid "Turn on crosspost to timeline by default"
msgstr "发表时默认转发到时间轴" msgstr "发表时默认转发到时间轴"
#: users/templates/users/preferences.html:104 #: users/templates/users/preferences.html:104
msgid "Method for reposting to timeline" msgid "Method for crossposting to timeline"
msgstr "转发到时间轴的方式" msgstr "转发到时间轴的方式"
#: users/templates/users/preferences.html:118 #: users/templates/users/preferences.html:118
msgid "repost as new post" msgid "create a new post"
msgstr "另发新帖文" msgstr "另发新帖文"
#: users/templates/users/preferences.html:119 #: users/templates/users/preferences.html:119

View file

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-15 23:28-0400\n" "POT-Creation-Date: 2024-06-16 21:51-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -1678,9 +1678,10 @@ msgstr "標題"
msgid "Content (Markdown)" msgid "Content (Markdown)"
msgstr "內容 Markdown格式" msgstr "內容 Markdown格式"
#: journal/forms.py:21 journal/views/note.py:26 #: journal/forms.py:21 journal/templates/comment.html:62
msgid "Post to Fediverse" #: journal/templates/mark.html:120 journal/views/note.py:26
msgstr "發佈到聯邦宇宙" msgid "Crosspost to timeline"
msgstr "轉發到時間軸"
#: journal/forms.py:25 journal/forms.py:45 #: journal/forms.py:25 journal/forms.py:45
#: journal/templates/collection_share.html:24 #: journal/templates/collection_share.html:24
@ -1807,7 +1808,7 @@ msgstr "第{value}首"
msgid "Cycle {value}" msgid "Cycle {value}"
msgstr "{value}周目" msgstr "{value}周目"
#: journal/models/renderers.py:94 mastodon/api.py:619 takahe/utils.py:543 #: journal/models/renderers.py:94 mastodon/api.py:619 takahe/utils.py:550
#, python-brace-format #, python-brace-format
msgid "regarding {item_title}, may contain spoiler or triggering content" msgid "regarding {item_title}, may contain spoiler or triggering content"
msgstr "關於 {item_title},可能包含劇透或敏感內容" msgstr "關於 {item_title},可能包含劇透或敏感內容"
@ -2387,10 +2388,6 @@ msgstr "寫短評"
msgid "Tips: use &gt;!text!&lt; for spoilers; some instances may not be able to show posts longer than 360 charactors." msgid "Tips: use &gt;!text!&lt; for spoilers; some instances may not be able to show posts longer than 360 charactors."
msgstr "提示: 善用 &gt;!文字!&lt; 標記可隱藏劇透; 超過360字可能無法分享到聯邦宇宙實例時間軸。" msgstr "提示: 善用 &gt;!文字!&lt; 標記可隱藏劇透; 超過360字可能無法分享到聯邦宇宙實例時間軸。"
#: journal/templates/comment.html:62 journal/templates/mark.html:120
msgid "Repost to timeline"
msgstr "轉發到時間軸"
#: journal/templates/comment.html:75 #: journal/templates/comment.html:75
msgid "share with playback position" msgid "share with playback position"
msgstr "分享播放位置" msgstr "分享播放位置"
@ -2659,7 +2656,7 @@ msgid "Login required"
msgstr "登錄後訪問" msgstr "登錄後訪問"
#: journal/views/common.py:33 journal/views/mark.py:118 #: journal/views/common.py:33 journal/views/mark.py:118
msgid "Data saved but unable to repost to Fediverse instance." msgid "Data saved but unable to crosspost to Fediverse instance."
msgstr "數據已保存但未能轉發到聯邦實例。" msgstr "數據已保存但未能轉發到聯邦實例。"
#: journal/views/common.py:35 #: journal/views/common.py:35
@ -2802,7 +2799,7 @@ msgstr "播放"
msgid "comment" msgid "comment"
msgstr "寫短評" msgstr "寫短評"
#: social/templates/activity/create_collection.html:16 takahe/utils.py:593 #: social/templates/activity/create_collection.html:16 takahe/utils.py:600
msgid "created collection" msgid "created collection"
msgstr "創建了收藏單" msgstr "創建了收藏單"
@ -3195,39 +3192,39 @@ msgstr "登錄信息已更新"
msgid "Account mismatch." msgid "Account mismatch."
msgstr "賬號信息不匹配。" msgstr "賬號信息不匹配。"
#: users/data.py:127 #: users/data.py:131
msgid "Generating exports." msgid "Generating exports."
msgstr "正在生成導出文件。" msgstr "正在生成導出文件。"
#: users/data.py:139 #: users/data.py:143
msgid "Export file expired. Please export again." msgid "Export file expired. Please export again."
msgstr "導出文件已失效,請重新導出" msgstr "導出文件已失效,請重新導出"
#: users/data.py:150 #: users/data.py:154
msgid "Sync in progress." msgid "Sync in progress."
msgstr "正在同步。" msgstr "正在同步。"
#: users/data.py:164 #: users/data.py:168
msgid "Settings saved." msgid "Settings saved."
msgstr "設置已保存" msgstr "設置已保存"
#: users/data.py:175 #: users/data.py:179
msgid "Reset completed." msgid "Reset completed."
msgstr "重置已完成。" msgstr "重置已完成。"
#: users/data.py:184 #: users/data.py:188
msgid "Import in progress." msgid "Import in progress."
msgstr "正在導出" msgstr "正在導出"
#: users/data.py:186 #: users/data.py:190
msgid "Invalid URL." msgid "Invalid URL."
msgstr "無效網址。" msgstr "無效網址。"
#: users/data.py:200 users/data.py:225 users/data.py:240 #: users/data.py:204 users/data.py:229 users/data.py:244
msgid "File is uploaded and will be imported soon." msgid "File is uploaded and will be imported soon."
msgstr "文件已上傳,等待後臺導入。" msgstr "文件已上傳,等待後臺導入。"
#: users/data.py:203 users/data.py:243 #: users/data.py:207 users/data.py:247
msgid "Invalid file." msgid "Invalid file."
msgstr "無效文件。" msgstr "無效文件。"
@ -3625,15 +3622,15 @@ msgid "local, this site only"
msgstr "僅本站" msgstr "僅本站"
#: users/templates/users/preferences.html:96 #: users/templates/users/preferences.html:96
msgid "Turn on repost to timeline by default" msgid "Turn on crosspost to timeline by default"
msgstr "發表時默認轉發到時間軸" msgstr "發表時默認轉發到時間軸"
#: users/templates/users/preferences.html:104 #: users/templates/users/preferences.html:104
msgid "Method for reposting to timeline" msgid "Method for crossposting to timeline"
msgstr "轉發到時間軸的方式" msgstr "轉發到時間軸的方式"
#: users/templates/users/preferences.html:118 #: users/templates/users/preferences.html:118
msgid "repost as new post" msgid "create a new post"
msgstr "另發新帖文" msgstr "另發新帖文"
#: users/templates/users/preferences.html:119 #: users/templates/users/preferences.html:119

View file

@ -93,7 +93,7 @@
{% if request.user.mastodon_acct %} {% if request.user.mastodon_acct %}
<fieldset> <fieldset>
<label> <label>
{% trans "Turn on repost to timeline by default" %} {% trans "Turn on crosspost to timeline by default" %}
<input type="checkbox" <input type="checkbox"
name="mastodon_default_repost" name="mastodon_default_repost"
value="1" value="1"
@ -101,7 +101,7 @@
</label> </label>
</fieldset> </fieldset>
<fieldset> <fieldset>
{% trans "Method for reposting to timeline" %} {% trans "Method for crossposting to timeline" %}
<input type="radio" <input type="radio"
name="mastodon_repost_mode" name="mastodon_repost_mode"
value="0" value="0"
@ -115,7 +115,7 @@
required="" required=""
id="mastodon_repost_mode_1" id="mastodon_repost_mode_1"
{% if request.user.preference.mastodon_repost_mode == 1 %}checked{% endif %}> {% if request.user.preference.mastodon_repost_mode == 1 %}checked{% endif %}>
<label for="mastodon_repost_mode_1">{% trans "repost as new post" %}</label> <label for="mastodon_repost_mode_1">{% trans "create a new post" %}</label>
<em data-tooltip="{% trans "this method is less optimal, may generate duplicated posts and miss reactions." %}"><i class="fa fa-question-circle"></i></em> <em data-tooltip="{% trans "this method is less optimal, may generate duplicated posts and miss reactions." %}"><i class="fa fa-question-circle"></i></em>
</fieldset> </fieldset>
{% endif %} {% endif %}