mirror of
https://github.com/spotiflacapp/SpotiFLAC-Mobile.git
synced 2026-06-01 03:15:17 +07:00
- Add filter button next to Select in Library tab (All/Singles) - Source filter: All, Downloaded, Local - Quality filter: Hi-Res (24bit), CD (16bit), Lossy - Format filter: Dynamic based on available formats (FLAC, MP3, etc.) - Date filter: Today, This Week, This Month, This Year - Badge shows active filter count - Long-press filter button to reset all filters - Filters apply to both All and Singles tabs - Add 18 new localization keys for filter UI
2679 lines
68 KiB
Dart
2679 lines
68 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for Japanese (`ja`).
|
|
class AppLocalizationsJa extends AppLocalizations {
|
|
AppLocalizationsJa([String locale = 'ja']) : super(locale);
|
|
|
|
@override
|
|
String get appName => 'SpotiFLAC';
|
|
|
|
@override
|
|
String get appDescription =>
|
|
'Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。';
|
|
|
|
@override
|
|
String get navHome => 'ホーム';
|
|
|
|
@override
|
|
String get navLibrary => 'Library';
|
|
|
|
@override
|
|
String get navHistory => '履歴';
|
|
|
|
@override
|
|
String get navSettings => '設定';
|
|
|
|
@override
|
|
String get navStore => 'ストア';
|
|
|
|
@override
|
|
String get homeTitle => 'ホーム';
|
|
|
|
@override
|
|
String get homeSearchHint => 'Spotify の URL を貼り付けまたは検索...';
|
|
|
|
@override
|
|
String homeSearchHintExtension(String extensionName) {
|
|
return '$extensionName で検索...';
|
|
}
|
|
|
|
@override
|
|
String get homeSubtitle => 'Spotify のリンクを貼り付けるか、名前で検索します';
|
|
|
|
@override
|
|
String get homeSupports => 'サポート: トラック、アルバム、プレイリスト、アーティスト、URL';
|
|
|
|
@override
|
|
String get homeRecent => '最近';
|
|
|
|
@override
|
|
String get historyTitle => '履歴';
|
|
|
|
@override
|
|
String historyDownloading(int count) {
|
|
return 'ダウンロード中 ($count)';
|
|
}
|
|
|
|
@override
|
|
String get historyDownloaded => 'ダウンロード済み';
|
|
|
|
@override
|
|
String get historyFilterAll => 'すべて';
|
|
|
|
@override
|
|
String get historyFilterAlbums => 'アルバム';
|
|
|
|
@override
|
|
String get historyFilterSingles => 'シングル';
|
|
|
|
@override
|
|
String historyTracksCount(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count 個のトラック',
|
|
one: '1 個のトラック',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String historyAlbumsCount(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count 個のアルバム',
|
|
one: '1 個のアルバム',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get historyNoDownloads => 'ダウンロード履歴はありません';
|
|
|
|
@override
|
|
String get historyNoDownloadsSubtitle => 'ダウンロードしたトラックはここに表示されます';
|
|
|
|
@override
|
|
String get historyNoAlbums => 'アルバムのダウンロードはありません';
|
|
|
|
@override
|
|
String get historyNoAlbumsSubtitle =>
|
|
'Download multiple tracks from an album to see them here';
|
|
|
|
@override
|
|
String get historyNoSingles => 'シングルのダウンロードはありません';
|
|
|
|
@override
|
|
String get historyNoSinglesSubtitle =>
|
|
'Single track downloads will appear here';
|
|
|
|
@override
|
|
String get historySearchHint => '検索履歴...';
|
|
|
|
@override
|
|
String get settingsTitle => '設定';
|
|
|
|
@override
|
|
String get settingsDownload => 'ダウンロード';
|
|
|
|
@override
|
|
String get settingsAppearance => '外観';
|
|
|
|
@override
|
|
String get settingsOptions => 'オプション';
|
|
|
|
@override
|
|
String get settingsExtensions => '拡張';
|
|
|
|
@override
|
|
String get settingsAbout => 'アプリについて';
|
|
|
|
@override
|
|
String get downloadTitle => 'ダウンロード';
|
|
|
|
@override
|
|
String get downloadLocation => 'ダウンロード先';
|
|
|
|
@override
|
|
String get downloadLocationSubtitle => 'ファイルの保存先を選択';
|
|
|
|
@override
|
|
String get downloadLocationDefault => 'デフォルトの場所';
|
|
|
|
@override
|
|
String get downloadDefaultService => 'デフォルトのサービス';
|
|
|
|
@override
|
|
String get downloadDefaultServiceSubtitle => 'ダウンロードに使用したサービス';
|
|
|
|
@override
|
|
String get downloadDefaultQuality => 'デフォルトの品質';
|
|
|
|
@override
|
|
String get downloadAskQuality => 'ダウンロード前に品質を確認する';
|
|
|
|
@override
|
|
String get downloadAskQualitySubtitle =>
|
|
'Show quality picker for each download';
|
|
|
|
@override
|
|
String get downloadFilenameFormat => 'ファイル名の形式';
|
|
|
|
@override
|
|
String get downloadFolderOrganization => 'フォルダ構成';
|
|
|
|
@override
|
|
String get downloadSeparateSingles => 'シングルを分割';
|
|
|
|
@override
|
|
String get downloadSeparateSinglesSubtitle =>
|
|
'Put single tracks in a separate folder';
|
|
|
|
@override
|
|
String get qualityBest => 'おすすめ';
|
|
|
|
@override
|
|
String get qualityFlac => 'FLAC';
|
|
|
|
@override
|
|
String get quality320 => '320 kbps';
|
|
|
|
@override
|
|
String get quality128 => '128 kbps';
|
|
|
|
@override
|
|
String get appearanceTitle => '外観';
|
|
|
|
@override
|
|
String get appearanceTheme => 'テーマ';
|
|
|
|
@override
|
|
String get appearanceThemeSystem => 'システム';
|
|
|
|
@override
|
|
String get appearanceThemeLight => 'ライト';
|
|
|
|
@override
|
|
String get appearanceThemeDark => 'ダーク';
|
|
|
|
@override
|
|
String get appearanceDynamicColor => 'ダイナミックカラー';
|
|
|
|
@override
|
|
String get appearanceDynamicColorSubtitle => '壁紙の色を使用する';
|
|
|
|
@override
|
|
String get appearanceAccentColor => 'アクセントカラー';
|
|
|
|
@override
|
|
String get appearanceHistoryView => '履歴の表示';
|
|
|
|
@override
|
|
String get appearanceHistoryViewList => 'リスト';
|
|
|
|
@override
|
|
String get appearanceHistoryViewGrid => 'グリッド';
|
|
|
|
@override
|
|
String get optionsTitle => 'オプション';
|
|
|
|
@override
|
|
String get optionsSearchSource => '検索ソース';
|
|
|
|
@override
|
|
String get optionsPrimaryProvider => 'プライマリーのプロバイダー';
|
|
|
|
@override
|
|
String get optionsPrimaryProviderSubtitle =>
|
|
'Service used when searching by track name.';
|
|
|
|
@override
|
|
String optionsUsingExtension(String extensionName) {
|
|
return '拡張の使用: $extensionName';
|
|
}
|
|
|
|
@override
|
|
String get optionsSwitchBack =>
|
|
'Tap Deezer or Spotify to switch back from extension';
|
|
|
|
@override
|
|
String get optionsAutoFallback => 'Auto Fallback';
|
|
|
|
@override
|
|
String get optionsAutoFallbackSubtitle =>
|
|
'Try other services if download fails';
|
|
|
|
@override
|
|
String get optionsUseExtensionProviders => '拡張のプロバイダーを使用する';
|
|
|
|
@override
|
|
String get optionsUseExtensionProvidersOn => '最初に拡張で試みます';
|
|
|
|
@override
|
|
String get optionsUseExtensionProvidersOff => '内蔵のプロバイダーのみを使用する';
|
|
|
|
@override
|
|
String get optionsEmbedLyrics => '歌詞を埋め込む';
|
|
|
|
@override
|
|
String get optionsEmbedLyricsSubtitle => '同期する歌詞を FLAC ファイルに埋め込む';
|
|
|
|
@override
|
|
String get optionsMaxQualityCover => '最大品質のカバー';
|
|
|
|
@override
|
|
String get optionsMaxQualityCoverSubtitle => '最高解像度のカバーアートをダウンロード';
|
|
|
|
@override
|
|
String get optionsConcurrentDownloads => '同時ダウンロード';
|
|
|
|
@override
|
|
String get optionsConcurrentSequential => 'Sequential (1 at a time)';
|
|
|
|
@override
|
|
String optionsConcurrentParallel(int count) {
|
|
return '$count parallel downloads';
|
|
}
|
|
|
|
@override
|
|
String get optionsConcurrentWarning =>
|
|
'Parallel downloads may trigger rate limiting';
|
|
|
|
@override
|
|
String get optionsExtensionStore => '拡張ストア';
|
|
|
|
@override
|
|
String get optionsExtensionStoreSubtitle => 'ナビゲーションにストアタブを表示';
|
|
|
|
@override
|
|
String get optionsCheckUpdates => '更新を確認';
|
|
|
|
@override
|
|
String get optionsCheckUpdatesSubtitle =>
|
|
'Notify when new version is available';
|
|
|
|
@override
|
|
String get optionsUpdateChannel => '更新チャンネル';
|
|
|
|
@override
|
|
String get optionsUpdateChannelStable => '安定版リリースのみ';
|
|
|
|
@override
|
|
String get optionsUpdateChannelPreview => 'プレビューリリースを入手';
|
|
|
|
@override
|
|
String get optionsUpdateChannelWarning =>
|
|
'Preview may contain bugs or incomplete features';
|
|
|
|
@override
|
|
String get optionsClearHistory => 'ダウンロード履歴を消去';
|
|
|
|
@override
|
|
String get optionsClearHistorySubtitle => 'ダウンロード済みのすべてのトラックを履歴から削除';
|
|
|
|
@override
|
|
String get optionsDetailedLogging => '詳細ログ';
|
|
|
|
@override
|
|
String get optionsDetailedLoggingOn => '詳細なログを記録しています';
|
|
|
|
@override
|
|
String get optionsDetailedLoggingOff => 'バグレポートを有効';
|
|
|
|
@override
|
|
String get optionsSpotifyCredentials => 'Spotify の認証情報';
|
|
|
|
@override
|
|
String optionsSpotifyCredentialsConfigured(String clientId) {
|
|
return 'クライアント ID: $clientId...';
|
|
}
|
|
|
|
@override
|
|
String get optionsSpotifyCredentialsRequired => '必須 - タップで設定';
|
|
|
|
@override
|
|
String get optionsSpotifyWarning =>
|
|
'Spotify は独自の API 認証情報が必要です。developer.spotify.com から取得できます。';
|
|
|
|
@override
|
|
String get extensionsTitle => '拡張';
|
|
|
|
@override
|
|
String get extensionsInstalled => 'インストール済みの拡張';
|
|
|
|
@override
|
|
String get extensionsNone => '拡張はインストールされていません';
|
|
|
|
@override
|
|
String get extensionsNoneSubtitle => 'ストアタブから拡張をインストール';
|
|
|
|
@override
|
|
String get extensionsEnabled => '有効';
|
|
|
|
@override
|
|
String get extensionsDisabled => '無効';
|
|
|
|
@override
|
|
String extensionsVersion(String version) {
|
|
return 'バージョン $version';
|
|
}
|
|
|
|
@override
|
|
String extensionsAuthor(String author) {
|
|
return '作者 $author';
|
|
}
|
|
|
|
@override
|
|
String get extensionsUninstall => 'アンインストール';
|
|
|
|
@override
|
|
String get extensionsSetAsSearch => '検索のプロバイダーを設定';
|
|
|
|
@override
|
|
String get storeTitle => '拡張ストア';
|
|
|
|
@override
|
|
String get storeSearch => '拡張を検索...';
|
|
|
|
@override
|
|
String get storeInstall => 'インストール';
|
|
|
|
@override
|
|
String get storeInstalled => 'インストール済み';
|
|
|
|
@override
|
|
String get storeUpdate => '更新';
|
|
|
|
@override
|
|
String get aboutTitle => 'アプリについて';
|
|
|
|
@override
|
|
String get aboutContributors => '貢献者';
|
|
|
|
@override
|
|
String get aboutMobileDeveloper => 'モバイルバージョンの開発者';
|
|
|
|
@override
|
|
String get aboutOriginalCreator => 'オリジナルの SpotiFLAC の作者';
|
|
|
|
@override
|
|
String get aboutLogoArtist => '美しいアプリロゴを作成した才能あるアーティストです!';
|
|
|
|
@override
|
|
String get aboutTranslators => '翻訳者';
|
|
|
|
@override
|
|
String get aboutSpecialThanks => 'スペシャルサンクス';
|
|
|
|
@override
|
|
String get aboutLinks => 'リンク';
|
|
|
|
@override
|
|
String get aboutMobileSource => 'モバイル版のソースコード';
|
|
|
|
@override
|
|
String get aboutPCSource => 'PC 版のソースコード';
|
|
|
|
@override
|
|
String get aboutReportIssue => '問題を報告する';
|
|
|
|
@override
|
|
String get aboutReportIssueSubtitle => '問題が発生した場合に報告してください';
|
|
|
|
@override
|
|
String get aboutFeatureRequest => '機能の要望';
|
|
|
|
@override
|
|
String get aboutFeatureRequestSubtitle => 'アプリの新機能を提案する';
|
|
|
|
@override
|
|
String get aboutTelegramChannel => 'Telegram チャンネル';
|
|
|
|
@override
|
|
String get aboutTelegramChannelSubtitle => 'お知らせと更新';
|
|
|
|
@override
|
|
String get aboutTelegramChat => 'Telegram コミュニティ';
|
|
|
|
@override
|
|
String get aboutTelegramChatSubtitle => 'その他のユーザーとチャット';
|
|
|
|
@override
|
|
String get aboutSocial => 'ソーシャル';
|
|
|
|
@override
|
|
String get aboutSupport => 'サポート';
|
|
|
|
@override
|
|
String get aboutBuyMeCoffee => 'コーヒーを買ってください';
|
|
|
|
@override
|
|
String get aboutBuyMeCoffeeSubtitle => 'Ko-fi で開発をサポートします';
|
|
|
|
@override
|
|
String get aboutApp => 'アプリ';
|
|
|
|
@override
|
|
String get aboutVersion => 'バージョン';
|
|
|
|
@override
|
|
String get aboutBinimumDesc =>
|
|
'The creator of QQDL & HiFi API. Without this API, Tidal downloads wouldn\'t exist!';
|
|
|
|
@override
|
|
String get aboutSachinsenalDesc =>
|
|
'The original HiFi project creator. The foundation of Tidal integration!';
|
|
|
|
@override
|
|
String get aboutSjdonadoDesc =>
|
|
'Creator of I Don\'t Have Spotify (IDHS). The fallback link resolver that saves the day!';
|
|
|
|
@override
|
|
String get aboutDoubleDouble => 'DoubleDouble';
|
|
|
|
@override
|
|
String get aboutDoubleDoubleDesc =>
|
|
'Amazing API for Amazon Music downloads. Thank you for making it free!';
|
|
|
|
@override
|
|
String get aboutDabMusic => 'DAB Music';
|
|
|
|
@override
|
|
String get aboutDabMusicDesc =>
|
|
'The best Qobuz streaming API. Hi-Res downloads wouldn\'t be possible without this!';
|
|
|
|
@override
|
|
String get aboutAppDescription =>
|
|
'Tidal、Qobuz、Amazon Music から Spotify のトラックをロスレス品質でダウンロードします。';
|
|
|
|
@override
|
|
String get albumTitle => 'アルバム';
|
|
|
|
@override
|
|
String albumTracks(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count 個のトラック',
|
|
one: '1 個のトラック',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get albumDownloadAll => 'すべてダウンロード';
|
|
|
|
@override
|
|
String get albumDownloadRemaining => 'Download Remaining';
|
|
|
|
@override
|
|
String get playlistTitle => 'プレイリスト';
|
|
|
|
@override
|
|
String get artistTitle => 'アーティスト';
|
|
|
|
@override
|
|
String get artistAlbums => 'アルバム';
|
|
|
|
@override
|
|
String get artistSingles => 'シングルと EP';
|
|
|
|
@override
|
|
String get artistCompilations => 'コンピレーション';
|
|
|
|
@override
|
|
String artistReleases(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count 個のリリース',
|
|
one: '1 個のリリース',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get artistPopular => '人気';
|
|
|
|
@override
|
|
String artistMonthlyListeners(String count) {
|
|
return '$count 人の月間リスナー';
|
|
}
|
|
|
|
@override
|
|
String get trackMetadataTitle => 'トラック情報';
|
|
|
|
@override
|
|
String get trackMetadataArtist => 'アーティスト';
|
|
|
|
@override
|
|
String get trackMetadataAlbum => 'アルバム';
|
|
|
|
@override
|
|
String get trackMetadataDuration => '再生時間';
|
|
|
|
@override
|
|
String get trackMetadataQuality => '品質';
|
|
|
|
@override
|
|
String get trackMetadataPath => 'ファイルパス';
|
|
|
|
@override
|
|
String get trackMetadataDownloadedAt => 'ダウンロード済み';
|
|
|
|
@override
|
|
String get trackMetadataService => 'サービス';
|
|
|
|
@override
|
|
String get trackMetadataPlay => '再生';
|
|
|
|
@override
|
|
String get trackMetadataShare => '共有';
|
|
|
|
@override
|
|
String get trackMetadataDelete => '削除';
|
|
|
|
@override
|
|
String get trackMetadataRedownload => '再ダウンロード';
|
|
|
|
@override
|
|
String get trackMetadataOpenFolder => 'フォルダを開く';
|
|
|
|
@override
|
|
String get setupTitle => 'SpotiFLAC へようこそ';
|
|
|
|
@override
|
|
String get setupSubtitle => 'Let\'s get you started';
|
|
|
|
@override
|
|
String get setupStoragePermission => 'ストレージの権限';
|
|
|
|
@override
|
|
String get setupStoragePermissionSubtitle => 'ダウンロードしたファイルを保存するために必要です';
|
|
|
|
@override
|
|
String get setupStoragePermissionGranted => '権限を許可しました';
|
|
|
|
@override
|
|
String get setupStoragePermissionDenied => '権限が拒否されました';
|
|
|
|
@override
|
|
String get setupGrantPermission => '権限を許可';
|
|
|
|
@override
|
|
String get setupDownloadLocation => 'ダウンロード先';
|
|
|
|
@override
|
|
String get setupChooseFolder => 'フォルダを選択';
|
|
|
|
@override
|
|
String get setupContinue => '続行';
|
|
|
|
@override
|
|
String get setupSkip => '今はスキップ';
|
|
|
|
@override
|
|
String get setupStorageAccessRequired => 'ストレージアクセスが必要です';
|
|
|
|
@override
|
|
String get setupStorageAccessMessage =>
|
|
'SpotiFLAC needs \"All files access\" permission to save music files to your chosen folder.';
|
|
|
|
@override
|
|
String get setupStorageAccessMessageAndroid11 =>
|
|
'Android 11+ requires \"All files access\" permission to save files to your chosen download folder.';
|
|
|
|
@override
|
|
String get setupOpenSettings => '設定を開く';
|
|
|
|
@override
|
|
String get setupPermissionDeniedMessage =>
|
|
'Permission denied. Please grant all permissions to continue.';
|
|
|
|
@override
|
|
String setupPermissionRequired(String permissionType) {
|
|
return '$permissionType の権限が必要です';
|
|
}
|
|
|
|
@override
|
|
String setupPermissionRequiredMessage(String permissionType) {
|
|
return '最適な体験を得るには $permissionType の権限が必要です。この権限は設定で後から変更できます。';
|
|
}
|
|
|
|
@override
|
|
String get setupSelectDownloadFolder => 'ダウンロードフォルダを選択';
|
|
|
|
@override
|
|
String get setupUseDefaultFolder => 'デフォルトのフォルダを使用しますか?';
|
|
|
|
@override
|
|
String get setupNoFolderSelected =>
|
|
'No folder selected. Would you like to use the default Music folder?';
|
|
|
|
@override
|
|
String get setupUseDefault => 'デフォルトを使用する';
|
|
|
|
@override
|
|
String get setupDownloadLocationTitle => 'ダウンロード先';
|
|
|
|
@override
|
|
String get setupDownloadLocationIosMessage =>
|
|
'On iOS, downloads are saved to the app\'s Documents folder. You can access them via the Files app.';
|
|
|
|
@override
|
|
String get setupAppDocumentsFolder => 'アプリのドキュメントフォルダ';
|
|
|
|
@override
|
|
String get setupAppDocumentsFolderSubtitle =>
|
|
'Recommended - accessible via Files app';
|
|
|
|
@override
|
|
String get setupChooseFromFiles => 'ファイルから選択';
|
|
|
|
@override
|
|
String get setupChooseFromFilesSubtitle => 'iCloud またはその他の場所を選択';
|
|
|
|
@override
|
|
String get setupIosEmptyFolderWarning =>
|
|
'iOS limitation: Empty folders cannot be selected. Choose a folder with at least one file.';
|
|
|
|
@override
|
|
String get setupIcloudNotSupported =>
|
|
'iCloud Drive is not supported. Please use the app Documents folder.';
|
|
|
|
@override
|
|
String get setupDownloadInFlac => 'Spotify のトラックを FLAC でダウンロード';
|
|
|
|
@override
|
|
String get setupStepStorage => 'ストレージ';
|
|
|
|
@override
|
|
String get setupStepNotification => '通知';
|
|
|
|
@override
|
|
String get setupStepFolder => 'フォルダ';
|
|
|
|
@override
|
|
String get setupStepSpotify => 'Spotify';
|
|
|
|
@override
|
|
String get setupStepPermission => '権限';
|
|
|
|
@override
|
|
String get setupStorageGranted => 'ストレージの権限が許可されました!';
|
|
|
|
@override
|
|
String get setupStorageRequired => 'ストレージの権限が必要です';
|
|
|
|
@override
|
|
String get setupStorageDescription =>
|
|
'SpotiFLAC はダウンロードした音楽ファイルを保存するためにストレージの権限が必要です。';
|
|
|
|
@override
|
|
String get setupNotificationGranted => '通知の権限が許可されました!';
|
|
|
|
@override
|
|
String get setupNotificationEnable => '通知を有効化する';
|
|
|
|
@override
|
|
String get setupNotificationDescription =>
|
|
'Get notified when downloads complete or require attention.';
|
|
|
|
@override
|
|
String get setupFolderSelected => 'ダウンロードフォルダが選択済みです!';
|
|
|
|
@override
|
|
String get setupFolderChoose => 'ダウンロードフォルダを選択';
|
|
|
|
@override
|
|
String get setupFolderDescription =>
|
|
'Select a folder where your downloaded music will be saved.';
|
|
|
|
@override
|
|
String get setupChangeFolder => 'フォルダを変更';
|
|
|
|
@override
|
|
String get setupSelectFolder => 'フォルダを選択';
|
|
|
|
@override
|
|
String get setupSpotifyApiOptional => 'Spotify API (任意)';
|
|
|
|
@override
|
|
String get setupSpotifyApiDescription =>
|
|
'Add your Spotify API credentials for better search results and access to Spotify-exclusive content.';
|
|
|
|
@override
|
|
String get setupUseSpotifyApi => 'Spotify API を使用する';
|
|
|
|
@override
|
|
String get setupEnterCredentialsBelow => '以下に認証情報を入力してください';
|
|
|
|
@override
|
|
String get setupUsingDeezer => 'Deezer を使用中 (アカウントは不要です)';
|
|
|
|
@override
|
|
String get setupEnterClientId => 'Spotify クライアント ID を入力';
|
|
|
|
@override
|
|
String get setupEnterClientSecret => 'Spotify クライアントシークレットを入力';
|
|
|
|
@override
|
|
String get setupGetFreeCredentials =>
|
|
'Spotify 開発者ダッシュボードから無料の API 認証情報を取得します。';
|
|
|
|
@override
|
|
String get setupEnableNotifications => '通知を有効化する';
|
|
|
|
@override
|
|
String get setupProceedToNextStep => 'You can now proceed to the next step.';
|
|
|
|
@override
|
|
String get setupNotificationProgressDescription =>
|
|
'You will receive download progress notifications.';
|
|
|
|
@override
|
|
String get setupNotificationBackgroundDescription =>
|
|
'Get notified about download progress and completion. This helps you track downloads when the app is in background.';
|
|
|
|
@override
|
|
String get setupSkipForNow => '今はスキップ';
|
|
|
|
@override
|
|
String get setupBack => '戻る';
|
|
|
|
@override
|
|
String get setupNext => '次へ';
|
|
|
|
@override
|
|
String get setupGetStarted => 'Get Started';
|
|
|
|
@override
|
|
String get setupSkipAndStart => 'スキップと開始';
|
|
|
|
@override
|
|
String get setupAllowAccessToManageFiles =>
|
|
'Please enable \"Allow access to manage all files\" in the next screen.';
|
|
|
|
@override
|
|
String get setupGetCredentialsFromSpotify =>
|
|
'developer.spotify.com から認証情報を取得します';
|
|
|
|
@override
|
|
String get dialogCancel => 'キャンセル';
|
|
|
|
@override
|
|
String get dialogOk => 'OK';
|
|
|
|
@override
|
|
String get dialogSave => '保存';
|
|
|
|
@override
|
|
String get dialogDelete => '削除';
|
|
|
|
@override
|
|
String get dialogRetry => '再試行';
|
|
|
|
@override
|
|
String get dialogClose => '閉じる';
|
|
|
|
@override
|
|
String get dialogYes => 'はい';
|
|
|
|
@override
|
|
String get dialogNo => 'いいえ';
|
|
|
|
@override
|
|
String get dialogClear => '消去';
|
|
|
|
@override
|
|
String get dialogConfirm => '続行';
|
|
|
|
@override
|
|
String get dialogDone => '完了';
|
|
|
|
@override
|
|
String get dialogImport => 'インポート';
|
|
|
|
@override
|
|
String get dialogDiscard => '破棄';
|
|
|
|
@override
|
|
String get dialogRemove => '削除';
|
|
|
|
@override
|
|
String get dialogUninstall => 'アンインストール';
|
|
|
|
@override
|
|
String get dialogDiscardChanges => '変更を破棄しますか?';
|
|
|
|
@override
|
|
String get dialogUnsavedChanges =>
|
|
'You have unsaved changes. Do you want to discard them?';
|
|
|
|
@override
|
|
String get dialogDownloadFailed => 'ダウンロードに失敗しました';
|
|
|
|
@override
|
|
String get dialogTrackLabel => 'トラック:';
|
|
|
|
@override
|
|
String get dialogArtistLabel => 'アーティスト:';
|
|
|
|
@override
|
|
String get dialogErrorLabel => 'エラー:';
|
|
|
|
@override
|
|
String get dialogClearAll => 'すべて消去';
|
|
|
|
@override
|
|
String get dialogClearAllDownloads =>
|
|
'Are you sure you want to clear all downloads?';
|
|
|
|
@override
|
|
String get dialogRemoveFromDevice => 'デバイスから削除しますか?';
|
|
|
|
@override
|
|
String get dialogRemoveExtension => '拡張を削除';
|
|
|
|
@override
|
|
String get dialogRemoveExtensionMessage =>
|
|
'Are you sure you want to remove this extension? This cannot be undone.';
|
|
|
|
@override
|
|
String get dialogUninstallExtension => '拡張をアンインストールしますか?';
|
|
|
|
@override
|
|
String dialogUninstallExtensionMessage(String extensionName) {
|
|
return 'Are you sure you want to remove $extensionName?';
|
|
}
|
|
|
|
@override
|
|
String get dialogClearHistoryTitle => '履歴を消去';
|
|
|
|
@override
|
|
String get dialogClearHistoryMessage =>
|
|
'Are you sure you want to clear all download history? This cannot be undone.';
|
|
|
|
@override
|
|
String get dialogDeleteSelectedTitle => '選択済みを削除';
|
|
|
|
@override
|
|
String dialogDeleteSelectedMessage(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'tracks',
|
|
one: 'track',
|
|
);
|
|
return 'Delete $count $_temp0 from history?\n\nThis will also delete the files from storage.';
|
|
}
|
|
|
|
@override
|
|
String get dialogImportPlaylistTitle => 'プレイリストをインポート';
|
|
|
|
@override
|
|
String dialogImportPlaylistMessage(int count) {
|
|
return 'Found $count tracks in CSV. Add them to download queue?';
|
|
}
|
|
|
|
@override
|
|
String csvImportTracks(int count) {
|
|
return '$count tracks from CSV';
|
|
}
|
|
|
|
@override
|
|
String snackbarAddedToQueue(String trackName) {
|
|
return '「$trackName」をキューに追加しました';
|
|
}
|
|
|
|
@override
|
|
String snackbarAddedTracksToQueue(int count) {
|
|
return '$count 個のトラックをキューに追加しました';
|
|
}
|
|
|
|
@override
|
|
String snackbarAlreadyDownloaded(String trackName) {
|
|
return '「$trackName」は既にダウンロードされています';
|
|
}
|
|
|
|
@override
|
|
String get snackbarHistoryCleared => '履歴を消去しました';
|
|
|
|
@override
|
|
String get snackbarCredentialsSaved => '認証情報を保存しました';
|
|
|
|
@override
|
|
String get snackbarCredentialsCleared => '認証情報を消去しました';
|
|
|
|
@override
|
|
String snackbarDeletedTracks(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '個のトラック',
|
|
one: '個のトラック',
|
|
);
|
|
return '$count $_temp0を削除';
|
|
}
|
|
|
|
@override
|
|
String snackbarCannotOpenFile(String error) {
|
|
return 'ファイルが開けません: $error';
|
|
}
|
|
|
|
@override
|
|
String get snackbarFillAllFields => 'すべての項目を入力してください';
|
|
|
|
@override
|
|
String get snackbarViewQueue => 'キューを表示';
|
|
|
|
@override
|
|
String snackbarFailedToLoad(String error) {
|
|
return '読み込みに失敗: $error';
|
|
}
|
|
|
|
@override
|
|
String snackbarUrlCopied(String platform) {
|
|
return '$platform の URL をクリップボードにコピーしました';
|
|
}
|
|
|
|
@override
|
|
String get snackbarFileNotFound => 'ファイルがありません';
|
|
|
|
@override
|
|
String get snackbarSelectExtFile => '.spotiflac-ext ファイルを選択してください';
|
|
|
|
@override
|
|
String get snackbarProviderPrioritySaved => 'プロバイダーの優先度を保存しました';
|
|
|
|
@override
|
|
String get snackbarMetadataProviderSaved => 'メタデータプロバイダーの優先度を保存しました';
|
|
|
|
@override
|
|
String snackbarExtensionInstalled(String extensionName) {
|
|
return '$extensionName をインストールしました。';
|
|
}
|
|
|
|
@override
|
|
String snackbarExtensionUpdated(String extensionName) {
|
|
return '$extensionName を更新しました。';
|
|
}
|
|
|
|
@override
|
|
String get snackbarFailedToInstall => '拡張のインストールに失敗しました';
|
|
|
|
@override
|
|
String get snackbarFailedToUpdate => '拡張の更新に失敗しました';
|
|
|
|
@override
|
|
String get errorRateLimited => 'レート制限';
|
|
|
|
@override
|
|
String get errorRateLimitedMessage =>
|
|
'Too many requests. Please wait a moment before searching again.';
|
|
|
|
@override
|
|
String errorFailedToLoad(String item) {
|
|
return 'Failed to load $item';
|
|
}
|
|
|
|
@override
|
|
String get errorNoTracksFound => 'トラックがありません';
|
|
|
|
@override
|
|
String errorMissingExtensionSource(String item) {
|
|
return '$item を読み込めません: 拡張ソースがありません';
|
|
}
|
|
|
|
@override
|
|
String get statusQueued => 'キュー済み';
|
|
|
|
@override
|
|
String get statusDownloading => 'ダウンロード中';
|
|
|
|
@override
|
|
String get statusFinalizing => '終了処理中';
|
|
|
|
@override
|
|
String get statusCompleted => '完了しました';
|
|
|
|
@override
|
|
String get statusFailed => '失敗しました';
|
|
|
|
@override
|
|
String get statusSkipped => 'スキップしました';
|
|
|
|
@override
|
|
String get statusPaused => '一時停止中';
|
|
|
|
@override
|
|
String get actionPause => '一時停止';
|
|
|
|
@override
|
|
String get actionResume => '再開';
|
|
|
|
@override
|
|
String get actionCancel => 'キャンセル';
|
|
|
|
@override
|
|
String get actionStop => '停止';
|
|
|
|
@override
|
|
String get actionSelect => '選択';
|
|
|
|
@override
|
|
String get actionSelectAll => 'すべて選択';
|
|
|
|
@override
|
|
String get actionDeselect => '選択を解除';
|
|
|
|
@override
|
|
String get actionPaste => '貼り付け';
|
|
|
|
@override
|
|
String get actionImportCsv => 'CSV をインポート';
|
|
|
|
@override
|
|
String get actionRemoveCredentials => '認証情報を削除';
|
|
|
|
@override
|
|
String get actionSaveCredentials => '認証情報を保存';
|
|
|
|
@override
|
|
String selectionSelected(int count) {
|
|
return '$count 個を選択済み';
|
|
}
|
|
|
|
@override
|
|
String get selectionAllSelected => 'すべてのトラックを選択済み';
|
|
|
|
@override
|
|
String get selectionTapToSelect => 'トラックをタップで選択';
|
|
|
|
@override
|
|
String selectionDeleteTracks(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '個のトラック',
|
|
one: '個のトラック',
|
|
);
|
|
return '$count $_temp0を削除';
|
|
}
|
|
|
|
@override
|
|
String get selectionSelectToDelete => 'トラックを選択で削除';
|
|
|
|
@override
|
|
String progressFetchingMetadata(int current, int total) {
|
|
return 'メタデータを取得中... $current/$total';
|
|
}
|
|
|
|
@override
|
|
String get progressReadingCsv => 'CSV を読み取り中...';
|
|
|
|
@override
|
|
String get searchSongs => '曲';
|
|
|
|
@override
|
|
String get searchArtists => 'アーティスト';
|
|
|
|
@override
|
|
String get searchAlbums => 'アルバム';
|
|
|
|
@override
|
|
String get searchPlaylists => 'プレイリスト';
|
|
|
|
@override
|
|
String get tooltipPlay => '再生';
|
|
|
|
@override
|
|
String get tooltipCancel => 'キャンセル';
|
|
|
|
@override
|
|
String get tooltipStop => '停止';
|
|
|
|
@override
|
|
String get tooltipRetry => '再試行';
|
|
|
|
@override
|
|
String get tooltipRemove => '削除';
|
|
|
|
@override
|
|
String get tooltipClear => '消去';
|
|
|
|
@override
|
|
String get tooltipPaste => '貼り付け';
|
|
|
|
@override
|
|
String get filenameFormat => 'ファイル名の形式';
|
|
|
|
@override
|
|
String filenameFormatPreview(String preview) {
|
|
return 'プレビュー: $preview';
|
|
}
|
|
|
|
@override
|
|
String get filenameAvailablePlaceholders => '利用可能なプレースホルダー:';
|
|
|
|
@override
|
|
String filenameHint(Object artist, Object title) {
|
|
return '$artist - $title';
|
|
}
|
|
|
|
@override
|
|
String get folderOrganization => 'フォルダ構成';
|
|
|
|
@override
|
|
String get folderOrganizationNone => '構成がありません';
|
|
|
|
@override
|
|
String get folderOrganizationByArtist => 'アーティスト別';
|
|
|
|
@override
|
|
String get folderOrganizationByAlbum => 'アルバム別';
|
|
|
|
@override
|
|
String get folderOrganizationByArtistAlbum => 'アーティスト/アルバム';
|
|
|
|
@override
|
|
String get folderOrganizationDescription => 'ダウンロードしたファイルをフォルダに整理する';
|
|
|
|
@override
|
|
String get folderOrganizationNoneSubtitle => 'ダウンロードフォルダ内のすべてのファイル';
|
|
|
|
@override
|
|
String get folderOrganizationByArtistSubtitle =>
|
|
'Separate folder for each artist';
|
|
|
|
@override
|
|
String get folderOrganizationByAlbumSubtitle =>
|
|
'Separate folder for each album';
|
|
|
|
@override
|
|
String get folderOrganizationByArtistAlbumSubtitle =>
|
|
'Nested folders for artist and album';
|
|
|
|
@override
|
|
String get updateAvailable => '更新が利用可能です';
|
|
|
|
@override
|
|
String updateNewVersion(String version) {
|
|
return 'バージョン $version が利用可能です';
|
|
}
|
|
|
|
@override
|
|
String get updateDownload => 'ダウンロード';
|
|
|
|
@override
|
|
String get updateLater => '後で';
|
|
|
|
@override
|
|
String get updateChangelog => '更新履歴';
|
|
|
|
@override
|
|
String get updateStartingDownload => 'ダウンロードを開始中...';
|
|
|
|
@override
|
|
String get updateDownloadFailed => 'ダウンロードに失敗しました';
|
|
|
|
@override
|
|
String get updateFailedMessage => '更新のダウンロードに失敗しました';
|
|
|
|
@override
|
|
String get updateNewVersionReady => '新しいバージョンの準備ができています';
|
|
|
|
@override
|
|
String get updateCurrent => '現在';
|
|
|
|
@override
|
|
String get updateNew => '新着';
|
|
|
|
@override
|
|
String get updateDownloading => 'ダウンロード中...';
|
|
|
|
@override
|
|
String get updateWhatsNew => '新着情報';
|
|
|
|
@override
|
|
String get updateDownloadInstall => 'ダウンロードとインストール';
|
|
|
|
@override
|
|
String get updateDontRemind => '通知しない';
|
|
|
|
@override
|
|
String get providerPriority => 'プロバイダーの優先度';
|
|
|
|
@override
|
|
String get providerPrioritySubtitle => 'ドラッグでダウンロードプロバイダーを並べ替え';
|
|
|
|
@override
|
|
String get providerPriorityTitle => 'プロバイダーの優先度';
|
|
|
|
@override
|
|
String get providerPriorityDescription =>
|
|
'Drag to reorder download providers. The app will try providers from top to bottom when downloading tracks.';
|
|
|
|
@override
|
|
String get providerPriorityInfo =>
|
|
'If a track is not available on the first provider, the app will automatically try the next one.';
|
|
|
|
@override
|
|
String get providerBuiltIn => '内蔵';
|
|
|
|
@override
|
|
String get providerExtension => '拡張';
|
|
|
|
@override
|
|
String get metadataProviderPriority => 'メタデータプロバイダーの優先度';
|
|
|
|
@override
|
|
String get metadataProviderPrioritySubtitle =>
|
|
'Order used when fetching track metadata';
|
|
|
|
@override
|
|
String get metadataProviderPriorityTitle => 'メタデータの優先度';
|
|
|
|
@override
|
|
String get metadataProviderPriorityDescription =>
|
|
'Drag to reorder metadata providers. The app will try providers from top to bottom when searching for tracks and fetching metadata.';
|
|
|
|
@override
|
|
String get metadataProviderPriorityInfo =>
|
|
'Deezer has no rate limits and is recommended as primary. Spotify may rate limit after many requests.';
|
|
|
|
@override
|
|
String get metadataNoRateLimits => 'レート制限はありません';
|
|
|
|
@override
|
|
String get metadataMayRateLimit => 'May rate limit';
|
|
|
|
@override
|
|
String get logTitle => 'ログ';
|
|
|
|
@override
|
|
String get logCopy => 'ログをコピー';
|
|
|
|
@override
|
|
String get logClear => 'ログを消去';
|
|
|
|
@override
|
|
String get logShare => 'ログを共有';
|
|
|
|
@override
|
|
String get logEmpty => 'まだログはありません';
|
|
|
|
@override
|
|
String get logCopied => 'ログをクリップボードにコピーしました';
|
|
|
|
@override
|
|
String get logSearchHint => 'ログを検索...';
|
|
|
|
@override
|
|
String get logFilterLevel => 'レベル';
|
|
|
|
@override
|
|
String get logFilterSection => 'フィルター';
|
|
|
|
@override
|
|
String get logShareLogs => 'ログを共有';
|
|
|
|
@override
|
|
String get logClearLogs => 'ログを消去';
|
|
|
|
@override
|
|
String get logClearLogsTitle => 'ログを消去';
|
|
|
|
@override
|
|
String get logClearLogsMessage => 'すべてのログを消去してもよろしいですか?';
|
|
|
|
@override
|
|
String get logIspBlocking => 'ISP のブロックを検出しました';
|
|
|
|
@override
|
|
String get logRateLimited => 'レート制限';
|
|
|
|
@override
|
|
String get logNetworkError => 'ネットワークエラー';
|
|
|
|
@override
|
|
String get logTrackNotFound => 'トラックがありません';
|
|
|
|
@override
|
|
String get logFilterBySeverity => 'Filter logs by severity';
|
|
|
|
@override
|
|
String get logNoLogsYet => 'まだログはありません';
|
|
|
|
@override
|
|
String get logNoLogsYetSubtitle => 'Logs will appear here as you use the app';
|
|
|
|
@override
|
|
String get logIssueSummary => '問題の概要';
|
|
|
|
@override
|
|
String get logIspBlockingDescription =>
|
|
'ISP がダウンロードサービスのアクセスをブロックしている可能性があります';
|
|
|
|
@override
|
|
String get logIspBlockingSuggestion =>
|
|
'VPN を使用するか DNS を 1.1.1.1 または 8.8.8.8 に変更をお試しください';
|
|
|
|
@override
|
|
String get logRateLimitedDescription => 'サービスへのリクエストが多すぎます';
|
|
|
|
@override
|
|
String get logRateLimitedSuggestion =>
|
|
'Wait a few minutes before trying again';
|
|
|
|
@override
|
|
String get logNetworkErrorDescription => '接続の問題が検出されました';
|
|
|
|
@override
|
|
String get logNetworkErrorSuggestion => 'インターネット接続を確認してください';
|
|
|
|
@override
|
|
String get logTrackNotFoundDescription =>
|
|
'Some tracks could not be found on download services';
|
|
|
|
@override
|
|
String get logTrackNotFoundSuggestion =>
|
|
'The track may not be available in lossless quality';
|
|
|
|
@override
|
|
String logTotalErrors(int count) {
|
|
return 'エラーの合計: $count';
|
|
}
|
|
|
|
@override
|
|
String logAffected(String domains) {
|
|
return '影響: $domains';
|
|
}
|
|
|
|
@override
|
|
String logEntriesFiltered(int count) {
|
|
return 'エントリー ($count 個をフィルター済み)';
|
|
}
|
|
|
|
@override
|
|
String logEntries(int count) {
|
|
return 'エントリー ($count)';
|
|
}
|
|
|
|
@override
|
|
String get credentialsTitle => 'Spotify の認証情報';
|
|
|
|
@override
|
|
String get credentialsDescription =>
|
|
'Enter your Client ID and Secret to use your own Spotify application quota.';
|
|
|
|
@override
|
|
String get credentialsClientId => 'クライアント ID';
|
|
|
|
@override
|
|
String get credentialsClientIdHint => 'クライアント ID を貼り付け';
|
|
|
|
@override
|
|
String get credentialsClientSecret => 'クライアントシークレット';
|
|
|
|
@override
|
|
String get credentialsClientSecretHint => 'クライアントシークレットを貼り付け';
|
|
|
|
@override
|
|
String get channelStable => '安定版';
|
|
|
|
@override
|
|
String get channelPreview => 'プレビュー';
|
|
|
|
@override
|
|
String get sectionSearchSource => '検索ソース';
|
|
|
|
@override
|
|
String get sectionDownload => 'ダウンロード';
|
|
|
|
@override
|
|
String get sectionPerformance => 'パフォーマンス';
|
|
|
|
@override
|
|
String get sectionApp => 'アプリ';
|
|
|
|
@override
|
|
String get sectionData => 'データ';
|
|
|
|
@override
|
|
String get sectionDebug => 'デバッグ';
|
|
|
|
@override
|
|
String get sectionService => 'サービス';
|
|
|
|
@override
|
|
String get sectionAudioQuality => 'オーディオ品質';
|
|
|
|
@override
|
|
String get sectionFileSettings => 'ファイル設定';
|
|
|
|
@override
|
|
String get sectionLyrics => '歌詞';
|
|
|
|
@override
|
|
String get lyricsMode => '歌詞モード';
|
|
|
|
@override
|
|
String get lyricsModeDescription =>
|
|
'Choose how lyrics are saved with your downloads';
|
|
|
|
@override
|
|
String get lyricsModeEmbed => 'Embed in file';
|
|
|
|
@override
|
|
String get lyricsModeEmbedSubtitle => 'FLAC メタデータに保存された歌詞';
|
|
|
|
@override
|
|
String get lyricsModeExternal => '外部 .lrc ファイル';
|
|
|
|
@override
|
|
String get lyricsModeExternalSubtitle =>
|
|
'Separate .lrc file for players like Samsung Music';
|
|
|
|
@override
|
|
String get lyricsModeBoth => '両方';
|
|
|
|
@override
|
|
String get lyricsModeBothSubtitle => 'Embed and save .lrc file';
|
|
|
|
@override
|
|
String get sectionColor => 'カラー';
|
|
|
|
@override
|
|
String get sectionTheme => 'テーマ';
|
|
|
|
@override
|
|
String get sectionLayout => 'レイアウト';
|
|
|
|
@override
|
|
String get sectionLanguage => '言語';
|
|
|
|
@override
|
|
String get appearanceLanguage => 'アプリの言語';
|
|
|
|
@override
|
|
String get appearanceLanguageSubtitle => 'お好みの言語を選択してください';
|
|
|
|
@override
|
|
String get settingsAppearanceSubtitle => 'テーマ、カラー、画面';
|
|
|
|
@override
|
|
String get settingsDownloadSubtitle => 'サービス、品質、ファイル名、形式';
|
|
|
|
@override
|
|
String get settingsOptionsSubtitle => 'Fallback, lyrics, cover art, updates';
|
|
|
|
@override
|
|
String get settingsExtensionsSubtitle => 'ダウンロードプロバイダーを管理';
|
|
|
|
@override
|
|
String get settingsLogsSubtitle => 'デバッグのためのアプリログを表示';
|
|
|
|
@override
|
|
String get loadingSharedLink => '共有リンクを読み込み中...';
|
|
|
|
@override
|
|
String get pressBackAgainToExit => 'Press back again to exit';
|
|
|
|
@override
|
|
String get tracksHeader => 'トラック';
|
|
|
|
@override
|
|
String downloadAllCount(int count) {
|
|
return 'すべてダウンロード ($count)';
|
|
}
|
|
|
|
@override
|
|
String tracksCount(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count 個のトラック',
|
|
one: '1 個のトラック',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get trackCopyFilePath => 'ファイルパスをコピー';
|
|
|
|
@override
|
|
String get trackRemoveFromDevice => 'デバイスから削除';
|
|
|
|
@override
|
|
String get trackLoadLyrics => '歌詞を読み込み';
|
|
|
|
@override
|
|
String get trackMetadata => 'メタデータ';
|
|
|
|
@override
|
|
String get trackFileInfo => 'ファイル情報';
|
|
|
|
@override
|
|
String get trackLyrics => '歌詞';
|
|
|
|
@override
|
|
String get trackFileNotFound => 'ファイルがありません';
|
|
|
|
@override
|
|
String get trackOpenInDeezer => 'Deezer で開く';
|
|
|
|
@override
|
|
String get trackOpenInSpotify => 'Spotify で開く';
|
|
|
|
@override
|
|
String get trackTrackName => 'トラック名';
|
|
|
|
@override
|
|
String get trackArtist => 'アーティスト';
|
|
|
|
@override
|
|
String get trackAlbumArtist => 'アルバムアーティスト';
|
|
|
|
@override
|
|
String get trackAlbum => 'アルバム';
|
|
|
|
@override
|
|
String get trackTrackNumber => 'トラック番号';
|
|
|
|
@override
|
|
String get trackDiscNumber => 'ディスク番号';
|
|
|
|
@override
|
|
String get trackDuration => '再生時間';
|
|
|
|
@override
|
|
String get trackAudioQuality => 'オーディオ品質';
|
|
|
|
@override
|
|
String get trackReleaseDate => 'リリース日';
|
|
|
|
@override
|
|
String get trackGenre => 'ジャンル';
|
|
|
|
@override
|
|
String get trackLabel => 'レーベル';
|
|
|
|
@override
|
|
String get trackCopyright => '著作権';
|
|
|
|
@override
|
|
String get trackDownloaded => 'ダウンロード済み';
|
|
|
|
@override
|
|
String get trackCopyLyrics => '歌詞をコピー';
|
|
|
|
@override
|
|
String get trackLyricsNotAvailable => 'このトラックの歌詞は利用できません';
|
|
|
|
@override
|
|
String get trackLyricsTimeout => 'リクエストがタイムアウトしました。後ほどお試しください。';
|
|
|
|
@override
|
|
String get trackLyricsLoadFailed => '歌詞の読み込みに失敗しました';
|
|
|
|
@override
|
|
String get trackEmbedLyrics => 'Embed Lyrics';
|
|
|
|
@override
|
|
String get trackLyricsEmbedded => 'Lyrics embedded successfully';
|
|
|
|
@override
|
|
String get trackInstrumental => 'Instrumental track';
|
|
|
|
@override
|
|
String get trackCopiedToClipboard => 'クリップボードにコピーしました';
|
|
|
|
@override
|
|
String get trackDeleteConfirmTitle => 'デバイスから削除しますか?';
|
|
|
|
@override
|
|
String get trackDeleteConfirmMessage =>
|
|
'This will permanently delete the downloaded file and remove it from your history.';
|
|
|
|
@override
|
|
String trackCannotOpen(String message) {
|
|
return '開けません: $message';
|
|
}
|
|
|
|
@override
|
|
String get dateToday => '今日';
|
|
|
|
@override
|
|
String get dateYesterday => '昨日';
|
|
|
|
@override
|
|
String dateDaysAgo(int count) {
|
|
return '$count 日前';
|
|
}
|
|
|
|
@override
|
|
String dateWeeksAgo(int count) {
|
|
return '$count 週間前';
|
|
}
|
|
|
|
@override
|
|
String dateMonthsAgo(int count) {
|
|
return '$count ヶ月前';
|
|
}
|
|
|
|
@override
|
|
String get concurrentSequential => 'Sequential';
|
|
|
|
@override
|
|
String get concurrentParallel2 => '2 並列';
|
|
|
|
@override
|
|
String get concurrentParallel3 => '3 並列';
|
|
|
|
@override
|
|
String get tapToSeeError => 'タップでエラーの詳細を表示';
|
|
|
|
@override
|
|
String get storeFilterAll => 'すべて';
|
|
|
|
@override
|
|
String get storeFilterMetadata => 'メタデータ';
|
|
|
|
@override
|
|
String get storeFilterDownload => 'ダウンロード';
|
|
|
|
@override
|
|
String get storeFilterUtility => 'ユーティリティ';
|
|
|
|
@override
|
|
String get storeFilterLyrics => '歌詞';
|
|
|
|
@override
|
|
String get storeFilterIntegration => '統合';
|
|
|
|
@override
|
|
String get storeClearFilters => 'フィルターを消去';
|
|
|
|
@override
|
|
String get storeNoResults => '拡張がありません';
|
|
|
|
@override
|
|
String get extensionProviderPriority => 'プロバイダーの優先度';
|
|
|
|
@override
|
|
String get extensionInstallButton => '拡張をインストール';
|
|
|
|
@override
|
|
String get extensionDefaultProvider => 'デフォルト (Deezer/Spotify)';
|
|
|
|
@override
|
|
String get extensionDefaultProviderSubtitle => '内蔵の検索を使用する';
|
|
|
|
@override
|
|
String get extensionAuthor => '作者';
|
|
|
|
@override
|
|
String get extensionId => 'ID';
|
|
|
|
@override
|
|
String get extensionError => 'エラー';
|
|
|
|
@override
|
|
String get extensionCapabilities => '機能';
|
|
|
|
@override
|
|
String get extensionMetadataProvider => 'メタデータのプロバイダー';
|
|
|
|
@override
|
|
String get extensionDownloadProvider => 'ダウンロードのプロバイダー';
|
|
|
|
@override
|
|
String get extensionLyricsProvider => '歌詞のプロバイダー';
|
|
|
|
@override
|
|
String get extensionUrlHandler => 'URL ハンドラ';
|
|
|
|
@override
|
|
String get extensionQualityOptions => '品質のオプション';
|
|
|
|
@override
|
|
String get extensionPostProcessingHooks => 'ポストプロセスフック';
|
|
|
|
@override
|
|
String get extensionPermissions => '権限';
|
|
|
|
@override
|
|
String get extensionSettings => '設定';
|
|
|
|
@override
|
|
String get extensionRemoveButton => '拡張を削除';
|
|
|
|
@override
|
|
String get extensionUpdated => '更新済み';
|
|
|
|
@override
|
|
String get extensionMinAppVersion => '最小のアプリバージョン';
|
|
|
|
@override
|
|
String get extensionCustomTrackMatching => 'カスタムトラックマッチング';
|
|
|
|
@override
|
|
String get extensionPostProcessing => 'ポストプロセス';
|
|
|
|
@override
|
|
String extensionHooksAvailable(int count) {
|
|
return '$count 個のフックが利用可能です';
|
|
}
|
|
|
|
@override
|
|
String extensionPatternsCount(int count) {
|
|
return '$count 個のパターン';
|
|
}
|
|
|
|
@override
|
|
String extensionStrategy(String strategy) {
|
|
return 'ストラテジー: $strategy';
|
|
}
|
|
|
|
@override
|
|
String get extensionsProviderPrioritySection => 'プロバイダーの優先度';
|
|
|
|
@override
|
|
String get extensionsInstalledSection => 'インストール済みの拡張';
|
|
|
|
@override
|
|
String get extensionsNoExtensions => '拡張はインストールされていません';
|
|
|
|
@override
|
|
String get extensionsNoExtensionsSubtitle =>
|
|
'新しいプロバイダーを追加するには .spotiflac-ext ファイルをインストールします';
|
|
|
|
@override
|
|
String get extensionsInstallButton => '拡張をインストール';
|
|
|
|
@override
|
|
String get extensionsInfoTip =>
|
|
'拡張は新しいメタデータとダウンロードプロバイダーを追加することがあります。信頼できるソースからの拡張のみをインストールしてください。';
|
|
|
|
@override
|
|
String get extensionsInstalledSuccess => '拡張のインストールが成功しました';
|
|
|
|
@override
|
|
String get extensionsDownloadPriority => 'ダウンロードの優先度';
|
|
|
|
@override
|
|
String get extensionsDownloadPrioritySubtitle => 'ダウンロードサービスの順序を設定';
|
|
|
|
@override
|
|
String get extensionsNoDownloadProvider => 'ダウンロードプロバイダーの拡張はありません';
|
|
|
|
@override
|
|
String get extensionsMetadataPriority => 'メタデータの優先度';
|
|
|
|
@override
|
|
String get extensionsMetadataPrioritySubtitle => '検索とメタデータソースの順序を設定';
|
|
|
|
@override
|
|
String get extensionsNoMetadataProvider => 'メタデータプロバイダーの拡張はありません';
|
|
|
|
@override
|
|
String get extensionsSearchProvider => '検索のプロバイダー';
|
|
|
|
@override
|
|
String get extensionsNoCustomSearch => 'カスタム検索の拡張はありません';
|
|
|
|
@override
|
|
String get extensionsSearchProviderDescription => 'トラックの検索に使用するサービスを選択してください';
|
|
|
|
@override
|
|
String get extensionsCustomSearch => 'カスタム検索';
|
|
|
|
@override
|
|
String get extensionsErrorLoading => '拡張の読み込みエラー';
|
|
|
|
@override
|
|
String get qualityFlacLossless => 'FLAC ロスレス';
|
|
|
|
@override
|
|
String get qualityFlacLosslessSubtitle => '16-bit / 44.1kHz';
|
|
|
|
@override
|
|
String get qualityHiResFlac => 'ハイレゾ FLAC';
|
|
|
|
@override
|
|
String get qualityHiResFlacSubtitle => '24-bit / 最大 96kHz';
|
|
|
|
@override
|
|
String get qualityHiResFlacMax => 'ハイレゾ FLAC 最大';
|
|
|
|
@override
|
|
String get qualityHiResFlacMaxSubtitle => '24-bit / 最大 192kHz';
|
|
|
|
@override
|
|
String get qualityLossy => 'Lossy';
|
|
|
|
@override
|
|
String get qualityLossyMp3Subtitle => 'MP3 320kbps (converted from FLAC)';
|
|
|
|
@override
|
|
String get qualityLossyOpusSubtitle => 'Opus 128kbps (converted from FLAC)';
|
|
|
|
@override
|
|
String get enableLossyOption => 'Enable Lossy Option';
|
|
|
|
@override
|
|
String get enableLossyOptionSubtitleOn => 'Lossy quality option is available';
|
|
|
|
@override
|
|
String get enableLossyOptionSubtitleOff =>
|
|
'Downloads FLAC then converts to lossy format';
|
|
|
|
@override
|
|
String get lossyFormat => 'Lossy Format';
|
|
|
|
@override
|
|
String get lossyFormatDescription => 'Choose the lossy format for conversion';
|
|
|
|
@override
|
|
String get lossyFormatMp3Subtitle => '320kbps, best compatibility';
|
|
|
|
@override
|
|
String get lossyFormatOpusSubtitle =>
|
|
'128kbps, better quality at smaller size';
|
|
|
|
@override
|
|
String get qualityNote => '実際の品質はサービスからのトラックの可用性に依存します';
|
|
|
|
@override
|
|
String get downloadAskBeforeDownload => 'ダウンロード前に確認する';
|
|
|
|
@override
|
|
String get downloadDirectory => 'ダウンロードディレクトリ';
|
|
|
|
@override
|
|
String get downloadSeparateSinglesFolder => 'シングルのフォルダを分割';
|
|
|
|
@override
|
|
String get downloadAlbumFolderStructure => 'アルバムフォルダの構造';
|
|
|
|
@override
|
|
String get downloadSaveFormat => '形式を保存';
|
|
|
|
@override
|
|
String get downloadSelectService => 'サービスを選択';
|
|
|
|
@override
|
|
String get downloadSelectQuality => '品質を選択';
|
|
|
|
@override
|
|
String get downloadFrom => 'ダウンロード元';
|
|
|
|
@override
|
|
String get downloadDefaultQualityLabel => 'デフォルトの品質';
|
|
|
|
@override
|
|
String get downloadBestAvailable => 'おすすめ';
|
|
|
|
@override
|
|
String get folderNone => 'なし';
|
|
|
|
@override
|
|
String get folderNoneSubtitle => 'すべてのファイルをダウンロードフォルダに保存します';
|
|
|
|
@override
|
|
String get folderArtist => 'アーティスト';
|
|
|
|
@override
|
|
String get folderArtistSubtitle => 'アーティスト名/ファイル名';
|
|
|
|
@override
|
|
String get folderAlbum => 'アルバム';
|
|
|
|
@override
|
|
String get folderAlbumSubtitle => 'アルバム名/ファイル名';
|
|
|
|
@override
|
|
String get folderArtistAlbum => 'アーティスト/アルバム';
|
|
|
|
@override
|
|
String get folderArtistAlbumSubtitle => 'アーティスト名/アルバム名/ファイル名';
|
|
|
|
@override
|
|
String get serviceTidal => 'Tidal';
|
|
|
|
@override
|
|
String get serviceQobuz => 'Qobuz';
|
|
|
|
@override
|
|
String get serviceAmazon => 'Amazon';
|
|
|
|
@override
|
|
String get serviceDeezer => 'Deezer';
|
|
|
|
@override
|
|
String get serviceSpotify => 'Spotify';
|
|
|
|
@override
|
|
String get appearanceAmoledDark => 'AMOLED ダーク';
|
|
|
|
@override
|
|
String get appearanceAmoledDarkSubtitle => 'ピュアブラックの背景';
|
|
|
|
@override
|
|
String get appearanceChooseAccentColor => 'アクセントカラーを選択';
|
|
|
|
@override
|
|
String get appearanceChooseTheme => 'テーマモード';
|
|
|
|
@override
|
|
String get queueTitle => 'ダウンロードキュー';
|
|
|
|
@override
|
|
String get queueClearAll => 'すべて消去';
|
|
|
|
@override
|
|
String get queueClearAllMessage => 'すべてのダウンロードを消去してもよろしいですか?';
|
|
|
|
@override
|
|
String get queueExportFailed => 'Export';
|
|
|
|
@override
|
|
String get queueExportFailedSuccess =>
|
|
'Failed downloads exported to TXT file';
|
|
|
|
@override
|
|
String get queueExportFailedClear => 'Clear Failed';
|
|
|
|
@override
|
|
String get queueExportFailedError => 'Failed to export downloads';
|
|
|
|
@override
|
|
String get settingsAutoExportFailed => 'Auto-export failed downloads';
|
|
|
|
@override
|
|
String get settingsAutoExportFailedSubtitle =>
|
|
'Save failed downloads to TXT file automatically';
|
|
|
|
@override
|
|
String get settingsDownloadNetwork => 'Download Network';
|
|
|
|
@override
|
|
String get settingsDownloadNetworkAny => 'WiFi + Mobile Data';
|
|
|
|
@override
|
|
String get settingsDownloadNetworkWifiOnly => 'WiFi Only';
|
|
|
|
@override
|
|
String get settingsDownloadNetworkSubtitle =>
|
|
'Choose which network to use for downloads. When set to WiFi Only, downloads will pause on mobile data.';
|
|
|
|
@override
|
|
String get settingsCloudSave => 'Cloud Save';
|
|
|
|
@override
|
|
String get settingsCloudSaveSubtitle => 'Auto-upload to NAS or cloud storage';
|
|
|
|
@override
|
|
String get cloudSettingsTitle => 'Cloud Save';
|
|
|
|
@override
|
|
String get cloudSettingsSectionGeneral => 'General';
|
|
|
|
@override
|
|
String get cloudSettingsEnable => 'Enable Cloud Upload';
|
|
|
|
@override
|
|
String get cloudSettingsEnableSubtitle =>
|
|
'Automatically upload files after download completes';
|
|
|
|
@override
|
|
String get cloudSettingsSectionProvider => 'Cloud Provider';
|
|
|
|
@override
|
|
String get cloudSettingsProvider => 'Provider';
|
|
|
|
@override
|
|
String get cloudSettingsProviderDescription =>
|
|
'Select where to upload your downloaded files';
|
|
|
|
@override
|
|
String get cloudSettingsSectionServer => 'Server Configuration';
|
|
|
|
@override
|
|
String get cloudSettingsServerUrl => 'Server URL';
|
|
|
|
@override
|
|
String get cloudSettingsUsername => 'Username';
|
|
|
|
@override
|
|
String get cloudSettingsPassword => 'Password';
|
|
|
|
@override
|
|
String get cloudSettingsRemotePath => 'Remote Folder Path';
|
|
|
|
@override
|
|
String get cloudSettingsTestConnection => 'Test Connection';
|
|
|
|
@override
|
|
String get cloudSettingsInfo =>
|
|
'Downloaded files will be automatically uploaded to your cloud storage after download completes. Original files are kept on your device.';
|
|
|
|
@override
|
|
String get cloudSettingsUploadQueue => 'Upload Queue';
|
|
|
|
@override
|
|
String get cloudSettingsRetryFailed => 'Retry Failed';
|
|
|
|
@override
|
|
String get cloudSettingsClearDone => 'Clear Done';
|
|
|
|
@override
|
|
String get cloudSettingsRecentUploads => 'Recent Uploads';
|
|
|
|
@override
|
|
String get cloudSettingsResetSftpHostKey => 'Reset SFTP Host Key';
|
|
|
|
@override
|
|
String get cloudSettingsResetAllSftpHostKeys => 'Reset All SFTP Host Keys';
|
|
|
|
@override
|
|
String get cloudSettingsResetSftpHostKeyMessage =>
|
|
'This will forget the saved host key for this server. The next connection will save a new key.';
|
|
|
|
@override
|
|
String get cloudSettingsResetAllSftpHostKeysMessage =>
|
|
'This will forget all saved SFTP host keys. Next connections will save new keys.';
|
|
|
|
@override
|
|
String get cloudSettingsResetConfirm => 'Reset';
|
|
|
|
@override
|
|
String get cloudSettingsResetAllConfirm => 'Reset All';
|
|
|
|
@override
|
|
String get cloudSettingsServerUrlRequired => 'Server URL is required';
|
|
|
|
@override
|
|
String get cloudSettingsResetSftpHostKeySuccess =>
|
|
'SFTP host key reset. Connect again to save a new key.';
|
|
|
|
@override
|
|
String get cloudSettingsResetSftpHostKeyNotFound =>
|
|
'No stored host key found for this server.';
|
|
|
|
@override
|
|
String cloudSettingsResetAllSftpHostKeysCleared(num count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'Cleared $count SFTP host keys.',
|
|
one: 'Cleared 1 SFTP host key.',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get cloudSettingsResetAllSftpHostKeysNone =>
|
|
'No stored SFTP host keys found.';
|
|
|
|
@override
|
|
String get cloudSettingsAllowHttpTitle => 'Allow HTTP (Insecure)';
|
|
|
|
@override
|
|
String get cloudSettingsAllowHttpSubtitle =>
|
|
'Sends credentials without TLS. Not recommended.';
|
|
|
|
@override
|
|
String get cloudSettingsAllowHttpMessage =>
|
|
'HTTP does not encrypt your credentials. Only enable if you trust the network.';
|
|
|
|
@override
|
|
String get cloudSettingsAllowHttpConfirm => 'Allow HTTP';
|
|
|
|
@override
|
|
String get webdavErrorInvalidScheme => 'Invalid URL: scheme is required';
|
|
|
|
@override
|
|
String get webdavErrorHttpsRequired => 'WebDAV URL must use https';
|
|
|
|
@override
|
|
String get webdavErrorInvalidHost => 'Invalid URL: hostname is required';
|
|
|
|
@override
|
|
String get webdavErrorAuthFailed =>
|
|
'Authentication failed. Check username and password.';
|
|
|
|
@override
|
|
String get webdavErrorForbidden =>
|
|
'Access denied. Check permissions on the server.';
|
|
|
|
@override
|
|
String get webdavErrorNotFound => 'Server path not found. Check the URL.';
|
|
|
|
@override
|
|
String get webdavErrorConnectionFailed =>
|
|
'Cannot connect to server. Check URL and network.';
|
|
|
|
@override
|
|
String get webdavErrorTlsError =>
|
|
'SSL/TLS error. Server certificate may be invalid.';
|
|
|
|
@override
|
|
String get webdavErrorTimeout =>
|
|
'Connection timed out. Server may be unreachable.';
|
|
|
|
@override
|
|
String get webdavErrorInsufficientStorage =>
|
|
'Insufficient storage on server.';
|
|
|
|
@override
|
|
String get webdavErrorUnknown => 'Upload failed. Please try again.';
|
|
|
|
@override
|
|
String get queueEmpty => 'キューにダウンロードがありません';
|
|
|
|
@override
|
|
String get queueEmptySubtitle => 'ホーム画面からトラックを追加';
|
|
|
|
@override
|
|
String get queueClearCompleted => '完了済みを消去';
|
|
|
|
@override
|
|
String get queueDownloadFailed => 'ダウンロードに失敗しました';
|
|
|
|
@override
|
|
String get queueTrackLabel => 'トラック:';
|
|
|
|
@override
|
|
String get queueArtistLabel => 'アーティスト:';
|
|
|
|
@override
|
|
String get queueErrorLabel => 'エラー:';
|
|
|
|
@override
|
|
String get queueUnknownError => '不明なエラー';
|
|
|
|
@override
|
|
String get albumFolderArtistAlbum => 'アーティスト / アルバム';
|
|
|
|
@override
|
|
String get albumFolderArtistAlbumSubtitle => 'アルバム/アーティスト名/アルバム名/';
|
|
|
|
@override
|
|
String get albumFolderArtistYearAlbum => 'アーティスト / [年] アルバム';
|
|
|
|
@override
|
|
String get albumFolderArtistYearAlbumSubtitle => 'アルバム/アーティスト名/[2005] アルバム名/';
|
|
|
|
@override
|
|
String get albumFolderAlbumOnly => 'アルバムのみ';
|
|
|
|
@override
|
|
String get albumFolderAlbumOnlySubtitle => 'アルバム/アルバム名/';
|
|
|
|
@override
|
|
String get albumFolderYearAlbum => '[年] アルバム';
|
|
|
|
@override
|
|
String get albumFolderYearAlbumSubtitle => 'アルバム/[2005] アルバム名/';
|
|
|
|
@override
|
|
String get albumFolderArtistAlbumSingles => 'Artist / Album + Singles';
|
|
|
|
@override
|
|
String get albumFolderArtistAlbumSinglesSubtitle =>
|
|
'Artist/Album/ and Artist/Singles/';
|
|
|
|
@override
|
|
String get downloadedAlbumDeleteSelected => '選択済みを削除';
|
|
|
|
@override
|
|
String downloadedAlbumDeleteMessage(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'tracks',
|
|
one: 'track',
|
|
);
|
|
return 'Delete $count $_temp0 from this album?\n\nThis will also delete the files from storage.';
|
|
}
|
|
|
|
@override
|
|
String get downloadedAlbumTracksHeader => 'トラック';
|
|
|
|
@override
|
|
String downloadedAlbumDownloadedCount(int count) {
|
|
return '$count 個をダウンロード済み';
|
|
}
|
|
|
|
@override
|
|
String downloadedAlbumSelectedCount(int count) {
|
|
return '$count 個を選択済み';
|
|
}
|
|
|
|
@override
|
|
String get downloadedAlbumAllSelected => 'すべてのトラックを選択済み';
|
|
|
|
@override
|
|
String get downloadedAlbumTapToSelect => 'トラックをタップで選択';
|
|
|
|
@override
|
|
String downloadedAlbumDeleteCount(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '個のトラック',
|
|
one: '個のトラック',
|
|
);
|
|
return '$count $_temp0を削除';
|
|
}
|
|
|
|
@override
|
|
String get downloadedAlbumSelectToDelete => 'トラックを選択で削除';
|
|
|
|
@override
|
|
String downloadedAlbumDiscHeader(int discNumber) {
|
|
return 'ディスク $discNumber';
|
|
}
|
|
|
|
@override
|
|
String get utilityFunctions => 'ユーティリティ機能';
|
|
|
|
@override
|
|
String get recentTypeArtist => 'アーティスト';
|
|
|
|
@override
|
|
String get recentTypeAlbum => 'アルバム';
|
|
|
|
@override
|
|
String get recentTypeSong => '曲';
|
|
|
|
@override
|
|
String get recentTypePlaylist => 'プレイリスト';
|
|
|
|
@override
|
|
String recentPlaylistInfo(String name) {
|
|
return 'プレイリスト: $name';
|
|
}
|
|
|
|
@override
|
|
String errorGeneric(String message) {
|
|
return 'エラー: $message';
|
|
}
|
|
|
|
@override
|
|
String get discographyDownload => 'ディスコグラフィをダウンロード';
|
|
|
|
@override
|
|
String get discographyDownloadAll => 'すべてダウンロード';
|
|
|
|
@override
|
|
String discographyDownloadAllSubtitle(int count, int albumCount) {
|
|
return '$albumCount 個のリリースから $count 個のトラック';
|
|
}
|
|
|
|
@override
|
|
String get discographyAlbumsOnly => 'アルバムのみ';
|
|
|
|
@override
|
|
String discographyAlbumsOnlySubtitle(int count, int albumCount) {
|
|
return '$count tracks from $albumCount albums';
|
|
}
|
|
|
|
@override
|
|
String get discographySinglesOnly => 'シングルと EP のみ';
|
|
|
|
@override
|
|
String discographySinglesOnlySubtitle(int count, int albumCount) {
|
|
return '$count tracks from $albumCount singles';
|
|
}
|
|
|
|
@override
|
|
String get discographySelectAlbums => 'アルバムを選択...';
|
|
|
|
@override
|
|
String get discographySelectAlbumsSubtitle =>
|
|
'Choose specific albums or singles';
|
|
|
|
@override
|
|
String get discographyFetchingTracks => 'トラックを取得中です...';
|
|
|
|
@override
|
|
String discographyFetchingAlbum(int current, int total) {
|
|
return 'Fetching $current of $total...';
|
|
}
|
|
|
|
@override
|
|
String discographySelectedCount(int count) {
|
|
return '$count 個を選択済み';
|
|
}
|
|
|
|
@override
|
|
String get discographyDownloadSelected => '選択済みをダウンロード';
|
|
|
|
@override
|
|
String discographyAddedToQueue(int count) {
|
|
return 'Added $count tracks to queue';
|
|
}
|
|
|
|
@override
|
|
String discographySkippedDownloaded(int added, int skipped) {
|
|
return '$added added, $skipped already downloaded';
|
|
}
|
|
|
|
@override
|
|
String get discographyNoAlbums => '利用可能なアルバムがありません';
|
|
|
|
@override
|
|
String get discographyFailedToFetch => '一部のアルバムの取得に失敗しました';
|
|
|
|
@override
|
|
String get sectionStorageAccess => 'Storage Access';
|
|
|
|
@override
|
|
String get allFilesAccess => 'All Files Access';
|
|
|
|
@override
|
|
String get allFilesAccessEnabledSubtitle => 'Can write to any folder';
|
|
|
|
@override
|
|
String get allFilesAccessDisabledSubtitle => 'Limited to media folders only';
|
|
|
|
@override
|
|
String get allFilesAccessDescription =>
|
|
'Enable this if you encounter write errors when saving to custom folders. Android 13+ restricts access to certain directories by default.';
|
|
|
|
@override
|
|
String get allFilesAccessDeniedMessage =>
|
|
'Permission was denied. Please enable \'All files access\' manually in system settings.';
|
|
|
|
@override
|
|
String get allFilesAccessDisabledMessage =>
|
|
'All Files Access disabled. The app will use limited storage access.';
|
|
|
|
@override
|
|
String get settingsLocalLibrary => 'Local Library';
|
|
|
|
@override
|
|
String get settingsLocalLibrarySubtitle => 'Scan music & detect duplicates';
|
|
|
|
@override
|
|
String get libraryTitle => 'Local Library';
|
|
|
|
@override
|
|
String get libraryStatus => 'Library Status';
|
|
|
|
@override
|
|
String get libraryScanSettings => 'Scan Settings';
|
|
|
|
@override
|
|
String get libraryEnableLocalLibrary => 'Enable Local Library';
|
|
|
|
@override
|
|
String get libraryEnableLocalLibrarySubtitle =>
|
|
'Scan and track your existing music';
|
|
|
|
@override
|
|
String get libraryFolder => 'Library Folder';
|
|
|
|
@override
|
|
String get libraryFolderHint => 'Tap to select folder';
|
|
|
|
@override
|
|
String get libraryShowDuplicateIndicator => 'Show Duplicate Indicator';
|
|
|
|
@override
|
|
String get libraryShowDuplicateIndicatorSubtitle =>
|
|
'Show when searching for existing tracks';
|
|
|
|
@override
|
|
String get libraryActions => 'Actions';
|
|
|
|
@override
|
|
String get libraryScan => 'Scan Library';
|
|
|
|
@override
|
|
String get libraryScanSubtitle => 'Scan for audio files';
|
|
|
|
@override
|
|
String get libraryScanSelectFolderFirst => 'Select a folder first';
|
|
|
|
@override
|
|
String get libraryCleanupMissingFiles => 'Cleanup Missing Files';
|
|
|
|
@override
|
|
String get libraryCleanupMissingFilesSubtitle =>
|
|
'Remove entries for files that no longer exist';
|
|
|
|
@override
|
|
String get libraryClear => 'Clear Library';
|
|
|
|
@override
|
|
String get libraryClearSubtitle => 'Remove all scanned tracks';
|
|
|
|
@override
|
|
String get libraryClearConfirmTitle => 'Clear Library';
|
|
|
|
@override
|
|
String get libraryClearConfirmMessage =>
|
|
'This will remove all scanned tracks from your library. Your actual music files will not be deleted.';
|
|
|
|
@override
|
|
String get libraryAbout => 'About Local Library';
|
|
|
|
@override
|
|
String get libraryAboutDescription =>
|
|
'Scans your existing music collection to detect duplicates when downloading. Supports FLAC, M4A, MP3, Opus, and OGG formats. Metadata is read from file tags when available.';
|
|
|
|
@override
|
|
String libraryTracksCount(int count) {
|
|
return '$count tracks';
|
|
}
|
|
|
|
@override
|
|
String libraryLastScanned(String time) {
|
|
return 'Last scanned: $time';
|
|
}
|
|
|
|
@override
|
|
String get libraryLastScannedNever => 'Never';
|
|
|
|
@override
|
|
String get libraryScanning => 'Scanning...';
|
|
|
|
@override
|
|
String libraryScanProgress(String progress, int total) {
|
|
return '$progress% of $total files';
|
|
}
|
|
|
|
@override
|
|
String get libraryInLibrary => 'In Library';
|
|
|
|
@override
|
|
String libraryRemovedMissingFiles(int count) {
|
|
return 'Removed $count missing files from library';
|
|
}
|
|
|
|
@override
|
|
String get libraryCleared => 'Library cleared';
|
|
|
|
@override
|
|
String get libraryStorageAccessRequired => 'Storage Access Required';
|
|
|
|
@override
|
|
String get libraryStorageAccessMessage =>
|
|
'SpotiFLAC needs storage access to scan your music library. Please grant permission in settings.';
|
|
|
|
@override
|
|
String get libraryFolderNotExist => 'Selected folder does not exist';
|
|
|
|
@override
|
|
String get librarySourceDownloaded => 'Downloaded';
|
|
|
|
@override
|
|
String get librarySourceLocal => 'Local';
|
|
|
|
@override
|
|
String get libraryFilterAll => 'All';
|
|
|
|
@override
|
|
String get libraryFilterDownloaded => 'Downloaded';
|
|
|
|
@override
|
|
String get libraryFilterLocal => 'Local';
|
|
|
|
@override
|
|
String get libraryFilterTitle => 'Filters';
|
|
|
|
@override
|
|
String get libraryFilterReset => 'Reset';
|
|
|
|
@override
|
|
String get libraryFilterApply => 'Apply';
|
|
|
|
@override
|
|
String get libraryFilterSource => 'Source';
|
|
|
|
@override
|
|
String get libraryFilterQuality => 'Quality';
|
|
|
|
@override
|
|
String get libraryFilterQualityHiRes => 'Hi-Res (24bit)';
|
|
|
|
@override
|
|
String get libraryFilterQualityCD => 'CD (16bit)';
|
|
|
|
@override
|
|
String get libraryFilterQualityLossy => 'Lossy';
|
|
|
|
@override
|
|
String get libraryFilterFormat => 'Format';
|
|
|
|
@override
|
|
String get libraryFilterDate => 'Date Added';
|
|
|
|
@override
|
|
String get libraryFilterDateToday => 'Today';
|
|
|
|
@override
|
|
String get libraryFilterDateWeek => 'This Week';
|
|
|
|
@override
|
|
String get libraryFilterDateMonth => 'This Month';
|
|
|
|
@override
|
|
String get libraryFilterDateYear => 'This Year';
|
|
|
|
@override
|
|
String libraryFilterActive(int count) {
|
|
return '$count filter(s) active';
|
|
}
|
|
|
|
@override
|
|
String get timeJustNow => 'Just now';
|
|
|
|
@override
|
|
String timeMinutesAgo(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count minutes ago',
|
|
one: '1 minute ago',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String timeHoursAgo(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count hours ago',
|
|
one: '1 hour ago',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get cloudProviderWebdav => 'WebDAV (Synology, Nextcloud, QNAP)';
|
|
|
|
@override
|
|
String get cloudProviderSftp => 'SFTP (SSH File Transfer)';
|
|
|
|
@override
|
|
String get cloudProviderNotConfigured => 'Not Configured';
|
|
|
|
@override
|
|
String get cloudProviderWebdavTitle => 'WebDAV';
|
|
|
|
@override
|
|
String get cloudProviderWebdavSubtitle =>
|
|
'Synology, Nextcloud, QNAP, ownCloud';
|
|
|
|
@override
|
|
String get cloudProviderSftpTitle => 'SFTP';
|
|
|
|
@override
|
|
String get cloudProviderSftpSubtitle => 'SSH File Transfer Protocol';
|
|
|
|
@override
|
|
String get cloudTestErrorServerUrlRequired => 'Server URL is required';
|
|
|
|
@override
|
|
String get cloudTestErrorCredentialsRequired =>
|
|
'Username and password are required';
|
|
|
|
@override
|
|
String get cloudTestSuccessWebdav => 'Connected to WebDAV server';
|
|
|
|
@override
|
|
String get cloudTestSuccessSftp => 'Connected to SFTP server';
|
|
|
|
@override
|
|
String get cloudTestErrorNoProvider => 'No provider selected';
|
|
|
|
@override
|
|
String connectionTestSuccess(String message) {
|
|
return 'Success: $message';
|
|
}
|
|
|
|
@override
|
|
String get uploadStatusPending => 'Pending';
|
|
|
|
@override
|
|
String get uploadStatusUploading => 'Uploading';
|
|
|
|
@override
|
|
String get uploadStatusDone => 'Done';
|
|
|
|
@override
|
|
String get uploadStatusFailed => 'Failed';
|
|
|
|
@override
|
|
String get cloudStatusDisabled => 'Cloud Save Off';
|
|
|
|
@override
|
|
String get cloudStatusDisabledSubtitle => 'Enable to auto-upload tracks';
|
|
|
|
@override
|
|
String get cloudStatusNoProvider => 'Select Provider';
|
|
|
|
@override
|
|
String get cloudStatusNoProviderSubtitle => 'Choose a cloud service';
|
|
|
|
@override
|
|
String get cloudStatusNotConfigured => 'Setup Required';
|
|
|
|
@override
|
|
String get cloudStatusNotConfiguredSubtitle =>
|
|
'Configure your server details';
|
|
|
|
@override
|
|
String get cloudStatusActive => 'Connected';
|
|
}
|