diff --git a/messages/es.json b/messages/es.json index 96b9fd0..2256a16 100644 --- a/messages/es.json +++ b/messages/es.json @@ -31,7 +31,11 @@ "status": { "text": "Estado: {status}", "ready": "listo", - "not_ready": "no listo" + "not_ready": "no listo", + "not_initialized": "no inicializado", + "downloading": "descargando...", + "initializing": "inicializando...", + "unknown": "estado desconocido" }, "supported_formats": "Formatos soportados:" }, @@ -43,6 +47,12 @@ } }, "convert": { + "external_warning": { + "title": "Advertencia del servidor externo", + "text": "Si eliges convertir a un formato de video, esos archivos se cargarán en un servidor externo para convertirlos. ¿Quieres continuar?", + "yes": "Sí", + "no": "No" + }, "panel": { "convert_all": "Convertir todo", "download_all": "Comprimir todo", @@ -70,7 +80,13 @@ "cant_convert": "No podemos convertir este archivo.", "vertd_server": "¿Qué estás haciendo..? ¡Debes ejecutar el servidor de vertd!", "unsupported_format": "Solo aceptamos imágenes, vídeos, audios y documentos.", - "vertd_not_found": "No se encontró la instancia de vertd para iniciar la conversión de vídeos. ¿Estás seguro de que la URL es correcta?" + "vertd_not_found": "No se encontró la instancia de vertd para iniciar la conversión de vídeos. ¿Estás seguro de que la URL es correcta?", + "worker_downloading": "El convertidor {type} se está inicializando actualmente, espere unos momentos.", + "worker_error": "El convertidor {type} tuvo un error durante la inicialización, inténtelo nuevamente más tarde.", + "worker_timeout": "El convertidor {type} está tardando más de lo esperado en inicializarse. Espere unos momentos más o actualice la página.", + "audio": "audio", + "doc": "documento", + "image": "imagen" } }, "settings": { @@ -91,9 +107,20 @@ }, "conversion": { "title": "Conversión", + "advanced_settings": "Configuraciones avanzadas", "filename_format": "Formato del nombre de archivo", "filename_description": "Esto va a determinar el nombre del archivo al ser descargado sin incluir la extensión. Puedes poner las siguientes plantillas en el formato, las cuales serán reemplazadas con la información que les corresponde: %name% para el nombre original, %extension% para la extensión original del archivo y %date% para la fecha de cuando el archivo fue convertido.", "placeholder": "VERT_%name%", + "default_format": "Formato de conversión predeterminado", + "default_format_description": "Esto cambiará el formato predeterminado seleccionado cuando subes un archivo de este tipo.", + "default_format_image": "Imágenes", + "default_format_video": "Vídeos", + "default_format_audio": "Audio", + "default_format_document": "Documentos", + "metadata": "Metadatos del archivo", + "metadata_description": "Esto cambia si los metadatos (EXIF, información de la canción, etc.) del archivo original se conservan en los archivos convertidos.", + "keep": "Mantener", + "remove": "Eliminar", "quality": "Calidad de la conversión", "quality_description": "Esto cambia la calidad por defecto de los archivos convertidos (en su categoría). Valores más altos pueden resultar en tiempos de conversión y tamaños de archivo más largos.", "quality_video": "Esto cambia la calidad por defecto de los vídeos convertidos. Valores más altos pueden resultar en tiempos de conversión y tamaños de archivo más largos.", @@ -120,14 +147,27 @@ "medium": "Medio", "fast": "Rápido", "ultra_fast": "Súper rápido" - } + }, + "auto_instance": "Automático (recomendado)", + "eu_instance": "Falkenstein, Alemania", + "us_instance": "Washington, EE. UU.", + "custom_instance": "Personalizado" }, "privacy": { "title": "Privacidad", "plausible_title": "Analíticas de Plausible", "plausible_description": "Usamos [plausible_link]Plausible[/plausible_link], una herramienta de analíticas orientada a la privacidad para recopilar estadísticas completamente anónimas. Toda la información que recopilamos es anonimizada y agregada, y en ningún momento se envía ni se almacena información que permita identificarte. Puedes ver las estadísticas [analytics_link]aquí[/analytics_link] y excluirte de ellas a continuación:", "opt_in": "Participar", - "opt_out": "No participar" + "opt_out": "No participar", + "cache_title": "Administración de caché", + "cache_description": "Guardamos en caché los archivos del convertidor en su navegador para que no tenga que volver a descargarlos cada vez, mejorando el rendimiento y reduciendo el uso de datos.", + "refresh_cache": "Actualizar caché", + "clear_cache": "Borrar caché", + "files_cached": "{size} ({count} archivos)", + "loading_cache": "Cargando...", + "total_size": "Tamaño total", + "files_cached_label": "Archivos en caché", + "cache_cleared": "¡Caché borrada exitosamente!" }, "language": { "title": "Lenguaje", @@ -189,6 +229,7 @@ "workers": { "errors": { "general": "Ocurrió un error mientras se convertía {file}: {message}", + "cancel": "Error al cancelar la conversión para {file}: {message}", "magick": "Ocurrió un error en el módulo de Magick, la conversión de imágenes puede que no funcione correctamente.", "ffmpeg": "No se pudo cargar FFmpeg, algunas funciones podrían no funcionar.", "no_audio": "No se encontró una pista de audio.", diff --git a/messages/ja.json b/messages/ja.json new file mode 100644 index 0000000..0401937 --- /dev/null +++ b/messages/ja.json @@ -0,0 +1,246 @@ +{ + "$schema": "https://inlang.com/schema/inlang-message-format", + "navbar": { + "upload": "アップロード", + "convert": "変換", + "settings": "設定", + "about": "について", + "toggle_theme": "テーマを切り替える" + }, + "footer": { + "copyright": "© {year} VERT.", + "source_code": "ソースコード", + "discord_server": "Discordサーバー" + }, + "upload": { + "title": "きっと気に入るファイル変換ツール。", + "subtitle": "すべての画像・音声・ドキュメント処理はデバイス上で行われます。動画は超高速サーバーで変換されます。ファイルサイズ制限なし、広告なし、完全オープンソース。", + "uploader": { + "text": "ドロップまたはクリックして{action}", + "convert": "変換", + "jpegify": "JPEG化" + }, + "cards": { + "title": "VERTがサポートしている形式", + "images": "画像", + "audio": "音声", + "documents": "ドキュメント", + "video": "動画", + "video_server_processing": "サーバー対応", + "local_supported": "ローカル対応", + "status": { + "text": "ステータス: {status}", + "ready": "準備完了", + "not_ready": "未準備", + "not_initialized": "未初期化", + "downloading": "ダウンロード中...", + "initializing": "初期化中...", + "unknown": "不明なステータス" + }, + "supported_formats": "対応フォーマット:" + }, + "tooltip": { + "partial_support": "このフォーマットは{direction}としてのみ変換可能です。", + "direction_input": "入力(変換元)", + "direction_output": "出力(変換先)", + "video_server_processing": "動画はデフォルトでサーバーにアップロードされて処理されます。ローカルで設定する方法はこちら。" + } + }, + "convert": { + "external_warning": { + "title": "外部サーバーの警告", + "text": "動画フォーマットへの変換を選択すると、ファイルは外部サーバーにアップロードされて変換されます。続行しますか?", + "yes": "はい", + "no": "いいえ" + }, + "panel": { + "convert_all": "すべて変換", + "download_all": "すべてを.zipでダウンロード", + "remove_all": "すべてのファイルを削除", + "set_all_to": "すべてを設定", + "na": "該当なし" + }, + "dropdown": { + "audio": "音声", + "video": "動画", + "doc": "ドキュメント", + "image": "画像", + "placeholder": "フォーマットを検索" + }, + "tooltips": { + "unknown_file": "不明なファイルタイプ", + "audio_file": "音声ファイル", + "video_file": "動画ファイル", + "document_file": "ドキュメントファイル", + "image_file": "画像ファイル", + "convert_file": "このファイルを変換", + "download_file": "このファイルをダウンロード" + }, + "errors": { + "cant_convert": "このファイルを変換できません。", + "vertd_server": "何してるの..? vertdサーバーを起動する必要があります!", + "unsupported_format": "画像、動画、音声、ドキュメントのみ対応しています", + "vertd_not_found": "動画変換を開始するためのvertdインスタンスが見つかりません。URLが正しいか確認してください。", + "worker_downloading": "{type}コンバーターを初期化中です。少々お待ちください。", + "worker_error": "{type}コンバーターの初期化中にエラーが発生しました。後でもう一度お試しください。", + "worker_timeout": "{type}コンバーターの初期化に予想以上の時間がかかっています。もう少しお待ちいただくか、ページを更新してください。", + "audio": "音声", + "doc": "ドキュメント", + "image": "画像" + } + }, + "settings": { + "title": "設定", + "errors": { + "save_failed": "設定の保存に失敗しました!" + }, + "appearance": { + "title": "外観", + "brightness_theme": "明るさテーマ", + "brightness_description": "まぶしい昼間か、静かな夜か?", + "light": "ライト", + "dark": "ダーク", + "effect_settings": "エフェクト設定", + "effect_description": "派手な効果にしますか?それとも静的な体験にしますか?", + "enable": "有効", + "disable": "無効" + }, + "conversion": { + "title": "変換", + "advanced_settings": "詳細設定", + "filename_format": "ファイル名フォーマット", + "filename_description": "これはダウンロード時のファイル名を決定します(拡張子を除く)。以下のテンプレートを使用できます:%name%(元のファイル名)、%extension%(元の拡張子)、%date%(変換日時)。", + "placeholder": "VERT_%name%", + "default_format": "デフォルト変換フォーマット", + "default_format_description": "このファイルタイプをアップロードしたときに自動で選択される形式を変更します。", + "default_format_image": "画像", + "default_format_video": "動画", + "default_format_audio": "音声", + "default_format_document": "ドキュメント", + "metadata": "ファイルメタデータ", + "metadata_description": "変換後のファイルに元のメタデータ(EXIF、曲情報など)を保持するかどうかを変更します。", + "keep": "保持", + "remove": "削除", + "quality": "変換品質", + "quality_description": "出力ファイルの品質を変更します。値が高いほど処理時間とファイルサイズが増加します。", + "quality_video": "動画変換の品質を変更します。高品質ほど変換時間とサイズが増加します。", + "quality_audio": "音声(kbps)", + "quality_images": "画像(%)", + "rate": "サンプリングレート(Hz)" + }, + "vertd": { + "title": "動画変換", + "status": "ステータス:", + "loading": "読み込み中...", + "available": "利用可能(コミットID {commitId})", + "unavailable": "利用不可(URLが正しいですか?)", + "description": "vertdプロジェクトはFFmpegのサーバーラッパーです。これにより、GPUの性能を活かして高速に変換しつつ、VERTのウェブインターフェイスから簡単に動画を変換できます。", + "hosting_info": "私たちは利便性のために公開インスタンスをホストしていますが、自分のPCやサーバーでも簡単にホストできます。バイナリは[vertd_link]こちら[/vertd_link]からダウンロードできます。今後さらにセットアップが簡単になる予定です!", + "instance": "インスタンス", + "url_placeholder": "例: http://localhost:24153", + "conversion_speed": "変換速度", + "speed_description": "速度と品質のバランスを設定します。高速化すると品質が低下しますが、処理は速くなります。", + "speeds": { + "very_slow": "非常に遅い", + "slower": "かなり遅い", + "slow": "遅い", + "medium": "普通", + "fast": "速い", + "ultra_fast": "超高速" + }, + "auto_instance": "自動(推奨)", + "eu_instance": "ドイツ・ファルケンシュタイン", + "us_instance": "アメリカ・ワシントン", + "custom_instance": "カスタム" + }, + "privacy": { + "title": "プライバシーとデータ", + "plausible_title": "Plausible解析", + "plausible_description": "私たちはプライバシー重視の解析ツール[plausible_link]Plausible[/plausible_link]を使用しています。すべてのデータは匿名化・集計され、個人情報は一切収集・保存されません。統計情報は[analytics_link]こちら[/analytics_link]で確認でき、以下でオプトアウト可能です。", + "opt_in": "参加する", + "opt_out": "参加しない", + "cache_title": "キャッシュ管理", + "cache_description": "コンバーターファイルをブラウザにキャッシュして再ダウンロードを防ぎ、パフォーマンスを向上させます。", + "refresh_cache": "キャッシュを更新", + "clear_cache": "キャッシュをクリア", + "files_cached": "{size}({count}ファイル)", + "loading_cache": "読み込み中...", + "total_size": "合計サイズ", + "files_cached_label": "キャッシュ済みファイル", + "cache_cleared": "キャッシュが正常にクリアされました!" + }, + "language": { + "title": "言語", + "description": "VERTインターフェイスの表示言語を選択してください。" + } + }, + "about": { + "title": "について", + "why": { + "title": "なぜVERT?", + "description": "従来のファイルコンバーターにはいつもがっかりしてきました。見た目が悪く、広告だらけで、そして何より遅い。私たちはそれらの問題をすべて解決するためにVERTを作りました。

動画以外のファイルは完全にデバイス上で変換されるため、サーバーとのやり取りによる遅延もなく、あなたのファイルを覗き見ることもありません。

動画は超高速RTX 4000 Adaサーバーで処理され、変換しなかった場合は1時間以内に削除されます。変換された動画も1時間またはダウンロード完了後に削除されます。" + }, + "sponsors": { + "title": "スポンサー", + "description": "私たちを支援したい場合は、[discord_link]Discord[/discord_link]サーバーで開発者に連絡するか、以下のメールアドレスまでご連絡ください。", + "email_copied": "メールアドレスをコピーしました!" + }, + "resources": { + "title": "リソース", + "discord": "Discord", + "source": "ソース", + "email": "メール" + }, + "donate": { + "title": "VERTを支援する", + "description": "あなたの支援でVERTの維持と改善を続けられます。", + "one_time": "一度きり", + "monthly": "毎月", + "custom": "カスタム", + "pay_now": "今すぐ支払う", + "donate_amount": "${amount} USDを寄付", + "thank_you": "ご支援ありがとうございます!", + "payment_failed": "支払いに失敗しました: {message}{period} 請求は行われていません。", + "donation_error": "寄付の処理中にエラーが発生しました。後でもう一度お試しください。", + "payment_error": "支払い情報の取得中にエラーが発生しました。後でもう一度お試しください。" + }, + "credits": { + "title": "クレジット", + "contact_team": "開発チームに連絡したい場合は、「リソース」カードに記載されたメールをご利用ください。", + "notable_contributors": "特筆すべき貢献者", + "notable_description": "VERTに大きく貢献してくださった方々に感謝します。", + "github_contributors": "GitHubの貢献者", + "github_description": "多くの方々に[jpegify_link]感謝[/jpegify_link]します![github_link]あなたも参加してみませんか?[/github_link]", + "no_contributors": "まだ誰も貢献していないようです… [contribute_link]最初の貢献者になりましょう![/contribute_link]", + "libraries": "ライブラリ", + "libraries_description": "長年にわたり優れたライブラリを提供してくれているFFmpeg(音声・動画)、ImageMagick(画像)、Pandoc(ドキュメント)に感謝します。VERTはこれらに依存して動作しています。", + "roles": { + "lead_developer": "リード開発者;変換バックエンド、UI実装", + "developer": "開発者;UI実装", + "designer": "デザイナー;UX、ブランディング、マーケティング", + "docker_ci": "DockerとCIの保守担当", + "former_cofounder": "元共同創設者・デザイナー" + } + }, + "errors": { + "github_contributors": "GitHub貢献者の取得エラー" + } + }, + "workers": { + "errors": { + "general": "{file}の変換エラー:{message}", + "cancel": "{file}の変換キャンセルエラー:{message}", + "magick": "Magickワーカーでエラーが発生しました。画像変換が正常に動作しない可能性があります。", + "ffmpeg": "ffmpegの読み込みエラー。一部の機能が動作しない可能性があります。", + "no_audio": "音声ストリームが見つかりません。", + "invalid_rate": "無効なサンプリングレートが指定されました: {rate}Hz" + } + }, + "jpegify": { + "title": "秘密のJPEGIFY!!!", + "subtitle": "(しっ…誰にも言わないで!)", + "button": "JPEGIFY {compression}%!!!", + "download": "ダウンロード", + "delete": "削除" + } +} diff --git a/project.inlang/settings.json b/project.inlang/settings.json index fda5a07..4ce5735 100644 --- a/project.inlang/settings.json +++ b/project.inlang/settings.json @@ -1,7 +1,7 @@ { "$schema": "https://inlang.com/schema/project-settings", "baseLocale": "en", - "locales": ["en", "es", "fr", "de", "hr", "tr"], + "locales": ["en", "es", "fr", "de", "hr", "tr", "ja"], "modules": [ "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@4/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@2/dist/index.js" diff --git a/src/lib/store/index.svelte.ts b/src/lib/store/index.svelte.ts index 3eab06e..191ebdd 100644 --- a/src/lib/store/index.svelte.ts +++ b/src/lib/store/index.svelte.ts @@ -324,6 +324,7 @@ export const availableLocales = { de: "Deutsch", hr: "Hrvatski", tr: "Türkçe", + ja: "日本語", }; export function updateLocale(newLocale: string) {