From 6c74ba9f8f80defb9f56f19745e389e5060d4ab0 Mon Sep 17 00:00:00 2001 From: Dannek Rose Date: Wed, 24 May 2023 17:24:22 +0000 Subject: [PATCH 01/30] Translated using Weblate (Japanese) Currently translated at 42.9% (673 of 1566 strings) Translation: Mobilizon/Frontend Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/ --- js/src/i18n/ja.json | 86 ++++++++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/js/src/i18n/ja.json b/js/src/i18n/ja.json index de59def4c..fb61123cf 100644 --- a/js/src/i18n/ja.json +++ b/js/src/i18n/ja.json @@ -33,9 +33,9 @@ "A short tagline for your instance homepage. Defaults to \"Gather ⋅ Organize ⋅ Mobilize\"": "", "A twitter account handle to follow for event updates": "", "A user-friendly, emancipatory and ethical tool for gathering, organising, and mobilising.": "人を集めて計画して動員するための開放的で取り扱いが簡単で倫理的なソフトです。", - "A validation email was sent to {email}": "", + "A validation email was sent to {email}": "{email}に検証メールを送信しました", "API": "API", - "Abandon editing": "", + "Abandon editing": "編集中止", "About": "Mobilizonについて", "About Mobilizon": "Mobilizonについて", "About anonymous participation": "匿名参加について", @@ -58,7 +58,7 @@ "Active": "アクティブ", "Activity": "", "Actor": "役割", - "Add": "", + "Add": "追加", "Add / Remove…": "追加/削除…", "Add a contact": "連絡先を追加する", "Add a new post": "新しい投稿をする", @@ -75,15 +75,15 @@ "Admin": "管理者", "Admin dashboard": "管理者画面", "Admin settings": "管理者設定", - "Admin settings successfully saved.": "", + "Admin settings successfully saved.": "管理設定を保存されました。", "Administration": "管理", "Administrator": "管理者", "All": "全て", "All activities": "全てのアクティビティ", "All good, let's continue!": "", - "All the places have already been taken": "", + "All the places have already been taken": "すでに満員になりました", "Allow all comments from users with accounts": "", - "Allow registrations": "アカウント登録を許可する", + "Allow registrations": "アカウント新規登録", "An URL to an external ticketing platform": "", "An error has occured while refreshing the page.": "ページを更新中にエラーが発生しました。", "An error has occured. Sorry about that. You may try to reload the page.": "申し訳ありません、エラーが発生しました。再度ページを読み込んでみてください。", @@ -99,7 +99,7 @@ "And {number} comments": "", "Announcements and mentions notifications are always sent straight away.": "", "Anonymous participant": "匿名の参加者", - "Anonymous participants will be asked to confirm their participation through e-mail.": "", + "Anonymous participants will be asked to confirm their participation through e-mail.": "匿名参加者の参加の確認はメールで確認します。", "Anonymous participations": "匿名の参加者", "Any category": "全てのカテゴリー", "Any day": "", @@ -111,7 +111,7 @@ "Approve member": "", "Are you really sure you want to delete your whole account? You'll lose everything. Identities, settings, events created, messages and participations will be gone forever.": "", "Are you sure you want to completely delete this group? All members - including remote ones - will be notified and removed from the group, and all of the group data (events, posts, discussions, todos…) will be irretrievably destroyed.": "", - "Are you sure you want to delete this comment? This action cannot be undone.": "本当にこのコメントを削除しますか?このアクションを取り消すことはできません。", + "Are you sure you want to delete this comment? This action cannot be undone.": "本当にこのコメントを削除しますか?取り戻すことはできません。", "Are you sure you want to delete this event? This action cannot be undone. You may want to engage the discussion with the event creator or edit its event instead.": "", "Are you sure you want to suspend this group? All members - including remote ones - will be notified and removed from the group, and all of the group data (events, posts, discussions, todos…) will be irretrievably destroyed.": "", "Are you sure you want to suspend this group? As this group originates from instance {instance}, this will only remove local members and delete the local data, as well as rejecting all the future data.": "", @@ -119,7 +119,7 @@ "Are you sure you want to cancel the event edition? You'll lose all modifications.": "", "Are you sure you want to cancel your participation at event \"{title}\"?": "", "Are you sure you want to delete this entire discussion?": "本当に全ての議論を削除しますか?", - "Are you sure you want to delete this event? This action cannot be reverted.": "本当にこのイベントを削除しますか?このアクションを取り消すことはできません。", + "Are you sure you want to delete this event? This action cannot be reverted.": "本当にこのイベントを削除しますか?取り戻すことはできません。", "Are you sure you want to delete this post? This action cannot be reverted.": "本当にこの投稿を削除しますか?このアクションは取り消しできません。", "Are you sure you want to leave the group {groupName}? You'll loose access to this group's private content. This action cannot be undone.": "", "As the event organizer has chosen to manually validate participation requests, your participation will be really confirmed only once you receive an email stating it's being accepted.": "", @@ -291,7 +291,7 @@ "Edited {relative_time} ago": "", "Eg: Stockholm, Dance, Chess…": "", "Either on the {instance} instance or on another instance.": "", - "Either the account is already validated, either the validation token is incorrect.": "", + "Either the account is already validated, either the validation token is incorrect.": "すでにアカウント検証済みか不正確な検証コードです。", "Either the email has already been changed, either the validation token is incorrect.": "", "Either the participation request has already been validated, either the validation token is incorrect.": "", "Element title": "", @@ -301,7 +301,7 @@ "Email validate": "", "Emails usually don't contain capitals, make sure you haven't made a typo.": "", "Enabled": "有効", - "Ends on…": "", + "Ends on…": "...終了時間・日付", "Enter the link URL": "URLのリンクを入力する", "Enter your email address below, and we'll email you instructions on how to change your password.": "", "Enter your own privacy policy. HTML tags allowed. The {mobilizon_privacy_policy} is provided as template.": "", @@ -377,7 +377,7 @@ "Framadate poll": "", "From my groups": "", "From the {startDate} at {startTime} to the {endDate}": "", - "From the {startDate} at {startTime} to the {endDate} at {endTime}": "", + "From the {startDate} at {startTime} to the {endDate} at {endTime}": "開始:{startDate} の{startTime}時から、終了:{endDate}の{endTime}時まで", "From the {startDate} to the {endDate}": "{startDate}から{endDate}まで", "From yourself": "", "Fully accessible with a wheelchair": "", @@ -386,10 +386,10 @@ "General information": "一般情報", "General settings": "一般設定", "Geolocation was not determined in time.": "", - "Getting location": "", + "Getting location": "場所検索中", "Getting there": "", "Glossary": "", - "Go": "", + "Go": "実行", "Go to the event page": "イベントページにアクセス", "Google Meet": "", "Group": "グループ", @@ -496,21 +496,21 @@ "Learn more about Mobilizon": "Mobilizonについて詳しく知る", "Learn more about {instance}": "{instance}について詳しく知る", "Leave": "グループを去る", - "Leave event": "", + "Leave event": "イベント参加を取り消す", "Leave group": "グループから去る", - "Leaving event \"{title}\"": "", + "Leaving event \"{title}\"": "「{title}」というイベント参加を取り消しています", "Legal": "", "Let's define a few settings": "", "License": "ライセンス", "Limited number of places": "", "List title": "", "Live": "", - "Load more": "", + "Load more": "もっと見る", "Load more activities": "", "Loading comments…": "コメントを読み込んでいます…", "Local": "ローカル", "Local time ({timezone})": "ローカルタイム({timezone})", - "Locality": "", + "Locality": "地方・エリア", "Location": "場所", "Log in": "ログイン", "Log out": "ログアウト", @@ -519,7 +519,7 @@ "Login on {instance}": "{instance} にログイン", "Login status": "ログイン状態", "Main languages you/your moderators speak": "このインスタンスのモデレーターとあなたが話す言語", - "Manage participations": "", + "Manage participations": "参加者の管理", "Manually approve new followers": "", "Manually invite new members": "", "Mark as resolved": "解決済みとしてマークする", @@ -540,7 +540,7 @@ "Mobilizon version": "Mobilizonのバージョン", "Mobilizon will send you an email when the events you are attending have important changes: date and time, address, confirmation or cancellation, etc.": "", "Moderate new members": "新しいメンバーをモデレートする", - "Moderated comments (shown after approval)": "", + "Moderated comments (shown after approval)": "(管理人の承知した後に表示されている)承認済みの投稿", "Moderation": "モデレーション", "Moderation log": "モデレーションログ", "Moderation logs": "モデレーションログ", @@ -569,7 +569,7 @@ "Next month": "来月", "Next page": "次のページ", "Next week": "来週", - "No address defined": "", + "No address defined": "住所なし", "No closed reports yet": "", "No comment": "コメントがありません。", "No comments yet": "まだコメントがありません", @@ -627,7 +627,7 @@ "Notifications for manually approved participations to an event": "", "Notify participants": "", "Now, create your first profile:": "", - "Number of places": "", + "Number of places": "行う場所の数", "OK": "OK", "Old password": "古いパスワード", "On {date}": "", @@ -692,10 +692,10 @@ "Pick an instance": "インスタンスを選ぶ", "Please add as many details as possible to help identify the problem.": "", "Please check your spam folder if you didn't receive the email.": "", - "Please contact this instance's Mobilizon admin if you think this is a mistake.": "", + "Please contact this instance's Mobilizon admin if you think this is a mistake.": "誤りがある場合、サーバーのMobilizonの管理人と連絡してください。", "Please do not use it in any real way.": "本格的に利用することはご遠慮ください。", "Please enter your password to confirm this action.": "このアクションの確認のため、パスワードを入力してください。", - "Please make sure the address is correct and that the page hasn't been moved.": "", + "Please make sure the address is correct and that the page hasn't been moved.": "リンクが正しいか、またはページが移動されていないかを確かめてください。", "Please read the {fullRules} published by {instance}'s administrators.": "{instance}の管理者によって作成された{fullRules}をお読み下さい。", "Post": "投稿", "Post URL": "投稿URL", @@ -724,7 +724,7 @@ "Promote": "", "Public": "公開", "Public RSS/Atom Feed": "公開RSS/Atomフィード", - "Public comment moderation": "", + "Public comment moderation": "公表の投稿の調整設定", "Public event": "公開イベント", "Public feeds": "公開フィード", "Public iCal Feed": "公開iCalフィード", @@ -751,9 +751,9 @@ "Register": "アカウント作成", "Register an account on {instanceName}!": "", "Register on this instance": "", - "Registration is allowed, anyone can register.": "アカウント登録は許可されており、どなたでも登録できます。", - "Registration is closed.": "アカウント登録は許可されていません。", - "Registration is currently closed.": "アカウント登録は、現在は許可されていません。", + "Registration is allowed, anyone can register.": "制限なくアカウントの新規登録可能です。", + "Registration is closed.": "アカウントの新規登録が停止されています。", + "Registration is currently closed.": "アカウントの新規登録が停止中です。", "Registrations": "", "Registrations are restricted by allowlisting.": "", "Reject": "拒否する", @@ -811,7 +811,7 @@ "Select languages": "言語を選ぶ", "Select the activities for which you wish to receive an email or a push notification.": "", "Send": "送信する", - "Send email": "メールを送る", + "Send email": "メールを送信する", "Send feedback": "フィードバックを送信する", "Send notification e-mails": "", "Send password reset": "", @@ -827,19 +827,19 @@ "Short bio": "", "Show map": "地図を表示", "Show me where I am": "", - "Show remaining number of places": "", + "Show remaining number of places": "残りの参加できる人の数を表示する", "Show the time when the event begins": "イベントの開始時刻を表示", "Show the time when the event ends": "イベントの終了時刻を表示", "Showing events before": "", "Showing events starting on": "", "Sign Language": "", "Sign in with": "", - "Sign up": "アカウント作成", + "Sign up": "新規登録", "Since you are a new member, private content can take a few minutes to appear.": "", "Skip to main content": "", "Social": "ソーシャル", "Some terms, technical or otherwise, used in the text below may cover concepts that are difficult to grasp. We have provided a glossary here to help you understand them better:": "", - "Starts on…": "", + "Starts on…": "開始は…", "Status": "状態", "Stop following instance": "インスタンスへのフォローを止める", "Street": "通り", @@ -854,7 +854,7 @@ "Task lists": "タスクリスト", "Technical details": "技術的詳細", "Tentative": "", - "Tentative: Will be confirmed later": "", + "Tentative: Will be confirmed later": "仮参加:確認待ち", "Terms": "利用規約", "Terms of service": "利用規約", "Text": "文字", @@ -871,7 +871,7 @@ "The Zoom video teleconference URL": "Zoomでのテレビ会議用URL", "The account's email address was changed. Check your emails to verify it.": "アカウントのメールアドレスが変更されました。メールをチェックして、メールアドレスの認証を行ってください。", "The actual number of participants may differ, as this event is hosted on another instance.": "", - "The content came from another server. Transfer an anonymous copy of the report?": "", + "The content came from another server. Transfer an anonymous copy of the report?": "通報の内容は他のサーバーから送信されました。匿名で通報を送信しますか?", "The draft event has been updated": "", "The event has a sign language interpreter": "", "The event has been created as a draft": "", @@ -883,9 +883,9 @@ "The event live video contains subtitles": "", "The event live video does not contain subtitles": "", "The event organiser has chosen to validate manually participations. Do you want to add a little note to explain why you want to participate to this event?": "", - "The event organizer didn't add any description.": "", + "The event organizer didn't add any description.": "イベントの主催者は記述を書いてない。", "The event organizer manually approves participations. Since you've chosen to participate without an account, please explain why you want to participate to this event.": "", - "The event title will be ellipsed.": "", + "The event title will be ellipsed.": "イベントのタイトルは省略されます。", "The event will show as attributed to this group.": "", "The event will show as attributed to this profile.": "", "The event will show as attributed to your personal profile.": "", @@ -908,12 +908,12 @@ "The membership request from {profile} was rejected": "", "The only way for your group to get new members is if an admininistrator invites them.": "", "The organiser has chosen to close comments.": "", - "The page you're looking for doesn't exist.": "", + "The page you're looking for doesn't exist.": "探しているページを見つかりません。", "The password was successfully changed": "", "The post {post} was created by {profile}.": "投稿{post}は{profile}によって作成されました。", "The post {post} was deleted by {profile}.": "投稿{post}は{profile}によって削除されました。", "The post {post} was updated by {profile}.": "投稿{post}は{profile}によって更新されました。", - "The report will be sent to the moderators of your instance. You can explain why you report this content below.": "", + "The report will be sent to the moderators of your instance. You can explain why you report this content below.": "通報はあなたのサーバーの管理者に送信されます。通報の理由は下記で説明できます。", "The selected picture is too heavy. You need to select a file smaller than {size}.": "", "The technical details of the error can help developers solve the problem more easily. Please add them to your feedback.": "", "The {default_privacy_policy} will be used. They will be translated in the user's language.": "", @@ -922,7 +922,7 @@ "There is no activity yet. Start doing some things to see activity appear here.": "", "There will be no way to recover your data.": "", "There's no discussions yet": "まだ議論はありません", - "These events may interest you": "", + "These events may interest you": "お勧めのイベント", "These feeds contain event data for the events for which any of your profiles is a participant or creator. You should keep these private. You can find feeds for specific profiles on each profile edition page.": "", "These feeds contain event data for the events for which this specific profile is a participant or creator. You should keep these private. You can find feeds for all of your profiles into your notification settings.": "", "This Mobilizon instance and this event organizer allows anonymous participations, but requires validation through email confirmation.": "", @@ -938,7 +938,7 @@ "This information is saved only on your computer. Click for details": "", "This instance doesn't follow yours.": "このインスタンスはあなたをフォローしていません", "This instance hasn't got push notifications enabled.": "このインスタンスではプッシュ通知が有効化されていません。", - "This instance isn't opened to registrations, but you can register on other instances.": "", + "This instance isn't opened to registrations, but you can register on other instances.": "このサーバーに新規登録できないのですが、ほかのサーバーに新規登録できます。", "This instance, {instanceName} ({domain}), hosts your profile, so remember its name.": "", "This is a demonstration site to test Mobilizon.": "", "This is like your federated username ({username}) for groups. It will allow the group to be found on the federation, and is guaranteed to be unique.": "", @@ -1180,7 +1180,7 @@ "Zoom in": "拡大する", "Zoom out": "縮小する", "[This comment has been deleted by it's author]": "[このコメントは投稿者によって削除されました]", - "[This comment has been deleted]": "[このコメントは削除されました]", + "[This comment has been deleted]": "[このコメントが削除されました]", "[deleted]": "[削除された]", "a non-existent report": "", "access to the group's private content as well": "", @@ -1200,7 +1200,7 @@ "full rules": "", "group's upcoming public events": "", "https://mensuel.framapad.org/p/some-secret-token": "", - "iCal Feed": "", + "iCal Feed": "iCalフェード", "instance rules": "インスタンスルール", "more than 1360 contributors": "1,360人以上のコントリビューター", "profile@instance": "", @@ -1211,7 +1211,7 @@ "with another identity…": "", "your notification settings": "あなたの通知設定", "{'@'}{username}": "", - "{approved} / {total} seats": "", + "{approved} / {total} seats": "{approved} / {total} 人まで", "{available}/{capacity} available places": "", "{count} km": "", "{count} members": "", From 863655117e6d38c04f381c1269ad45c23ebe7ea4 Mon Sep 17 00:00:00 2001 From: Dannek Rose Date: Fri, 26 May 2023 21:22:27 +0000 Subject: [PATCH 02/30] Translated using Weblate (Japanese) Currently translated at 44.6% (700 of 1566 strings) Translation: Mobilizon/Frontend Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/ --- js/src/i18n/ja.json | 53 +++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/js/src/i18n/ja.json b/js/src/i18n/ja.json index fb61123cf..44a2ce744 100644 --- a/js/src/i18n/ja.json +++ b/js/src/i18n/ja.json @@ -3,7 +3,7 @@ "(Masked)": "", "(this folder)": "", "(this link)": "", - "+ Add a resource": "", + "+ Add a resource": "+ リンクを追加する", "+ Create a post": "+ 投稿を作成する", "+ Create an event": "+ イベントを作成する", "+ Start a discussion": "+ 議論を始める", @@ -25,7 +25,7 @@ "A place for your code of conduct, rules or guidelines. You can use HTML tags.": "", "A place to explain who you are and the things that set your instance apart. You can use HTML tags.": "", "A place to publish something to the whole world, your community or just your group members.": "", - "A place to store links to documents or resources of any type.": "", + "A place to store links to documents or resources of any type.": "インターネットにあるもののリンクを記録できるページです。", "A post has been published": "", "A post has been updated": "", "A practical tool": "実用的なツール", @@ -109,15 +109,15 @@ "Anyone wanting to be a member from your group will be able to from your group page.": "", "Application": "アプリケーション", "Approve member": "", - "Are you really sure you want to delete your whole account? You'll lose everything. Identities, settings, events created, messages and participations will be gone forever.": "", + "Are you really sure you want to delete your whole account? You'll lose everything. Identities, settings, events created, messages and participations will be gone forever.": "本当にアカウントのすべてを削除しますか?すべてのデータが削除されます。設定、アイデンティティー、作成したイベント、投稿、参加記録のすべてを削除したら取り戻すことができません。", "Are you sure you want to completely delete this group? All members - including remote ones - will be notified and removed from the group, and all of the group data (events, posts, discussions, todos…) will be irretrievably destroyed.": "", "Are you sure you want to delete this comment? This action cannot be undone.": "本当にこのコメントを削除しますか?取り戻すことはできません。", - "Are you sure you want to delete this event? This action cannot be undone. You may want to engage the discussion with the event creator or edit its event instead.": "", + "Are you sure you want to delete this event? This action cannot be undone. You may want to engage the discussion with the event creator or edit its event instead.": "本当にこのイベントを削除しますか?取り戻すことができません。イベントの主催者と確認するか、イベントを編集することもあります。", "Are you sure you want to suspend this group? All members - including remote ones - will be notified and removed from the group, and all of the group data (events, posts, discussions, todos…) will be irretrievably destroyed.": "", "Are you sure you want to suspend this group? As this group originates from instance {instance}, this will only remove local members and delete the local data, as well as rejecting all the future data.": "", - "Are you sure you want to cancel the event creation? You'll lose all modifications.": "", - "Are you sure you want to cancel the event edition? You'll lose all modifications.": "", - "Are you sure you want to cancel your participation at event \"{title}\"?": "", + "Are you sure you want to cancel the event creation? You'll lose all modifications.": "イベント作成をやめますか?入力した情報がなくなります。", + "Are you sure you want to cancel the event edition? You'll lose all modifications.": "イベントの編集をやめますか?今までの変更した情報がなくなります。", + "Are you sure you want to cancel your participation at event \"{title}\"?": "イベントの「{title}」の参加を取り消しますか?", "Are you sure you want to delete this entire discussion?": "本当に全ての議論を削除しますか?", "Are you sure you want to delete this event? This action cannot be reverted.": "本当にこのイベントを削除しますか?取り戻すことはできません。", "Are you sure you want to delete this post? This action cannot be reverted.": "本当にこの投稿を削除しますか?このアクションは取り消しできません。", @@ -134,7 +134,7 @@ "Back to top": "ページトップに戻る", "Back to user list": "ユーザーリストに戻る", "Banner": "バナー", - "Before you can login, you need to click on the link inside it to validate your account.": "", + "Before you can login, you need to click on the link inside it to validate your account.": "ログインができるため、検証メールに書かれているリンクをクリックしてアカウントを検証する必要があります。", "Begins on": "", "Big Blue Button": "", "Bold": "太字", @@ -147,7 +147,7 @@ "By {username}": "{username}より", "Can be an email or a link, or just plain text.": "", "Cancel": "キャンセル", - "Cancel anonymous participation": "", + "Cancel anonymous participation": "匿名参加をキャンセル", "Cancel creation": "作成をキャンセル", "Cancel discussion title edition": "議論タイトルの編集を止める", "Cancel edition": "編集を取り消す", @@ -179,7 +179,7 @@ "Click for more information": "クリックして詳しい情報を知る", "Click to upload": "クリックしてアップロードする", "Close": "閉じる", - "Close comments for all (except for admins)": "", + "Close comments for all (except for admins)": "管理者以外のアカウントはコメントが不可にする", "Closed": "閉じる", "Comment body": "", "Comment deleted": "コメントが削除されました。", @@ -187,11 +187,11 @@ "Comments": "コメント", "Comments are closed for everybody else.": "", "Confirm my participation": "", - "Confirm my particpation": "", + "Confirm my particpation": "参加希望を確認する", "Confirm participation": "", "Confirmed": "確認されました", "Confirmed at": "に確認されました", - "Confirmed: Will happen": "", + "Confirmed: Will happen": "確認済み:行う予定", "Congratulations, your account is now created!": "おめでとうございます!あなたのアカウントが作成されました!", "Contact": "お問い合わせ", "Continue editing": "編集を続ける", @@ -265,12 +265,12 @@ "Demote": "", "Description": "説明", "Details": "詳細", - "Didn't receive the instructions?": "", + "Didn't receive the instructions?": "説明のメールが届いていないのですか?", "Disabled": "無効", "Discussions": "議論", "Discussions list": "議論リスと", "Display name": "表示名", - "Display participation price": "", + "Display participation price": "参加料金を表示する", "Displayed nickname": "", "Displayed on homepage and meta tags. Describe what Mobilizon is and what makes this instance special in a single paragraph.": "", "Do not receive any mail": "", @@ -425,6 +425,7 @@ "I don't have a Mobilizon account": "私はMobizilionアカウントを持っていません", "I have a Mobilizon account": "私はMobizilionアカウントを持っています", "I have an account on another Mobilizon instance.": "私は別のMobizilionインスタンスにアカウントを持っています。", + "I have an account on {instance}.": "{instance}のアカウントを持っています。", "I participate": "", "I want to allow people to participate without an account.": "", "I want to approve every participation request": "", @@ -440,7 +441,7 @@ "If allowed by organizer": "", "If an account with this email exists, we just sent another confirmation email to {email}": "", "If this identity is the only administrator of some groups, you need to delete them before being able to delete this identity.": "", - "If you are being asked for your federated indentity, it's composed of your username and your instance. For instance, the federated identity for your first profile is:": "", + "If you are being asked for your federated indentity, it's composed of your username and your instance. For instance, the federated identity for your first profile is:": "連合のアイデンティティー、また連合のアカウントの場合はあなたのユーバー名とインスタンスのドメインです。例えば、一番最初に作成したプロフィールの連合のアイデンティティーは:", "If you have opted for manual validation of participants, Mobilizon will send you an email to inform you of new participations to be processed. You can choose the frequency of these notifications below.": "", "If you want, you may send a message to the event organizer here.": "", "Ignore": "無視する", @@ -479,7 +480,7 @@ "Italic": "イタリック", "Jitsi Meet": "", "Join": "参加する", - "Join {instance}, a Mobilizon instance": "", + "Join {instance}, a Mobilizon instance": "Mobilizonで運している{instance}に参加しましょう", "Join group": "グループに参加する", "Join group {group}": "グループ{group}に参加する", "Keep the entire conversation about a specific topic together on a single page.": "", @@ -551,6 +552,7 @@ "Move resource to {folder}": "", "My account": "自分のアカウント", "My events": "自分のイベント", + "My federated identity ends in {domain}": "連合のアカウントの最後の部分は{domain}", "My groups": "自分のグループ", "My identities": "自分のアイデンティティー", "NOTE! The default terms have not been checked over by a lawyer and thus are unlikely to provide full legal protection for all situations for an instance admin using them. They are also not specific to all countries and jurisdictions. If you are unsure, please check with a lawyer.": "", @@ -637,6 +639,7 @@ "On {instance} and other federated instances": "", "Online": "オンライン", "Online ticketing": "", + "Online upcoming events": "これからオンラインで行っているうイベント", "Only accessible through link": "", "Only accessible through link (private)": "", "Only accessible to members of the group": "", @@ -696,7 +699,7 @@ "Please do not use it in any real way.": "本格的に利用することはご遠慮ください。", "Please enter your password to confirm this action.": "このアクションの確認のため、パスワードを入力してください。", "Please make sure the address is correct and that the page hasn't been moved.": "リンクが正しいか、またはページが移動されていないかを確かめてください。", - "Please read the {fullRules} published by {instance}'s administrators.": "{instance}の管理者によって作成された{fullRules}をお読み下さい。", + "Please read the {fullRules} published by {instance}'s administrators.": "{instance}の管理者によって作成された {fullRules} をお読み下さい。", "Post": "投稿", "Post URL": "投稿URL", "Post a comment": "コメントを投稿する", @@ -706,7 +709,7 @@ "Postal Code": "郵便番号", "Posts": "投稿", "Powered by Mobilizon": "", - "Powered by {mobilizon}. © 2018 - {date} The Mobilizon Contributors - Made with the financial support of {contributors}.": "", + "Powered by {mobilizon}. © 2018 - {date} The Mobilizon Contributors - Made with the financial support of {contributors}.": "{mobilizon}でサーバーが運用しています。© 2018 - {date} The Mobilizon Contributors - {contributors}の支援で作られています。", "Preferences": "設定", "Previous": "前", "Previous month": "先月", @@ -755,12 +758,12 @@ "Registration is closed.": "アカウントの新規登録が停止されています。", "Registration is currently closed.": "アカウントの新規登録が停止中です。", "Registrations": "", - "Registrations are restricted by allowlisting.": "", + "Registrations are restricted by allowlisting.": "新規登録は管理者と事前連絡済みの方のみができます。", "Reject": "拒否する", "Reject member": "", "Rejected": "拒否されました", "Remember my participation in this browser": "", - "Remove": "削除", + "Remove": "削除/除外", "Remove link": "リンクを削除する", "Rename": "", "Rename resource": "", @@ -790,7 +793,7 @@ "Reset password": "パスワードのリセット", "Resolved": "", "Resource provided is not an URL": "", - "Resources": "", + "Resources": "リンクの一覧表", "Restricted": "", "Return to the group page": "グループページに戻る", "Right now": "", @@ -964,8 +967,8 @@ "To create and manage multiples identities from a same account": "一つのアカウントで複数のプロフィールを作成と管理できる", "To create and manage your events": "グループとイベントの作成と管理しやすい", "To create or join an group and start organizing with other people": "新規グループ作成やあるグループに加入すると他人と計画を立つ", - "To follow groups and be informed of their latest events": "", - "To register for an event by choosing one of your identities": "", + "To follow groups and be informed of their latest events": "グループをフォローしてグループのイベントの通知もできる", + "To register for an event by choosing one of your identities": "作成したアイデンティティーでイベント参加できる", "Today": "今日", "Tomorrow": "明日", "Tools": "ツール", @@ -1020,6 +1023,7 @@ "View a reply": "", "View account on {hostname} (in a new window)": "{hostname}でアカウントを見る (新しいウィンドウで開く)", "View all": "全て見る", + "View all categories": "すべてのカテゴリーを表示する", "View all events": "全てのイベントを見る", "View all posts": "全ての投稿を見る", "View event page": "イベントページを表示", @@ -1027,6 +1031,7 @@ "View full profile": "", "View less": "", "View more": "", + "View more online events": "オンラインのイベントをもっと見る", "View page on {hostname} (in a new window)": "", "View past events": "過去のイベントを見る", "Visibility was set to an unknown value.": "公開範囲の設定に不明な値が設定されています。", @@ -1158,7 +1163,7 @@ "Your email has been changed": "あなたのEメールは変更されました", "Your email is being changed": "", "Your email will only be used to confirm that you're a real person and send you eventual updates for this event. It will NOT be transmitted to other instances or to the event organizer.": "", - "Your federated identity": "", + "Your federated identity": "あなたの連合のアイデンティティーです", "Your membership was approved by {profile}.": "", "Your participation has been confirmed": "", "Your participation has been rejected": "", From ed93978784db8cb16eca5acf34c9a752740f77bc Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Fri, 26 May 2023 11:40:18 +0000 Subject: [PATCH 03/30] Translated using Weblate (Croatian) Currently translated at 80.7% (285 of 353 strings) Translation: Mobilizon/Backend Translate-URL: https://weblate.framasoft.org/projects/mobilizon/backend/hr/ --- priv/gettext/hr/LC_MESSAGES/default.po | 53 ++++++++++++++++---------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/priv/gettext/hr/LC_MESSAGES/default.po b/priv/gettext/hr/LC_MESSAGES/default.po index ed570c58c..4a07d194a 100644 --- a/priv/gettext/hr/LC_MESSAGES/default.po +++ b/priv/gettext/hr/LC_MESSAGES/default.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-11-25 07:56+0000\n" -"PO-Revision-Date: 2023-04-11 18:20+0000\n" +"PO-Revision-Date: 2023-05-27 13:05+0000\n" "Last-Translator: Milo Ivir \n" "Language-Team: Croatian \n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.16.4\n" +"X-Generator: Weblate 4.17\n" #: lib/web/templates/email/password_reset.html.heex:66 #, elixir-autogen, elixir-format @@ -644,7 +644,7 @@ msgstr "" #, elixir-autogen, elixir-format msgctxt "terms" msgid "Questions or comments about the Service may be directed to us at %{contact}" -msgstr "" +msgstr "Pitanja ili komentare o usluzi možeš uputiti na %{contact}" #: lib/web/templates/api/terms.html.heex:245 #, elixir-autogen, elixir-format @@ -944,7 +944,7 @@ msgstr "Upravljaj zahtjevima na čekanju" #: lib/web/templates/email/registration_confirmation.text.eex:1 #, elixir-autogen, elixir-format msgid "Nearly there!" -msgstr "" +msgstr "Skoro gotovo!" #: lib/web/templates/email/email_changed_old.html.heex:18 #: lib/web/templates/email/email_changed_old.text.eex:1 @@ -1145,7 +1145,7 @@ msgstr "" #: lib/web/email/group.ex:107 #, elixir-autogen, elixir-format msgid "The group %{group} has been suspended on %{instance}" -msgstr "" +msgstr "Grupa %{group} je suspendirana na instanci %{instance}" #: lib/web/templates/api/terms.html.heex:64 #, elixir-autogen, elixir-format @@ -1286,27 +1286,27 @@ msgstr "Tvoje sudjelovanje događaju %{title} je potvrđeno" #: lib/web/templates/email/report.html.heex:54 #, elixir-autogen, elixir-format msgid "%{reporter} reported the following content." -msgstr "" +msgstr "%{reporter} je prijavio/la sljedeći sadržaj." #: lib/web/templates/email/report.text.eex:5 #, elixir-autogen, elixir-format msgid "Group %{group} was reported" -msgstr "" +msgstr "Grupa %{group} je prijavljena" #: lib/web/templates/email/report.html.heex:71 #, elixir-autogen, elixir-format msgid "Group reported" -msgstr "" +msgstr "Prijavljena grupa" #: lib/web/templates/email/report.text.eex:7 #, elixir-autogen, elixir-format msgid "Profile %{profile} was reported" -msgstr "" +msgstr "Profil %{profile} je prijavljen" #: lib/web/templates/email/report.html.heex:81 #, elixir-autogen, elixir-format msgid "Profile reported" -msgstr "" +msgstr "Prijavljen profil" #: lib/web/templates/email/event_participation_confirmed.html.heex:61 #, elixir-autogen, elixir-format @@ -1318,12 +1318,12 @@ msgstr "" #: lib/mobilizon/posts/post.ex:99 #, elixir-autogen, elixir-format msgid "A text is required for the post" -msgstr "" +msgstr "Za objavu je potreban tekst" #: lib/mobilizon/posts/post.ex:98 #, elixir-autogen, elixir-format msgid "A title is required for the post" -msgstr "" +msgstr "Za objavu je potreban naslov" #: lib/web/email/follow.ex:61 #, elixir-autogen, elixir-format @@ -1385,7 +1385,7 @@ msgstr "Ova stranica nije ispravna" #: lib/web/templates/error/500_page.html.heex:50 #, elixir-autogen, elixir-format msgid "We're sorry, but something went wrong on our end." -msgstr "" +msgstr "Žao nam je, ali se kod nas dogodila greška." #: lib/web/templates/email/email.html.heex:109 #: lib/web/templates/email/email.text.eex:4 @@ -1420,11 +1420,15 @@ msgstr "Feed za %{email} na %{instance}" #, elixir-autogen, elixir-format msgid "If the issue persists, you may contact the server administrator at %{contact}." msgstr "" +"Ako se problem nastavi pojavljivati, možeš se obratiti administratoru " +"poslužitelja na %{contact}." #: lib/web/templates/error/500_page.html.heex:59 #, elixir-autogen, elixir-format msgid "If the issue persists, you may try to contact the server administrator." msgstr "" +"Ako se problem nastavi pojavljivati, možeš se pokušati obratiti " +"administratoru poslužitelja." #: lib/web/templates/error/500_page.html.heex:82 #, elixir-autogen, elixir-format @@ -1434,12 +1438,12 @@ msgstr "Tehnički detalji" #: lib/web/templates/error/500_page.html.heex:52 #, elixir-autogen, elixir-format msgid "The Mobilizon server %{instance} seems to be temporarily down." -msgstr "" +msgstr "Čini se da Mobilizon poslužitej %{instance} privremeno nije dostupan." #: lib/service/export/feed.ex:72 #, elixir-autogen, elixir-format msgid "Public feed for %{instance}" -msgstr "" +msgstr "Javni feed za %{instance}" #: lib/graphql/resolvers/user.ex:350 #, elixir-autogen, elixir-format @@ -1469,6 +1473,8 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Your instance's moderation team has decided to suspend %{group_name} (%{group_address}). You are no longer a member of this group." msgstr "" +"Tim za moderiranje tvoje instance je odlučio suspendirati grupu " +"%{group_name} (%{group_address}). Više nisi član ove grupe." #: lib/web/templates/email/actor_suspension_participants.html.heex:18 #: lib/web/templates/email/actor_suspension_participants.text.eex:1 @@ -1734,6 +1740,8 @@ msgstr "Tvoj zahtjev za članstvo u grupi %{group} je odbijen." #, elixir-autogen, elixir-format msgid "Your membership request for group %{link_start}%{group}%{link_end} has been rejected." msgstr "" +"Tvoj zahtjev za članstvo u grupi %{link_start}%{group}%{link_end} je " +"odbijen." #: lib/web/templates/email/group_membership_approval.text.eex:3 #, elixir-autogen, elixir-format @@ -1744,6 +1752,8 @@ msgstr "Tvoj zahtjev za članstvo u grupi %{group} je odobren." #, elixir-autogen, elixir-format msgid "Your membership request for group %{link_start}%{group}%{link_end} has been approved." msgstr "" +"Tvoj zahtjev za članstvo u grupi %{link_start}%{group}%{link_end} je " +"odobren." #: lib/web/templates/email/pending_participation_notification.html.heex:47 #: lib/web/templates/email/pending_participation_notification.text.eex:4 @@ -1758,12 +1768,12 @@ msgstr[2] "" #: lib/web/templates/email/admin_user_role_changed.text.eex:1 #, elixir-autogen, elixir-format msgid "An administrator changed your role" -msgstr "" +msgstr "Jedan administrator je promijenio tvoju ulogu" #: lib/web/email/admin.ex:122 #, elixir-autogen, elixir-format msgid "An administrator confirmed your account on %{instance}" -msgstr "" +msgstr "Jedan administrator je potvrdio tvoj račun na instanci %{instance}" #: lib/web/templates/email/admin_user_email_changed_new.html.heex:18 #: lib/web/templates/email/admin_user_email_changed_new.text.eex:1 @@ -1772,23 +1782,26 @@ msgstr "" #, elixir-autogen, elixir-format msgid "An administrator manually changed the email attached to your account" msgstr "" +"Jedan administrator je ručno promijenio priloženu e-mail adresu za tvoj račun" #: lib/web/email/admin.ex:43 #: lib/web/email/admin.ex:70 #, elixir-autogen, elixir-format msgid "An administrator manually changed the email attached to your account on %{instance}" msgstr "" +"Jedan administrator je ručno promijenio priloženu e-mail adresu za tvoj " +"račun na instanci %{instance}" #: lib/web/templates/email/admin_user_confirmation.html.heex:18 #: lib/web/templates/email/admin_user_confirmation.text.eex:1 #, elixir-autogen, elixir-format msgid "An administrator manually confirmed your account" -msgstr "" +msgstr "Jedan administrator je ručno potvrdio tvoj račun" #: lib/web/email/admin.ex:98 #, elixir-autogen, elixir-format msgid "An administrator updated your role on %{instance}" -msgstr "" +msgstr "Jedan administrator je aktualizirao tvoju ulogu na instanci %{instance}" #: lib/web/templates/email/email_changed_new.text.eex:3 #, elixir-autogen, elixir-format @@ -2105,4 +2118,4 @@ msgstr "" #: lib/web/templates/email/group_member_removal.text.eex:1 #, elixir-autogen, elixir-format msgid "Until next time!" -msgstr "" +msgstr "Vidimo se!" From eecae5fe9d58ea0047ea17de71b113b5dc66e81b Mon Sep 17 00:00:00 2001 From: Dannek Rose Date: Sat, 27 May 2023 19:53:06 +0000 Subject: [PATCH 04/30] Translated using Weblate (Japanese) Currently translated at 44.7% (701 of 1566 strings) Translation: Mobilizon/Frontend Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/ --- js/src/i18n/ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/src/i18n/ja.json b/js/src/i18n/ja.json index 44a2ce744..7afc83fec 100644 --- a/js/src/i18n/ja.json +++ b/js/src/i18n/ja.json @@ -24,7 +24,7 @@ "A new version is available.": "Mobilizionの新しいバージョンが利用可能です。", "A place for your code of conduct, rules or guidelines. You can use HTML tags.": "", "A place to explain who you are and the things that set your instance apart. You can use HTML tags.": "", - "A place to publish something to the whole world, your community or just your group members.": "", + "A place to publish something to the whole world, your community or just your group members.": "グループ内限定、サーバー内限定、またはインターネット全体に投稿できるスペースです。", "A place to store links to documents or resources of any type.": "インターネットにあるもののリンクを記録できるページです。", "A post has been published": "", "A post has been updated": "", From a01e895d79049c78f88047c4676244dc06bc2ffd Mon Sep 17 00:00:00 2001 From: Dannek Rose Date: Sun, 28 May 2023 17:37:55 +0000 Subject: [PATCH 05/30] Translated using Weblate (Japanese) Currently translated at 46.2% (724 of 1566 strings) Translation: Mobilizon/Frontend Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/ --- js/src/i18n/ja.json | 50 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/js/src/i18n/ja.json b/js/src/i18n/ja.json index 7afc83fec..2e53ab859 100644 --- a/js/src/i18n/ja.json +++ b/js/src/i18n/ja.json @@ -82,7 +82,7 @@ "All activities": "全てのアクティビティ", "All good, let's continue!": "", "All the places have already been taken": "すでに満員になりました", - "Allow all comments from users with accounts": "", + "Allow all comments from users with accounts": "ログインしているユーザーはコメントができる", "Allow registrations": "アカウント新規登録", "An URL to an external ticketing platform": "", "An error has occured while refreshing the page.": "ページを更新中にエラーが発生しました。", @@ -121,7 +121,7 @@ "Are you sure you want to delete this entire discussion?": "本当に全ての議論を削除しますか?", "Are you sure you want to delete this event? This action cannot be reverted.": "本当にこのイベントを削除しますか?取り戻すことはできません。", "Are you sure you want to delete this post? This action cannot be reverted.": "本当にこの投稿を削除しますか?このアクションは取り消しできません。", - "Are you sure you want to leave the group {groupName}? You'll loose access to this group's private content. This action cannot be undone.": "", + "Are you sure you want to leave the group {groupName}? You'll loose access to this group's private content. This action cannot be undone.": "本当に {groupName} から抜けますか?このグループのプライベート情報を見られなくなります。抜けたら取り戻すことができません。", "As the event organizer has chosen to manually validate participation requests, your participation will be really confirmed only once you receive an email stating it's being accepted.": "", "Ask your instance admin to {enable_feature}.": "{enable_feature}についてはインスタンス管理者にお問い合わせ下さい。", "Assigned to": "", @@ -156,7 +156,7 @@ "Cancel my participation request…": "", "Cancel my participation…": "", "Cancelled": "キャンセルされました", - "Cancelled: Won't happen": "", + "Cancelled: Won't happen": "イベント中止:キャンセル", "Category": "カテゴリー", "Change": "変更", "Change email": "メールアドレスを変更する", @@ -185,7 +185,7 @@ "Comment deleted": "コメントが削除されました。", "Comment text can't be empty": "コメントのテキストは空白にはできません", "Comments": "コメント", - "Comments are closed for everybody else.": "", + "Comments are closed for everybody else.": "他の方はコメント不可です。", "Confirm my participation": "", "Confirm my particpation": "参加希望を確認する", "Confirm participation": "", @@ -282,7 +282,7 @@ "Draft": "下書き", "Drafts": "下書き", "Due on": "", - "Duplicate": "", + "Duplicate": "イベントを複製する", "Edit": "編集", "Edit post": "投稿を編集する", "Edit profile {profile}": "", @@ -427,8 +427,8 @@ "I have an account on another Mobilizon instance.": "私は別のMobizilionインスタンスにアカウントを持っています。", "I have an account on {instance}.": "{instance}のアカウントを持っています。", "I participate": "", - "I want to allow people to participate without an account.": "", - "I want to approve every participation request": "", + "I want to allow people to participate without an account.": "アカウントなしで参加可能に設定する。", + "I want to approve every participation request": "すべての参加希望依頼を手動で許可する", "I've been mentionned in a comment under an event": "", "I've been mentionned in a group discussion": "", "ICS feed for events": "イベントへのICSフィード", @@ -496,14 +496,14 @@ "Learn more": "", "Learn more about Mobilizon": "Mobilizonについて詳しく知る", "Learn more about {instance}": "{instance}について詳しく知る", - "Leave": "グループを去る", + "Leave": "抜ける", "Leave event": "イベント参加を取り消す", - "Leave group": "グループから去る", + "Leave group": "グループから抜ける", "Leaving event \"{title}\"": "「{title}」というイベント参加を取り消しています", "Legal": "", "Let's define a few settings": "", "License": "ライセンス", - "Limited number of places": "", + "Limited number of places": "参加可能の人数制限あり", "List title": "", "Live": "", "Load more": "もっと見る", @@ -596,7 +596,7 @@ "No message": "メッセージはありません", "No moderation logs yet": "モデレーションログはまだありません", "No more activity to display.": "", - "No one is participating|One person participating|{going} people participating": "", + "No one is participating|One person participating|{going} people participating": "参加者0人|参加者1人|参加者 {going} 人", "No open reports yet": "", "No organized events found": "主催しているイベントは見つかりませんでした", "No organized events listed": "", @@ -632,16 +632,16 @@ "Number of places": "行う場所の数", "OK": "OK", "Old password": "古いパスワード", - "On {date}": "", - "On {date} ending at {endTime}": "", - "On {date} from {startTime} to {endTime}": "", - "On {date} starting at {startTime}": "", + "On {date}": "{date} に行う", + "On {date} ending at {endTime}": "{date} の {endTime} 時に終了", + "On {date} from {startTime} to {endTime}": "{date} の {startTime} 時から {endTime} 時まで", + "On {date} starting at {startTime}": "{date} の {startTime} 時から", "On {instance} and other federated instances": "", "Online": "オンライン", "Online ticketing": "", "Online upcoming events": "これからオンラインで行っているうイベント", "Only accessible through link": "", - "Only accessible through link (private)": "", + "Only accessible through link (private)": "直接リンクのみで表示可能(非公開イベント)", "Only accessible to members of the group": "", "Only alphanumeric lowercased characters and underscores are supported.": "", "Only group members can access discussions": "グループメンバーのみ議論に参加することができます", @@ -674,7 +674,7 @@ "Participants": "参加者", "Participate": "参加する", "Participate using your email address": "あなたのメールアドレスを使って参加する", - "Participation approval": "", + "Participation approval": "参加希望依頼の許可設定", "Participation confirmation": "参加確認", "Participation notifications": "", "Participation requested!": "参加のリクエストをしました!", @@ -856,7 +856,7 @@ "Tag search": "タグ検索", "Task lists": "タスクリスト", "Technical details": "技術的詳細", - "Tentative": "", + "Tentative": "未定", "Tentative: Will be confirmed later": "仮参加:確認待ち", "Terms": "利用規約", "Terms of service": "利用規約", @@ -910,7 +910,7 @@ "The member was removed from the group {group}": "グループ{group}からメンバーが除外されました", "The membership request from {profile} was rejected": "", "The only way for your group to get new members is if an admininistrator invites them.": "", - "The organiser has chosen to close comments.": "", + "The organiser has chosen to close comments.": "イベントの主催者がコメント不可に設定しています。", "The page you're looking for doesn't exist.": "探しているページを見つかりません。", "The password was successfully changed": "", "The post {post} was created by {profile}.": "投稿{post}は{profile}によって作成されました。", @@ -921,14 +921,14 @@ "The technical details of the error can help developers solve the problem more easily. Please add them to your feedback.": "", "The {default_privacy_policy} will be used. They will be translated in the user's language.": "", "The {default_terms} will be used. They will be translated in the user's language.": "", - "There are {participants} participants.": "", + "There are {participants} participants.": "{participants} 人の参加者がいます。", "There is no activity yet. Start doing some things to see activity appear here.": "", "There will be no way to recover your data.": "", "There's no discussions yet": "まだ議論はありません", "These events may interest you": "お勧めのイベント", "These feeds contain event data for the events for which any of your profiles is a participant or creator. You should keep these private. You can find feeds for specific profiles on each profile edition page.": "", "These feeds contain event data for the events for which this specific profile is a participant or creator. You should keep these private. You can find feeds for all of your profiles into your notification settings.": "", - "This Mobilizon instance and this event organizer allows anonymous participations, but requires validation through email confirmation.": "", + "This Mobilizon instance and this event organizer allows anonymous participations, but requires validation through email confirmation.": "このサーバーとこのイベントの主催者が匿名参加可に設定していますが、検証メールで確認する必要があります。", "This URL doesn't seem to be valid": "", "This URL is not supported": "このURLはサポートされていません", "This event has been cancelled.": "このイベントはキャンセルされました。", @@ -997,7 +997,7 @@ "Unknown error.": "不明なエラーが発生しました。", "Unknown value for the openness setting.": "", "Unlogged participation": "", - "Unsaved changes": "", + "Unsaved changes": "まだ保存されていない編集があります", "Unsubscribe to browser push notifications": "", "Unsuspend": "", "Upcoming": "", @@ -1037,8 +1037,8 @@ "Visibility was set to an unknown value.": "公開範囲の設定に不明な値が設定されています。", "Visibility was set to private.": "", "Visibility was set to public.": "公開範囲がパブリックに設定されました。", - "Visible everywhere on the web": "", - "Visible everywhere on the web (public)": "", + "Visible everywhere on the web": "全インターネットから検索で見つけられることができる", + "Visible everywhere on the web (public)": "全インターネットから検索で見つけられることができる( 公開)", "Waiting for organization team approval.": "", "Warning": "警告", "We couldn't save your participation inside this browser. Not to worry, you have successfully confirmed your participation, we just couldn't save it's status in this browser because of a technical issue.": "", @@ -1221,7 +1221,7 @@ "{count} km": "", "{count} members": "", "{count} members or followers": "", - "{count} participants": "", + "{count} participants": "まだ参加者いない | 参加者1人 | 参加者 {count} 人", "{count} requests waiting": "", "{folder} - Resources": "", "{group} activity timeline": "", From 6de84a115f474d00c31ad73340184eada6a6d097 Mon Sep 17 00:00:00 2001 From: Dannek Rose Date: Mon, 29 May 2023 00:16:42 +0000 Subject: [PATCH 06/30] Translated using Weblate (Japanese) Currently translated at 46.5% (729 of 1566 strings) Translation: Mobilizon/Frontend Translate-URL: https://weblate.framasoft.org/projects/mobilizon/frontend/ja/ --- js/src/i18n/ja.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/js/src/i18n/ja.json b/js/src/i18n/ja.json index 2e53ab859..6bf2a9521 100644 --- a/js/src/i18n/ja.json +++ b/js/src/i18n/ja.json @@ -180,7 +180,7 @@ "Click to upload": "クリックしてアップロードする", "Close": "閉じる", "Close comments for all (except for admins)": "管理者以外のアカウントはコメントが不可にする", - "Closed": "閉じる", + "Closed": "停止", "Comment body": "", "Comment deleted": "コメントが削除されました。", "Comment text can't be empty": "コメントのテキストは空白にはできません", @@ -438,7 +438,7 @@ "Identity {displayName} created": "{displayName}のアイデンティティが作成されました", "Identity {displayName} deleted": "{displayName}のアイデンティティが削除されました", "Identity {displayName} updated": "{displayName}のアイデンティティが更新されました", - "If allowed by organizer": "", + "If allowed by organizer": "イベントの主催者が決める", "If an account with this email exists, we just sent another confirmation email to {email}": "", "If this identity is the only administrator of some groups, you need to delete them before being able to delete this identity.": "", "If you are being asked for your federated indentity, it's composed of your username and your instance. For instance, the federated identity for your first profile is:": "連合のアイデンティティー、また連合のアカウントの場合はあなたのユーバー名とインスタンスのドメインです。例えば、一番最初に作成したプロフィールの連合のアイデンティティーは:", @@ -629,7 +629,7 @@ "Notifications for manually approved participations to an event": "", "Notify participants": "", "Now, create your first profile:": "", - "Number of places": "行う場所の数", + "Number of places": "参加可能の人の数", "OK": "OK", "Old password": "古いパスワード", "On {date}": "{date} に行う", @@ -648,7 +648,7 @@ "Only group moderators can create, edit and delete events.": "グループのモデレーターのみがイベントを作成、編集、削除できます。", "Only group moderators can create, edit and delete posts.": "", "Only registered users may fetch remote events from their URL.": "", - "Open": "", + "Open": "可能", "Open a topic on our forum": "フォーラムでトピックを作成する", "Open an issue on our bug tracker (advanced users)": "(上級ユーザー向け)バグトラッカー上でissueを開く", "Opened reports": "", @@ -757,7 +757,7 @@ "Registration is allowed, anyone can register.": "制限なくアカウントの新規登録可能です。", "Registration is closed.": "アカウントの新規登録が停止されています。", "Registration is currently closed.": "アカウントの新規登録が停止中です。", - "Registrations": "", + "Registrations": "アカウントの新規登録", "Registrations are restricted by allowlisting.": "新規登録は管理者と事前連絡済みの方のみができます。", "Reject": "拒否する", "Reject member": "", @@ -956,8 +956,8 @@ "This week": "今週", "This weekend": "今週末", "This will delete / anonymize all content (events, comments, messages, participations…) created from this identity.": "", - "Time in your timezone ({timezone})": "", - "Times in your timezone ({timezone})": "", + "Time in your timezone ({timezone})": "あなたのタイムゾーン ({timezone})", + "Times in your timezone ({timezone})": "あなたのタイムゾーン ({timezone})", "Timezone": "タイムゾーン", "Timezone detected as {timezone}.": "", "Title": "タイトル", From 850b4e2a735e335c4737caa8b60e190613e778ef Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Fri, 26 May 2023 15:55:17 +0200 Subject: [PATCH 07/30] fix(rich media): fix error handling when resource preview URL leads to empty parsed data Closes #1279 Signed-off-by: Thomas Citharel --- lib/graphql/resolvers/resource.ex | 9 ++-- lib/service/rich_media/parser.ex | 42 ++++++++++--------- .../rich_media/parsers/oembed_parser.ex | 4 +- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/lib/graphql/resolvers/resource.ex b/lib/graphql/resolvers/resource.ex index 5df019448..d86fff8cf 100644 --- a/lib/graphql/resolvers/resource.ex +++ b/lib/graphql/resolvers/resource.ex @@ -80,6 +80,8 @@ defmodule Mobilizon.GraphQL.Resolvers.Resource do } } = _resolution ) do + Logger.debug("Getting resource for group with username #{username}") + with {:group, %Actor{id: group_id}} <- {:group, Actors.get_actor_by_name(username, :Group)}, {:member, true} <- {:member, Actors.is_member?(actor_id, group_id)}, {:resource, %Resource{} = resource} <- @@ -222,13 +224,8 @@ defmodule Mobilizon.GraphQL.Resolvers.Resource do {:ok, data} when is_map(data) -> {:ok, struct(Metadata, data)} - {:error, :invalid_parsed_data} -> + {:error, _error_type, _} -> {:error, dgettext("errors", "Unable to fetch resource details from this URL.")} - - {:error, err} -> - Logger.warn("Error while fetching preview from #{inspect(resource_url)}") - Logger.debug(inspect(err)) - {:error, :unknown_resource} end end diff --git a/lib/service/rich_media/parser.ex b/lib/service/rich_media/parser.ex index 1873ca832..2821f823d 100644 --- a/lib/service/rich_media/parser.ex +++ b/lib/service/rich_media/parser.ex @@ -29,19 +29,19 @@ defmodule Mobilizon.Service.RichMedia.Parser do def parse(nil), do: {:error, "No URL provided"} - @spec parse(String.t()) :: {:ok, map()} | {:error, any()} + @spec parse(String.t()) :: {:ok, map()} | {:error, :http | :parsing | :unknown, any()} def parse(url) do case Cachex.fetch(:rich_media_cache, url, fn _ -> case parse_url(url) do {:ok, data} -> {:commit, data} - {:error, err} -> {:ignore, err} + {:error, error_type, error} -> {:ignore, {error_type, error}} end end) do {status, value} when status in [:ok, :commit] -> {:ok, value} - {_, err} -> - {:error, err} + {_, {error_type, err}} -> + {:error, error_type, err} end rescue e -> @@ -56,7 +56,8 @@ defmodule Mobilizon.Service.RichMedia.Parser do get_filename_from_headers(response_headers) || get_filename_from_url(url) end - @spec parse_url(String.t(), Enum.t()) :: {:ok, map()} | {:error, any()} + @spec parse_url(String.t(), Enum.t()) :: + {:ok, map()} | {:error, :http | :parsing | :unknown, any()} defp parse_url(url, options \\ []) do user_agent = Keyword.get(options, :user_agent, default_user_agent(url)) headers = [{"User-Agent", user_agent}] @@ -64,13 +65,14 @@ defmodule Mobilizon.Service.RichMedia.Parser do try do with {:ok, _} <- prevent_local_address(url), - {:ok, %{body: body, status: code, headers: response_headers}} + {:fetch, {:ok, %{body: body, status: code, headers: response_headers}}} when code in 200..299 <- - RichMediaPreviewClient.get( - url, - headers: headers, - opts: @options - ), + {:fetch, + RichMediaPreviewClient.get( + url, + headers: headers, + opts: @options + )}, {:is_html, _response_headers, true} <- {:is_html, response_headers, is_html(response_headers)} do body @@ -87,17 +89,17 @@ defmodule Mobilizon.Service.RichMedia.Parser do {:ok, data} - {:ok, err} -> + {:fetch, {_, err}} -> Logger.debug("HTTP error: #{inspect(err)}") - {:error, "HTTP error: #{inspect(err)}"} + {:error, :http, err} {:error, err} -> - Logger.debug("HTTP error: #{inspect(err)}") - {:error, "HTTP error: #{inspect(err)}"} + Logger.debug("Parsing error: #{inspect(err)}") + {:error, :parsing, err} end rescue e -> - {:error, "Parsing error: #{inspect(e)} #{inspect(__STACKTRACE__)}"} + {:error, :unknown, "Parsing error: #{inspect(e)} #{inspect(__STACKTRACE__)}"} end end @@ -228,7 +230,7 @@ defmodule Mobilizon.Service.RichMedia.Parser do check_parsed_data(data, html, false) else Logger.debug("Found metadata was invalid or incomplete: #{inspect(data)}") - {:error, :invalid_parsed_data} + {:error, :parsing, :invalid_parsed_data} end end @@ -252,11 +254,11 @@ defmodule Mobilizon.Service.RichMedia.Parser do validate_ip(host) do {:ok, url} else - {:error, "Host violates local access rules"} + {:error, :local_address, "Host violates local access rules"} end _ -> - {:error, "Could not detect any host"} + {:error, :no_host, "Could not detect any host"} end end @@ -302,6 +304,8 @@ defmodule Mobilizon.Service.RichMedia.Parser do {:ok, data} end + defp check_remote_picture_path({:error, _, _} = err), do: err + defp check_remote_picture_path(data), do: {:ok, data} @spec format_url(String.t(), String.t()) :: String.t() diff --git a/lib/service/rich_media/parsers/oembed_parser.ex b/lib/service/rich_media/parsers/oembed_parser.ex index bcddd2205..b76c39561 100644 --- a/lib/service/rich_media/parsers/oembed_parser.ex +++ b/lib/service/rich_media/parsers/oembed_parser.ex @@ -67,8 +67,8 @@ defmodule Mobilizon.Service.RichMedia.Parsers.OEmbed do {:ok, data} <- Jason.decode(json), data <- data - |> Map.new(fn {k, v} -> {String.to_existing_atom(k), String.trim(v)} end) - |> Map.take(@oembed_allowed_attributes) do + |> Map.new(fn {k, v} -> {k, if(is_binary(v), do: String.trim(v), else: v)} end) + |> Map.take(Enum.map(@oembed_allowed_attributes, &to_string/1)) do {:ok, data} end end From b0a564f64f72f40b6bb9560f9bc0fbea5d099fd7 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Fri, 26 May 2023 16:25:04 +0200 Subject: [PATCH 08/30] fix(group): rephrase "Public Page" to "Announcements", as all posts are not necessary public Closes #900 Signed-off-by: Thomas Citharel --- js/src/components/Group/Sections/PostsSection.vue | 2 +- js/src/i18n/en_US.json | 4 ++-- js/src/i18n/fr_FR.json | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/js/src/components/Group/Sections/PostsSection.vue b/js/src/components/Group/Sections/PostsSection.vue index e4753ffdf..3ee6812f8 100644 --- a/js/src/components/Group/Sections/PostsSection.vue +++ b/js/src/components/Group/Sections/PostsSection.vue @@ -1,6 +1,6 @@