diff --git a/web/public/static/langs/ja.json b/web/public/static/langs/ja.json
index 0967ef42..e8c3514b 100644
--- a/web/public/static/langs/ja.json
+++ b/web/public/static/langs/ja.json
@@ -1 +1,139 @@
-{}
+{
+ "message_bar_error_publishing": "通知送信エラー",
+ "nav_button_all_notifications": "全ての通知",
+ "nav_button_settings": "設定",
+ "notifications_click_open_button": "リンクを開く",
+ "action_bar_send_test_notification": "テスト通知を送信",
+ "action_bar_clear_notifications": "全ての通知を消去",
+ "action_bar_unsubscribe": "購読解除",
+ "nav_button_documentation": "ドキュメント",
+ "alert_not_supported_description": "通知機能はこのブラウザではサポートされていません。",
+ "notifications_copied_to_clipboard": "クリップボードにコピーしました",
+ "notifications_example": "例",
+ "publish_dialog_title_topic": "{{topic}}に送信",
+ "publish_dialog_title_no_topic": "通知を送信",
+ "publish_dialog_progress_uploading": "アップロード中…",
+ "publish_dialog_progress_uploading_detail": "アップロード中 {{loaded}}/{{total}} ({{percent}}%) …",
+ "publish_dialog_message_published": "通知を送信しました",
+ "publish_dialog_title_label": "タイトル",
+ "publish_dialog_filename_label": "ファイル名",
+ "subscribe_dialog_login_description": "このトピックはログインする必要があります。ユーザー名とパスワードを入力してください。",
+ "subscribe_dialog_login_username_label": "ユーザー名, 例) phil",
+ "subscribe_dialog_login_password_label": "パスワード",
+ "subscribe_dialog_login_button_back": "戻る",
+ "subscribe_dialog_login_button_login": "ログイン",
+ "prefs_notifications_min_priority_high_and_higher": "優先度高 およびそれ以上",
+ "prefs_notifications_min_priority_max_only": "優先度最高のみ",
+ "action_bar_settings": "設定",
+ "message_bar_type_message": "メッセージを入力してください",
+ "nav_topics_title": "購読しているトピック",
+ "nav_button_subscribe": "トピックを購読",
+ "alert_grant_description": "ブラウザのデスクトップ通知を許可してください。",
+ "alert_grant_button": "許可する",
+ "notifications_attachment_link_expires": "リンクは {{date}} に失効します",
+ "notifications_click_copy_url_button": "リンクをコピー",
+ "notifications_none_for_topic_description": "トピックに通知を送信するには、トピックのURLにPUTかPOSTしてください。",
+ "nav_button_publish_message": "通知を送信",
+ "alert_grant_title": "通知は無効化されています",
+ "alert_not_supported_title": "通知機能はサポートされていません",
+ "notifications_tags": "タグ",
+ "notifications_attachment_copy_url_button": "URLをコピー",
+ "notifications_attachment_open_title": "{{url}} に移動",
+ "notifications_attachment_link_expired": "ダウンロードリンクは失効しました",
+ "notifications_click_open_title": "{{url}} に移動",
+ "notifications_attachment_copy_url_title": "添付URLをクリップボードにコピー",
+ "notifications_attachment_open_button": "添付ファイルを開く",
+ "notifications_click_copy_url_title": "リンクURLをクリップボードにコピー",
+ "notifications_none_for_topic_title": "このトピックではまだ通知を受信していません。",
+ "notifications_no_subscriptions_description": "「購読を追加」リンクをクリックしてトピックを作成または購読してください。その後、メッセージをPUTまたはPOSTで送信すると通知が受信できます。",
+ "publish_dialog_message_label": "メッセージ",
+ "publish_dialog_email_label": "メール",
+ "notifications_none_for_any_title": "まだ通知を受信していません。",
+ "publish_dialog_priority_max": "優先度最高",
+ "publish_dialog_button_cancel_sending": "送信をキャンセル",
+ "publish_dialog_attach_label": "添付URL",
+ "notifications_none_for_any_description": "トピックに通知を送信するには、トピックURLにPUTまたはPOSTしてください。トピックのひとつを利用した例を示します。",
+ "notifications_no_subscriptions_title": "まだ何も購読していないようです。",
+ "publish_dialog_attachment_limits_file_and_quota_reached": "ファイル制限とクォータ {{fileSizeLimit}} を超えました、残り {{remainingBytes}}",
+ "publish_dialog_priority_label": "優先度",
+ "publish_dialog_click_label": "クリックURL",
+ "publish_dialog_email_placeholder": "通知を転送するアドレス, 例) phil@example.com",
+ "notifications_more_details": "詳しい情報は、ウェブサイト または ドキュメント を参照してください。",
+ "publish_dialog_attachment_limits_file_reached": "ファイルサイズ制限 {{fileSizeLimit}} を超えました",
+ "publish_dialog_priority_min": "優先度最低",
+ "publish_dialog_priority_low": "優先度低",
+ "publish_dialog_priority_default": "優先度通常",
+ "publish_dialog_base_url_label": "サービスURL",
+ "publish_dialog_other_features": "他の機能:",
+ "notifications_loading": "通知を読み込み中…",
+ "publish_dialog_attachment_limits_quota_reached": "クォータを超過しました、残り{{remainingBytes}}",
+ "publish_dialog_priority_high": "優先度高",
+ "publish_dialog_topic_placeholder": "トピック名の例 phil_alerts",
+ "publish_dialog_title_placeholder": "通知タイトル 例: ディスクスペース警告",
+ "publish_dialog_message_placeholder": "メッセージ本文を入力してください",
+ "publish_dialog_tags_label": "タグ",
+ "publish_dialog_tags_placeholder": "コンマ区切りでタグを列挙してください 例: warning, srv1-backup",
+ "publish_dialog_topic_label": "トピック名",
+ "publish_dialog_delay_label": "遅延",
+ "publish_dialog_click_placeholder": "通知をクリックしたときに開くURL",
+ "publish_dialog_filename_placeholder": "添付ファイルの名称",
+ "publish_dialog_button_send": "送信",
+ "publish_dialog_chip_click_label": "Click URL",
+ "publish_dialog_chip_email_label": "メールに転送",
+ "publish_dialog_details_examples_description": "送信機能の例や詳細な説明については、ドキュメントを参照してください。",
+ "error_boundary_description": "明らかに起きてはならないことです。本当に申し訳ありません。
もし時間があれば、GitHubにこれを報告するか、DiscordまたはMatrixで我々に知らせて下さい。",
+ "publish_dialog_chip_attach_url_label": "URLでファイルを添付",
+ "publish_dialog_chip_attach_file_label": "ローカルファイルを添付",
+ "publish_dialog_chip_topic_label": "トピックを変更",
+ "publish_dialog_chip_delay_label": "配信を遅延させる",
+ "publish_dialog_attached_file_title": "添付ファイル:",
+ "publish_dialog_button_cancel": "キャンセル",
+ "publish_dialog_checkbox_publish_another": "送信後開いたままにする",
+ "publish_dialog_attached_file_filename_placeholder": "添付ファイル名",
+ "emoji_picker_search_placeholder": "絵文字を検索",
+ "subscribe_dialog_subscribe_title": "トピックを購読",
+ "prefs_users_title": "ユーザー管理",
+ "publish_dialog_drop_file_here": "ここにファイルをドロップしてください",
+ "subscribe_dialog_subscribe_topic_placeholder": "トピック名 例: phils_alerts",
+ "prefs_notifications_min_priority_any": "全ての優先度",
+ "prefs_notifications_delete_after_three_hours": "3時間後",
+ "prefs_users_description": "保護トピックのユーザーを追加/削除できます。ユーザー名とパスワードはブラウザのローカルストレージに保存されることに留意してください。",
+ "prefs_users_add_button": "ユーザー追加",
+ "prefs_users_dialog_button_add": "追加",
+ "subscribe_dialog_subscribe_use_another_label": "他のサーバーを使用",
+ "subscribe_dialog_error_user_not_authorized": "ユーザー名 {{username}} は許可されていません",
+ "prefs_notifications_delete_after_one_week": "1週間後",
+ "prefs_notifications_delete_after_one_month": "1か月後",
+ "subscribe_dialog_subscribe_description": "トピックはパスワード保護されないので、推測されにくい名前にしてください。購読した後、PUT/POSTで通知を送信できます。",
+ "subscribe_dialog_subscribe_button_cancel": "キャンセル",
+ "subscribe_dialog_subscribe_button_subscribe": "購読",
+ "subscribe_dialog_login_title": "ログインが必要です",
+ "subscribe_dialog_error_user_anonymous": "匿名",
+ "prefs_notifications_title": "通知",
+ "prefs_notifications_min_priority_low_and_higher": "優先度低 およびそれ以上",
+ "prefs_notifications_delete_after_never": "削除しない",
+ "prefs_notifications_delete_after_one_day": "1日後",
+ "prefs_notifications_sound_title": "通知音",
+ "prefs_notifications_sound_no_sound": "サウンドなし",
+ "prefs_notifications_min_priority_title": "表示する優先度",
+ "prefs_notifications_min_priority_default_and_higher": "優先度通常 およびそれ以上",
+ "prefs_notifications_delete_after_title": "通知を削除",
+ "prefs_users_dialog_button_cancel": "キャンセル",
+ "prefs_users_dialog_button_save": "保存",
+ "prefs_users_table_user_header": "ユーザー名",
+ "prefs_users_dialog_title_add": "ユーザー追加",
+ "prefs_users_dialog_title_edit": "ユーザー編集",
+ "prefs_users_dialog_base_url_label": "サービスURL, 例) https://ntfy.sh",
+ "prefs_appearance_title": "外観",
+ "prefs_appearance_language_title": "言語",
+ "prefs_users_table_base_url_header": "サービスURL",
+ "prefs_users_dialog_username_label": "ユーザー名, 例) phil",
+ "prefs_users_dialog_password_label": "パスワード",
+ "error_boundary_title": "ああ、ntfyがクラッシュしました",
+ "error_boundary_button_copy_stack_trace": "スタックトレースをコピー",
+ "error_boundary_stack_trace": "スタックトレース",
+ "error_boundary_gathering_info": "更に情報を集める…",
+ "publish_dialog_base_url_placeholder": "サービスURL, 例) https://example.com",
+ "publish_dialog_attach_placeholder": "添付ファイルをURLで指定, 例) https://f-droid.org/F-Droid.apk",
+ "publish_dialog_delay_placeholder": "遅延時間, 例) {{unixTimestamp}}, {{relativeTime}}, or \"{{naturalLanguage}}\" (English only)"
+}