From 666426fc286db1ed7056e72a6b24de2048508c7a Mon Sep 17 00:00:00 2001 From: InstaZDLL Date: Tue, 26 May 2026 02:27:03 +0200 Subject: [PATCH 1/2] chore(translations): apply translation validation pass across 16 locales MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ran secrets/validate-translations.mjs against every non-en locale and applied the model-suggested fixes after spot-checking each claim against en.json. Net: 16 files, ~340 individual corrections. Categories applied: - Literal-MT false friends in music UI: cover → entrance fee, track → footprint, plays → games, library → public library / bookshelf, pitch translated as key/tone, queue as generic waiting line, bitrate as flow rate, etc. Caught across most locales. - Plural / grammar bugs: Russian *_few backfilled (one/few/many is three distinct forms), Turkish nouns kept singular after a number ({{count}} parça not parçalar), Korean dropped the spurious 들 pluraliser after counts, Japanese counter words corrected (曲 for tracks, 枚 for albums, 件 for items, 組 for artists). - Untranslated UI jargon left in English on recent feature adds (player bar, covers, tray, local-first, EQ preset names, mood-radio category titles, equalizer presets). - Placeholder integrity: rescued an es.json `` rename that would have broken the runtime substitution, fixed hi.json `<नाम>` variant of the same shape. - Korean register normalisation: -습니다 / -ㅂ니다 endings for actions and noun forms for labels in Settings + modals, dropped casual -해요. - Chinese punctuation: half-width → full-width in CJK strings. - Reversed-meaning fixes: trackActions.addToPlaylistNamed / removeFromPlaylistNamed were reading "add the playlist to the track" in FR and similar — restored "Add to {{name}}" semantics. Categories deliberately skipped: - player.controls.repeatAll / repeatOne — the model flagged these as source typos but en.json is intentional (aria-label cycle-next pattern: the label describes what the NEXT click does, not the current state). Verified usage in PlaybackControls.tsx. - Brand identifiers "Daily Mix" and "On Repeat" left verbatim — same policy as WaveFlow / Last.fm / Deezer / ReplayGain / LRCLIB / BPM in CLAUDE.md (smart-playlist family names are part of the product surface, not localisable copy). - Pure terminology renames from §5 of each report (titre vs morceau in FR, etc.) — informational suggestions, not bugs. - Pure register style swings when the rest of the locale wasn't consistent enough to call one form canonical. Structural check via bun secrets/validate-translations.mjs --dry-run clean afterwards: zero missing keys, zero broken placeholders, zero real extra keys (the AR _zero/_two/_few/_many and RU _few plural variants the script flags are legitimate i18next per-locale plural forms, not bugs). --- src/i18n/locales/ar.json | 88 +++++++++++++++---------------- src/i18n/locales/de.json | 58 ++++++++++----------- src/i18n/locales/es.json | 70 ++++++++++++------------- src/i18n/locales/fr.json | 88 +++++++++++++++---------------- src/i18n/locales/hi.json | 42 +++++++-------- src/i18n/locales/id.json | 36 ++++++------- src/i18n/locales/it.json | 48 ++++++++--------- src/i18n/locales/ja.json | 64 +++++++++++------------ src/i18n/locales/ko.json | 48 ++++++++--------- src/i18n/locales/nl.json | 92 ++++++++++++++++---------------- src/i18n/locales/pt-BR.json | 38 +++++++------- src/i18n/locales/pt.json | 32 ++++++------ src/i18n/locales/ru.json | 101 +++++++++++++++++++++++++----------- src/i18n/locales/tr.json | 78 ++++++++++++++-------------- src/i18n/locales/zh-CN.json | 65 +++++++++++------------ src/i18n/locales/zh-TW.json | 65 +++++++++++------------ 16 files changed, 521 insertions(+), 492 deletions(-) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 82f81f1..316bc93 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -91,7 +91,7 @@ "description": "تم فحص مكتبتك وهي جاهزة للتشغيل.", "nextSteps": "الخطوات التالية:", "bulletExplore": "استكشف مكتبتك عبر علامات التبويب «المكتبة» و«الألبومات» و«الفنانون»", - "bulletQueue": "أنشئ أول قائمة تشغيل لك بالنقر على مقطع", + "bulletQueue": "أنشئ أول قائمة انتظار لك بالنقر على أغنية", "bulletSettings": "اضبط التفاصيل من الشريط الجانبي (المظهر، التكاملات…)" }, "actions": { @@ -155,7 +155,7 @@ "new": "جديد" }, "nav": { - "tracks": "المقاطع", + "tracks": "الأغاني", "albums": "الألبومات", "artists": "الفنانون", "genres": "الأنواع", @@ -248,7 +248,7 @@ "playlists": "قوائم التشغيل" }, "moodRadio": { - "title": "Mood Radio", + "title": "راديو المزاج", "subtitle": "مصفّاة حسب الإيقاع والطاقة", "trackCount_one": "{{count}} مقطع", "trackCount_other": "{{count}} مقطع", @@ -259,7 +259,7 @@ "subtitle": "إيقاعات هادئة للتركيز" }, "chill": { - "title": "Chill", + "title": "استرخاء", "subtitle": "استماع خفيف للاسترخاء" }, "workout": { @@ -327,7 +327,7 @@ } }, "tabs": { - "morceaux": "المقاطع", + "morceaux": "الأغاني", "albums": "الألبومات", "artistes": "الفنانون", "genres": "الأنواع", @@ -573,9 +573,9 @@ "subtitle": "الإيقاع الذي رافق سنتك", "loudness": "متوسط الجهارة: {{lufs}} LUFS", "energy": { - "chill": "Chill", + "chill": "استرخاء", "warm": "دافئ", - "groove": "Groove", + "groove": "إيقاع", "energetic": "حيوي", "fire": "حماسي" } @@ -607,7 +607,7 @@ }, "outro": { "title": "شكرًا لاستماعك مع WaveFlow", - "subtitle": "واصل الاستكشاف — يتحدث Wrapped خاصتك في الوقت الفعلي.", + "subtitle": "واصل الاستكشاف — يتم تحديث ملخصك السنوي في الوقت الفعلي.", "cta": "العودة إلى الرئيسية" } }, @@ -684,24 +684,24 @@ "title": "سرعة التشغيل", "slider": "شريط السرعة", "custom": "سرعة مخصصة", - "pitchHint": "الطبقة تتبع السرعة (دون time-stretching)." + "pitchHint": "الطبقة تتبع السرعة (دون تمديد الوقت)." }, "seek": "الموضع" }, "queue": { - "title": "قائمة التشغيل", + "title": "قائمة الانتظار", "inactive": "غير نشطة", - "count_zero": "0 مقطع", - "count_one": "{{count}} مقطع", - "count_other": "{{count}} مقطع", + "count_zero": "0 أغنية", + "count_one": "{{count}} أغنية", + "count_other": "{{count}} أغنية", "emptyTitle": "لا شيء للاستماع إليه", - "emptyDescription": "شغّل مقطعًا من مكتبتك لملء القائمة.", + "emptyDescription": "شغّل أغنية من مكتبتك لملء قائمة الانتظار.", "nowPlaying": "قيد التشغيل", "upNext_zero": "التالي", "upNext_one": "التالي · {{count}} مقطع", "upNext_other": "التالي · {{count}} مقطع", "radio": { - "label": "Radio", + "label": "الراديو", "basedOn": "استنادًا إلى «{{title}}»" } }, @@ -813,7 +813,7 @@ "noPlaylists": "لا توجد قوائم تشغيل. أنشئ واحدة أدناه.", "createPlaylist": "قائمة تشغيل جديدة", "playNext": "تشغيل التالي", - "addToQueue": "إضافة إلى القائمة", + "addToQueue": "إضافة إلى قائمة الانتظار", "like": "إضافة إلى المفضلة", "unlike": "إزالة من المفضلة", "removeFromPlaylist": "إزالة من قائمة التشغيل هذه", @@ -822,7 +822,7 @@ "showInExplorer": "إظهار في المستكشف", "copyPath": "نسخ مسار الملف", "properties": "الخصائص", - "startRadio": "تشغيل Radio", + "startRadio": "تشغيل الراديو", "rating": "التقييم", "ratingNone": "بدون تقييم", "batchEdit": "تعديل وسوم {{count}} مقطع…", @@ -869,7 +869,7 @@ "year": "السنة", "trackNumber": "رقم المقطع", "duration": "المدة", - "codec": "Codec", + "codec": "الترميز", "bitDepth": "عمق البت", "sampleRate": "معدل أخذ العينات", "channels": "القنوات", @@ -954,8 +954,8 @@ "fansCount_zero": "لا يوجد معجبون", "fansCount_one": "{{display}} معجب", "fansCount_two": "معجبان", - "fansCount_few": "{{display}} معجبين", - "fansCount_many": "{{display}} معجبًا", + "fansCount_few": "{{display}} معجب", + "fansCount_many": "{{display}} معجب", "fansCount_other": "{{display}} معجب" }, "genreDetail": { @@ -983,7 +983,7 @@ "title": "الكلمات", "comingSoon": "قريبًا" }, - "startRadio": "تشغيل Radio", + "startRadio": "تشغيل الراديو", "share": { "open": "مشاركة", "save": "حفظ كصورة PNG", @@ -995,7 +995,7 @@ "playerBar": { "lyrics": "الكلمات", "nowPlaying": "إظهار المقطع قيد التشغيل", - "queue": "القائمة", + "queue": "قائمة الانتظار", "miniPlayer": "المشغّل المصغّر (دائمًا في الأعلى)", "previous": "المقطع السابق", "next": "المقطع التالي", @@ -1015,12 +1015,12 @@ "processing": "المعالجة", "output": "الخرج", "noProcessing": "لا توجد معالجة مطبقة", - "bitPerfect": "Bit-perfect", + "bitPerfect": "دقة بت مثالية", "loading": "جارٍ التحميل…", "chip": { "dsdToPcm": "DSD → PCM", "resample": "إعادة تركيب", - "downmix": "Downmix", + "downmix": "تقليل القنوات", "eq": "معادل الصوت", "replayGain": "ReplayGain", "normalize": "تسوية", @@ -1189,7 +1189,7 @@ "plainPlaceholder": "اكتب الكلمات سطرًا تلو الآخر…", "linePlaceholder": "نص السطر", "capture": "التقاط", - "captureHint": "ابدأ التشغيل ثم اضغط على المسطار (أو «التقاط») لربط السطر الحالي بموضع التشغيل", + "captureHint": "ابدأ التشغيل ثم اضغط على مفتاح المسافة (أو «التقاط») لربط السطر الحالي بموضع التشغيل", "captureNow": "التقاط الآن", "recapture": "إعادة الربط بالموضع الحالي", "seekToLine": "الانتقال إلى هذا السطر", @@ -1207,7 +1207,7 @@ "line": "سطرًا بسطر", "word": "كلمة بكلمة" }, - "captureHintWord": "مسطار = الكلمة التالية · Enter = السطر التالي · Backspace = التراجع عن الكلمة الأخيرة", + "captureHintWord": "مفتاح المسافة = الكلمة التالية · Enter = السطر التالي · Backspace = التراجع عن الكلمة الأخيرة", "notCaptured": "لم يتم الالتقاط" }, "sort": { @@ -1309,12 +1309,12 @@ "connect": "ربط Spotify" }, "notifications": { - "title": "إشعارات تغيير المسار", - "subtitle": "عرض إشعار نظام في بداية كل مسار (العنوان + الفنان). معطّل افتراضيًا." + "title": "إشعارات تغيير الأغنية", + "subtitle": "عرض إشعار نظام في بداية كل أغنية (العنوان + الفنان). معطّل افتراضيًا." } }, "crossfade": { - "title": "Crossfade", + "title": "المزج المتقاطع", "subtitle": "انتقالات سلسة بين المقاطع (قريبًا)" }, "normalize": { @@ -1450,12 +1450,12 @@ "subtitle": "يعرض طيفًا في الوقت الفعلي في العرض الانغماسي (FFT خفيف على خيط فك التشفير)" }, "smartCrossfade": { - "title": "Crossfade ذكي", - "subtitle": "يتخطى تلقائيًا الـ Crossfade بين مقطعين من نفس الألبوم (مثالي لألبومات المفهوم والحفلات الحية)" + "title": "المزج المتقاطع الذكي", + "subtitle": "يتخطى تلقائيًا المزج المتقاطع بين مقطعين من نفس الألبوم (مثالي لألبومات المفهوم والحفلات الحية)" }, "dynamicCrossfade": { - "title": "Crossfade ديناميكي", - "subtitle": "يضبط مدة الـ Crossfade وفق فارق الإيقاع بين المقاطع (يعود إلى الـ Crossfade الثابت إذا كان BPM غير معروف)" + "title": "المزج المتقاطع الديناميكي", + "subtitle": "يضبط مدة المزج المتقاطع وفق فارق الإيقاع بين المقاطع (يعود إلى المزج الثابت إذا كان BPM غير معروف)" }, "gapless": { "title": "تشغيل دون فجوات", @@ -1468,23 +1468,23 @@ "reset": "إعادة تعيين", "preset": { "custom": "مخصص", - "flat": "Flat", - "acoustic": "Acoustic", + "flat": "مسطح", + "acoustic": "صوتي", "bass_booster": "تعزيز الجهير", "bass_reducer": "تخفيف الجهير", "classical": "كلاسيكي", - "dance": "Dance", - "deep": "Deep", - "electronic": "Electronic", + "dance": "رقص", + "deep": "عميق", + "electronic": "إلكتروني", "hip_hop": "Hip-Hop", "jazz": "Jazz", "latin": "Latin", "loudness": "تعزيز الجهارة", - "lounge": "Lounge", + "lounge": "استرخاء", "piano": "بيانو", - "pop": "Pop", + "pop": "بوب", "rnb": "R&B", - "rock": "Rock", + "rock": "روك", "small_speakers": "مكبرات صغيرة", "spoken_word": "كلام منطوق", "treble_booster": "تعزيز الحادة" @@ -1519,7 +1519,7 @@ "subtitle": "تكبير الواجهة بالكامل (Ctrl+= / Ctrl+- / Ctrl+0 تعمل أيضًا)", "decreaseAria": "تصغير", "increaseAria": "تكبير", - "resetAria": "إعادة الزوم إلى 100 %" + "resetAria": "إعادة التكبير إلى 100 %" }, "showAudioQualityFooter": { "title": "إظهار شريط جودة الصوت", @@ -1554,7 +1554,7 @@ }, "playerBarLayout": { "title": "تخطيط شريط التشغيل", - "subtitle": "اختر الأزرار الظاهرة في الشريط، وحدد ما يحدث عند النقر على الغلاف. تتحدث المعاينة فوراً.", + "subtitle": "اختر الأزرار الظاهرة في الشريط، وحدد ما يحدث عند النقر على الغلاف. تُحدَّث المعاينة فورًا.", "preview": "معاينة", "previewEmpty": "لا توجد أزرار — سيُعرض في الشريط الغلافُ وعناصرُ التحكم بالتشغيل فقط.", "buttons": { @@ -1607,7 +1607,7 @@ }, "hiResBadge": { "title": "شارة Hi-Res / DSD", - "subtitle": "عرض ملصق «Hi-Res 24-bit» أو «DSD128» بجانب المسارات المؤهلة وأسفل اسم الفنان في شريط المشغل. مفعّل افتراضيًا." + "subtitle": "عرض ملصق «Hi-Res 24-bit» أو «DSD128» بجانب الأغاني المؤهلة وأسفل اسم الفنان في شريط المشغّل. مفعّل افتراضيًا." } }, "spotify": { diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index faccc9f..f2d4d26 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -204,7 +204,7 @@ "close": "Schließen", "reset": "Zurücksetzen", "hiRes": "Hi-Res", - "likedOnly": "Nur Favoriten", + "likedOnly": "Nur gelikte Titel", "year": "Jahr (von → bis)", "bpm": "BPM (von → bis)", "durationMin": "Dauer in Minuten (von → bis)", @@ -294,7 +294,7 @@ "trackCount_other": "{{count}} Titel" }, "onRepeat": { - "label": "On Repeat" + "label": "Auf Wiederholung" }, "wrapped": { "eyebrow": "WaveFlow Wrapped", @@ -361,7 +361,7 @@ "share": "Teilen (bald verfügbar)", "rescan": "Bibliothek erneut scannen", "rescanning": "Erneuter Scan läuft…", - "changeArtwork": "Bild ändern (bald verfügbar)", + "changeArtwork": "Cover ändern (bald verfügbar)", "edit": "Bibliothek bearbeiten", "delete": "Bibliothek löschen", "deleteConfirm": "Zur Bestätigung erneut klicken", @@ -386,7 +386,7 @@ "rating": "Bewertung", "noRating": "Keine Bewertung", "viewToggle": { - "label": "Anzeigeform", + "label": "Anzeigemodus", "list": "Liste", "compact": "Kompakt" }, @@ -431,8 +431,8 @@ "emptyTitle": "Keine gelikten Titel", "emptyDescription": "Titel, die du likest, erscheinen hier. Stöbere in deiner Bibliothek und like deine Lieblingstitel.", "playAll": "Alle abspielen", - "unlike": "Aus Favoriten entfernen", - "like": "Zu Favoriten hinzufügen" + "unlike": "Aus gelikten Titeln entfernen", + "like": "Zu gelikten Titeln hinzufügen" }, "history": { "badge": "Verlauf", @@ -484,7 +484,7 @@ "uniqueArtists_zero": "0 Künstler", "uniqueArtists_one": "{{count}} Künstler", "uniqueArtists_other": "{{count}} Künstler", - "completionRate": "Komplette Hörquote" + "completionRate": "Vollständig gehört" }, "byDay": { "title": "Tägliche Aktivität", @@ -642,7 +642,7 @@ "empty": "Keine Einträge verfügbar", "expand": "{{count}} weitere Einträge anzeigen", "collapse": "Weniger anzeigen", - "breaking": "Breaking" + "breaking": "Wichtige Änderung" }, "credits": { "text": "Mit Leidenschaft entworfen und entwickelt. Gebaut mit Open-Source-Technologien.", @@ -745,7 +745,7 @@ "delete": { "title": "{{name}} löschen?", "subtitle": "Dieses Profil wird endgültig entfernt.", - "warning": "Sämtliche Bibliotheken, Wiedergabelisten und der Wiedergabeverlauf dieses Profils gehen verloren. Diese Aktion kann nicht rückgängig gemacht werden.", + "warning": "Sämtliche Bibliotheken, Playlists und der Hörverlauf dieses Profils gehen verloren. Diese Aktion kann nicht rückgängig gemacht werden.", "submit": "Profil löschen", "submitting": "Wird gelöscht …" } @@ -777,10 +777,10 @@ "iconAria": "Symbol {{icon}}", "submit": "Erstellen", "editSubmit": "Speichern", - "coverChoose": "Foto auswählen", + "coverChoose": "Cover auswählen", "coverMenu": "Cover-Optionen", - "coverChange": "Foto ändern", - "coverRemove": "Foto entfernen", + "coverChange": "Cover ändern", + "coverRemove": "Cover entfernen", "coverAutoHint": "Auto-Cover — passt sich dem Inhalt an", "coverManualHint": "Eigenes Bild" }, @@ -814,8 +814,8 @@ "createPlaylist": "Neue Playlist", "playNext": "Als Nächstes spielen", "addToQueue": "Zur Warteschlange hinzufügen", - "like": "Zu Favoriten hinzufügen", - "unlike": "Aus Favoriten entfernen", + "like": "Zu gelikten Titeln hinzufügen", + "unlike": "Aus gelikten Titeln entfernen", "removeFromPlaylist": "Aus dieser Playlist entfernen", "goToAlbum": "Zum Album", "goToArtist": "Zum Künstler", @@ -914,7 +914,7 @@ "trackCount_zero": "0 Titel", "trackCount_one": "{{count}} Titel", "trackCount_other": "{{count}} Titel", - "discHeader": "CD {{number}}", + "discHeader": "Disc {{number}}", "releaseDate": "Veröffentlichung", "emptyTitle": "Album nicht gefunden", "emptyDescription": "Dieses Album ist im aktiven Profil nicht mehr verfügbar.", @@ -998,7 +998,7 @@ "openFullscreen": "Immersive Ansicht", "devices": "Ausgabegeräte", "moreActions": "Weitere Aktionen", - "abLoop": "A-B-Loop", + "abLoop": "A-B-Schleife", "eqPreset": "Equalizer", "eq": { "bypass": "EQ aktivieren" @@ -1090,9 +1090,9 @@ "subtitle": "Ordner oder Audiodateien akzeptiert" }, "abLoop": { - "setA": "A-B-Wiederholung: Punkt A an aktueller Position setzen", - "setB": "A-B-Wiederholung: Punkt B setzen (A = {{a}})", - "armed": "A-B-Wiederholung aktiv: {{a}} → {{b}} (zum Löschen klicken)" + "setA": "A-B-Schleife: Punkt A an aktueller Position setzen", + "setB": "A-B-Schleife: Punkt B setzen (A = {{a}})", + "armed": "A-B-Schleife aktiv: {{a}} → {{b}} (zum Löschen klicken)" }, "smartPlaylistEditor": { "createTitle": "Neue intelligente Playlist", @@ -1355,8 +1355,8 @@ "subtitle": "Wenn deaktiviert, bleibt der Timer über das „…“-Menü erreichbar" }, "showAbLoop": { - "title": "A-B-Loop in der Leiste anheften", - "subtitle": "Wenn deaktiviert, bleibt A-B-Loop über das „…“-Menü erreichbar" + "title": "A-B-Schleife in der Leiste anheften", + "subtitle": "Wenn deaktiviert, bleibt A-B-Schleife über das „…“-Menü erreichbar" }, "showSpotify": { "title": "Spotify-Eintrag anzeigen", @@ -1463,14 +1463,14 @@ "presets": "Presets", "reset": "Zurücksetzen", "preset": { - "custom": "Eigene", + "custom": "Benutzerdefiniert", "flat": "Flat", "acoustic": "Acoustic", - "bass_booster": "Bass Booster", - "bass_reducer": "Bass Reducer", + "bass_booster": "Bass-Booster", + "bass_reducer": "Bass-Reduzierer", "classical": "Klassik", "dance": "Dance", - "deep": "Deep", + "deep": "Tief", "electronic": "Electronic", "hip_hop": "Hip-Hop", "jazz": "Jazz", @@ -1482,8 +1482,8 @@ "rnb": "R&B", "rock": "Rock", "small_speakers": "Kleine Lautsprecher", - "spoken_word": "Spoken Word", - "treble_booster": "Treble Booster" + "spoken_word": "Sprache", + "treble_booster": "Höhen-Booster" } }, "backup": { @@ -1544,7 +1544,7 @@ "midnightLight": "Mitternacht Hell", "sunsetLight": "Sonnenuntergang Hell", "lavenderLight": "Lavendel Hell", - "crimsonLight": "Karmesinrot Hell", + "crimsonLight": "Karmesin Hell", "oceanLight": "Ozean Hell" } }, @@ -1582,7 +1582,7 @@ }, "wrappedBanner": { "title": "WaveFlow Wrapped-Banner", - "subtitle": "Der Jahresrückblick-Banner auf dem Startbildschirm. Der Automatik-Modus zeigt ihn während der Wrapped-Saison (1. Dezember → 31. Januar).", + "subtitle": "Das Jahresrückblick-Banner auf dem Startbildschirm. Der Automatik-Modus zeigt ihn während der Wrapped-Saison (1. Dezember → 31. Januar).", "legend": "Sichtbarkeit des Wrapped-Banners", "seasonActive": "Wrapped-Saison läuft — der Banner wird angezeigt.", "seasonIdle": "Außerhalb der Saison — der Banner kehrt am 1. Dezember automatisch zurück.", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index e866321..7bdda84 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -37,7 +37,7 @@ "defaultLibraryName": "Música", "welcome": { "title": "Te damos la bienvenida a WaveFlow", - "description": "Tu reproductor de música local-first. Disfruta de toda tu biblioteca sin suscripción de streaming." + "description": "Tu reproductor de música de prioridad local. Disfruta de toda tu biblioteca sin suscripción de streaming." }, "localOnly": { "title": "Importante: solo música local", @@ -221,7 +221,7 @@ "changeProfile": "Cambiar de perfil", "statistics": "Estadísticas", "settings": "Configuración", - "feedback": "Feedback", + "feedback": "Comentarios", "about": "Acerca de", "quit": "Salir de la aplicación" } @@ -248,7 +248,7 @@ "playlists": "Listas de reproducción" }, "moodRadio": { - "title": "Mood Radio", + "title": "Radio por estado de ánimo", "subtitle": "Filtrada por tempo y energía", "trackCount_one": "{{count}} pista", "trackCount_other": "{{count}} pistas", @@ -259,11 +259,11 @@ "subtitle": "Ritmos tranquilos para concentrarse" }, "chill": { - "title": "Chill", + "title": "Relajación", "subtitle": "Escucha relajada para desconectar" }, "workout": { - "title": "Workout", + "title": "Entrenamiento", "subtitle": "Ritmo constante para mantenerte en movimiento" }, "party": { @@ -299,7 +299,7 @@ "wrapped": { "eyebrow": "WaveFlow Wrapped", "title": "Tu resumen de {{year}}", - "subtitle": "Tus artistas, tus minutos, tu año — contado en unas pocas slides.", + "subtitle": "Tus artistas, tus minutos, tu año — contado en unas pocas diapositivas.", "cta": "Abrir", "dismiss": "Ocultar el banner Wrapped" }, @@ -529,8 +529,8 @@ "close": "Cerrar", "pause": "Pausar", "resume": "Reanudar", - "prev": "Slide anterior", - "next": "Slide siguiente", + "prev": "Diapositiva anterior", + "next": "Diapositiva siguiente", "yearPicker": "Elegir un año", "backToHome": "Volver al inicio", "playsShort_zero": "0 reproducciones", @@ -575,7 +575,7 @@ "energy": { "chill": "Chill", "warm": "Cálido", - "groove": "Groove", + "groove": "Ritmo", "energetic": "Enérgico", "fire": "Intenso" } @@ -650,7 +650,7 @@ } }, "feedback": { - "title": "Feedback", + "title": "Comentarios", "hero": { "title": "Ayúdanos a mejorar WaveFlow", "description": "¿Has detectado un fallo, tienes una idea para mejorar la app o simplemente quieres compartir feedback? Leemos todos los mensajes y tenemos en cuenta tus sugerencias." @@ -684,7 +684,7 @@ "title": "Velocidad de reproducción", "slider": "Control de velocidad", "custom": "Velocidad personalizada", - "pitchHint": "El tono sigue a la velocidad (sin time-stretching)." + "pitchHint": "El tono sigue a la velocidad (sin estiramiento de tiempo)." }, "seek": "Posición" }, @@ -992,7 +992,7 @@ "lyrics": "Letras", "nowPlaying": "Mostrar reproducción actual", "queue": "Cola", - "miniPlayer": "Mini reproductor (siempre encima)", + "miniPlayer": "Mini-reproductor (siempre en primer plano)", "previous": "Pista anterior", "next": "Pista siguiente", "openFullscreen": "Vista inmersiva", @@ -1005,8 +1005,8 @@ }, "toggleNowPlayingPanel": "Mostrar / ocultar Reproduciendo", "pipeline": { - "title": "Pipeline de audio", - "openHint": "Ver el pipeline de audio en detalle", + "title": "Cadena de audio", + "openHint": "Ver la cadena de audio en detalle", "source": "Fuente", "processing": "Procesamiento", "output": "Salida", @@ -1016,7 +1016,7 @@ "chip": { "dsdToPcm": "DSD → PCM", "resample": "Remuestreo", - "downmix": "Downmix", + "downmix": "Reducción de canales", "eq": "EQ", "replayGain": "ReplayGain", "normalize": "Normalización", @@ -1029,7 +1029,7 @@ "idle": "Ninguna pista en reproducción", "maximize": "Restaurar ventana principal", "like": "Me gusta", - "pin": "Siempre encima", + "pin": "Siempre en primer plano", "close": "Cerrar mini reproductor" }, "sleepTimer": { @@ -1092,7 +1092,7 @@ "abLoop": { "setA": "Bucle A-B: marcar punto A en la posición actual", "setB": "Bucle A-B: marcar punto B (A = {{a}})", - "armed": "Bucle A-B activo: {{a}} → {{b}} (haz clic para limpiar)" + "armed": "Bucle A-B activo: {{a}} → {{b}} (haz clic para desactivar)" }, "smartPlaylistEditor": { "createTitle": "Nueva lista inteligente", @@ -1150,7 +1150,7 @@ "childCount_zero": "vacío", "childCount_one": "{{count}} condición", "childCount_other": "{{count}} condiciones", - "notHint": "Excluye todo lo que coincida con el hijo", + "notHint": "Excluye todo lo que coincida con la subcondición", "deleteNode": "Eliminar", "addCondition": "Condición", "addGroupAnd": "Grupo Y", @@ -1296,9 +1296,9 @@ }, "spotify": { "title": "Spotify", - "subtitle": "Conecta Spotify Premium con tu propio Client ID de Spotify Developer.", - "clientIdPlaceholder": "Client ID de Spotify", - "redirectHint": "Añade esta Redirect URI en el Spotify Developer Dashboard: http://127.0.0.1:49387/spotify/callback", + "subtitle": "Conecta Spotify Premium con tu propio ID de cliente de Spotify Developer.", + "clientIdPlaceholder": "ID de cliente de Spotify", + "redirectHint": "Añade esta URI de redirección en el panel de desarrolladores de Spotify: http://127.0.0.1:49387/spotify/callback", "connectedAs": "Conectado como", "disconnect": "Desconectar", "connecting": "Conectando…", @@ -1389,7 +1389,7 @@ }, "localArtistImages": { "title": "Imágenes locales de artistas", - "subtitle": "Busca una artist.jpg (o .jpg) junto a tu música y la usa como foto del artista.", + "subtitle": "Busca una artist.jpg (o .jpg) junto a tu música y la usa como foto del artista.", "action": "Escanear", "done": "{{linked}} de {{considered}} artistas vinculados a una imagen local" }, @@ -1435,15 +1435,15 @@ }, "diagnostics": { "title": "Registro de la aplicación", - "subtitle": "Para reportar un fallo, abre la carpeta de logs o copia los logs recientes y pégalos en un ticket.", + "subtitle": "Para reportar un fallo, abre la carpeta de registros o copia los registros recientes y pégalos en un ticket.", "openFolder": "Abrir carpeta", - "copyLogs": "Copiar logs", - "copied": "Logs copiados", - "copyFailed": "No se han podido copiar los logs" + "copyLogs": "Copiar registros", + "copied": "Registros copiados", + "copyFailed": "No se han podido copiar los registros" }, "visualizer": { "title": "Visualizador de audio", - "subtitle": "Muestra un espectro en tiempo real en la vista inmersiva (FFT ligero en el hilo del decoder)" + "subtitle": "Muestra un espectro en tiempo real en la vista inmersiva (FFT ligero en el hilo del decodificador)" }, "smartCrossfade": { "title": "Crossfade inteligente", @@ -1454,13 +1454,13 @@ "subtitle": "Ajusta la duración del crossfade según la diferencia de tempo entre las pistas (vuelve al crossfade fijo si el BPM es desconocido)" }, "gapless": { - "title": "Reproducción gapless", + "title": "Reproducción sin pausas", "subtitle": "Encadena pistas consecutivas sin micro-silencios (ideal para directos y discos conceptuales)" }, "equalizer": { "title": "Ecualizador", - "subtitle": "Seis bandas peaking, ±12 dB. Arrastra los puntos para dar forma a la curva.", - "presets": "Presets", + "subtitle": "Seis bandas de pico, ±12 dB. Arrastra los puntos para dar forma a la curva.", + "presets": "Preajustes", "reset": "Restablecer", "preset": { "custom": "Personalizado", @@ -1482,7 +1482,7 @@ "rnb": "R&B", "rock": "Rock", "small_speakers": "Altavoces pequeños", - "spoken_word": "Spoken word", + "spoken_word": "Palabra hablada", "treble_booster": "Potenciador de agudos" } }, @@ -1525,7 +1525,7 @@ "appearance": { "theme": { "title": "Tema", - "subtitle": "Elige un ambiente — cambiar el tema vuelve a tintar la app al instante." + "subtitle": "Elige un ambiente — cambiar el tema cambia el tono de toda la app al instante." }, "mode": { "light": "Claro", @@ -1550,7 +1550,7 @@ }, "playerBarLayout": { "title": "Diseño de la barra de reproducción", - "subtitle": "Elige qué botones aparecen en la barra y qué hace al hacer clic en la carátula. La vista previa se actualiza al instante.", + "subtitle": "Elige qué botones aparecen en la barra y qué ocurre al hacer clic en la miniatura de la portada. La vista previa se actualiza al instante.", "preview": "Vista previa", "previewEmpty": "Sin botones — la barra solo mostrará la carátula y los controles de reproducción.", "buttons": { @@ -1603,12 +1603,12 @@ }, "hiResBadge": { "title": "Insignia Hi-Res / DSD", - "subtitle": "Muestra la etiqueta «Hi-Res 24-bit» o «DSD128» junto a las pistas que califican y bajo el nombre del artista en la barra del reproductor. Activado por defecto." + "subtitle": "Muestra la etiqueta «Hi-Res 24-bit» o «DSD128» junto a las pistas compatibles y bajo el nombre del artista en la barra del reproductor. Activado por defecto." } }, "spotify": { "notConfiguredTitle": "Registra tu app de Spotify", - "notConfiguredMessage": "Spotify exige que toda app de terceros registre un Client ID gratuito antes de cualquier reproducción. Crea uno en el Spotify Developer Dashboard y luego pégalo en la Configuración de WaveFlow → Integraciones.", + "notConfiguredMessage": "Spotify exige que toda app de terceros registre un ID de cliente gratuito antes de cualquier reproducción. Créalo en el panel de desarrolladores de Spotify y luego pégalo en Configuración → Integraciones de WaveFlow.", "openDashboard": "Abrir Spotify Developer Dashboard", "openSettings": "Abrir Configuración", "notConnectedTitle": "Spotify no está conectado", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index b47502f..6b602c5 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -27,7 +27,7 @@ }, "installed": { "title": "Mise à jour installée", - "message": "Redémarre WaveFlow pour appliquer la nouvelle version." + "message": "Redémarrez WaveFlow pour appliquer la nouvelle version." }, "error": { "title": "Échec de la mise à jour" @@ -37,11 +37,11 @@ "defaultLibraryName": "Musique", "welcome": { "title": "Bienvenue dans WaveFlow", - "description": "Votre lecteur musical local-first. Profitez de toute votre bibliothèque sans abonnement streaming." + "description": "Votre lecteur de musique 100% local. Profitez de toute votre bibliothèque sans abonnement streaming." }, "localOnly": { "title": "Important : musique locale uniquement", - "description": "WaveFlow n'est PAS un service de streaming. Il joue les fichiers déjà présents sur votre appareil.", + "description": "WaveFlow n'est PAS un service de streaming. Il lit les fichiers déjà présents sur votre appareil.", "calloutTitle": "Ce que vous devez savoir", "bulletOwn": "Apportez votre propre bibliothèque (MP3, FLAC, ALAC, OGG, DSD…)", "bulletImport": "Importez un dossier ou glissez-déposez des fichiers", @@ -76,7 +76,7 @@ "connect": "Connecter Last.fm", "missingFields": "Renseignez la clé, le secret, le nom d'utilisateur et le mot de passe.", "connectedTitle": "Connecté en tant que {{user}}", - "connectedSubtitle": "Le scrobbling démarre automatiquement quand vous lisez un morceau." + "connectedSubtitle": "Le scrobbling démarre automatiquement dès que vous écoutez un titre." }, "scan": { "title": "Scanner votre bibliothèque", @@ -167,7 +167,7 @@ "createSmartAria": "Créer une playlist intelligente", "importM3uAria": "Importer une playlist M3U", "importDialogTitle": "Importer une playlist M3U", - "liked": "Titres likés", + "liked": "Titres aimés", "recent": "Récemment joués", "emptySubtext_zero": "0 titre", "emptySubtext_one": "{{count}} titre", @@ -221,7 +221,7 @@ "changeProfile": "Changer de profil", "statistics": "Statistiques", "settings": "Paramètres", - "feedback": "Feedback", + "feedback": "Commentaires", "about": "À propos", "quit": "Quitter l'application" } @@ -243,15 +243,15 @@ }, "stats": { "library": "Bibliothèque", - "liked": "Titres likés", + "liked": "Titres aimés", "recent": "Joués récemment", "playlists": "Playlists" }, "moodRadio": { "title": "Radio par humeur", "subtitle": "Filtrée par tempo et énergie", - "trackCount_one": "{{count}} morceau", - "trackCount_other": "{{count}} morceaux", + "trackCount_one": "{{count}} titre", + "trackCount_other": "{{count}} titres", "empty": "Pas assez de morceaux analysés", "loading": "Démarrage…", "focus": { @@ -424,15 +424,15 @@ }, "liked": { "badge": "Collection", - "title": "Titres likés", + "title": "Titres aimés", "count_zero": "0 titre", "count_one": "{{count}} titre", "count_other": "{{count}} titres", "emptyTitle": "Aucun titre liké", "emptyDescription": "Les morceaux que vous aimez apparaîtront ici. Explorez votre bibliothèque et likez vos titres favoris.", "playAll": "Tout lire", - "unlike": "Retirer des likés", - "like": "Ajouter aux likés" + "unlike": "Retirer des coups de cœur", + "like": "Ajouter aux coups de cœur" }, "history": { "badge": "Historique", @@ -619,9 +619,9 @@ "developedBy": "Développé par" }, "sections": { - "frameworkDesktop": "Framework Desktop", - "frontend": "Frontend", - "backend": "Backend (Rust)", + "frameworkDesktop": "Moteur de bureau", + "frontend": "Interface", + "backend": "Moteur (Rust)", "audio": "Audio", "shortcuts": "Raccourcis clavier", "changelog": "Journal des modifications", @@ -642,7 +642,7 @@ "empty": "Aucune entrée disponible", "expand": "Voir {{count}} entrées de plus", "collapse": "Voir moins", - "breaking": "Rupture" + "breaking": "Changements majeurs" }, "credits": { "text": "Conçu et développé avec passion. Construit avec des technologies open source.", @@ -684,16 +684,16 @@ "title": "Vitesse de lecture", "slider": "Curseur de vitesse", "custom": "Vitesse personnalisée", - "pitchHint": "Le ton suit la vitesse (pas d'étirement temporel)." + "pitchHint": "La hauteur suit la vitesse (pas d'étirement temporel)." }, "seek": "Position" }, "queue": { "title": "File d'attente", "inactive": "INACTIF", - "count_zero": "0 morceau", - "count_one": "{{count}} morceau", - "count_other": "{{count}} morceaux", + "count_zero": "0 titre", + "count_one": "{{count}} titre", + "count_other": "{{count}} titres", "emptyTitle": "Rien à écouter", "emptyDescription": "Lancez une musique depuis votre bibliothèque pour remplir la file.", "nowPlaying": "En cours", @@ -781,7 +781,7 @@ "coverMenu": "Options de pochette", "coverChange": "Changer la photo", "coverRemove": "Retirer la photo", - "coverAutoHint": "Cover automatique — se met à jour avec le contenu", + "coverAutoHint": "Pochette automatique — se met à jour avec le contenu", "coverManualHint": "Image personnalisée" }, "playlistView": { @@ -814,8 +814,8 @@ "createPlaylist": "Nouvelle playlist", "playNext": "Lire la suite", "addToQueue": "Ajouter à la file d'attente", - "like": "Ajouter aux titres likés", - "unlike": "Retirer des titres likés", + "like": "Ajouter aux coups de cœur", + "unlike": "Retirer des coups de cœur", "removeFromPlaylist": "Retirer de cette playlist", "goToAlbum": "Aller à l'album", "goToArtist": "Aller à l'artiste", @@ -826,13 +826,13 @@ "rating": "Note", "ratingNone": "Aucune note", "batchEdit": "Modifier les tags de {{count}} morceaux…", - "addToPlaylistNamed": "Ajouter \"{{name}}\" à cette playlist", - "removeFromPlaylistNamed": "Retirer \"{{name}}\" de cette playlist" + "addToPlaylistNamed": "Ajouter à « {{name}} »", + "removeFromPlaylistNamed": "Retirer de « {{name}} »" }, "batchTagEdit": { "title": "Modifier les tags en lot", "subtitle": "{{count}} morceaux sélectionnés", - "help": "Coche les champs à appliquer à toute la sélection. Les champs non cochés restent intacts par morceau.", + "help": "Cochez les champs à appliquer à toute la sélection. Les champs non cochés restent intacts par titre.", "submit": "Appliquer ({{count}} champ(s))", "fields": { "artist": "Artiste", @@ -862,7 +862,7 @@ "bpm": "BPM", "loudness": "Volume sonore", "replayGain": "ReplayGain", - "peak": "Peak", + "peak": "Crête", "analyze": "Analyser", "reanalyze": "Réanalyser", "analyzing": "Analyse…", @@ -870,10 +870,10 @@ "trackNumber": "Piste", "duration": "Durée", "codec": "Codec", - "bitDepth": "Profondeur", - "sampleRate": "Échantillonnage", + "bitDepth": "Profondeur de bits", + "sampleRate": "Fréquence d'échantillonnage", "channels": "Canaux", - "bitrate": "Débit", + "bitrate": "Débit binaire", "key": "Tonalité", "fileSize": "Taille", "addedAt": "Ajouté le", @@ -918,8 +918,8 @@ "releaseDate": "Sortie", "emptyTitle": "Album introuvable", "emptyDescription": "Cet album n'existe plus dans le profil actif.", - "emptyTracksTitle": "Aucun morceau", - "emptyTracksDescription": "Cet album ne contient aucun morceau disponible." + "emptyTracksTitle": "Aucun titre", + "emptyTracksDescription": "Cet album ne contient aucun titre disponible." }, "artistDetail": { "badge": "Artiste", @@ -963,8 +963,8 @@ "trackCount_other": "{{count}} titres", "emptyTitle": "Genre introuvable", "emptyDescription": "Ce genre n'existe plus dans le profil actif.", - "emptyTracksTitle": "Aucun morceau", - "emptyTracksDescription": "Ce genre ne contient aucun morceau disponible." + "emptyTracksTitle": "Aucun titre", + "emptyTracksDescription": "Ce genre ne contient aucun titre disponible." }, "nowPlaying": { "title": "En cours de lecture", @@ -1089,7 +1089,7 @@ "bpm": "BPM", "durationMin": "Durée en minutes", "hiRes": "Hi-Res uniquement", - "liked": "Titres likés uniquement", + "liked": "Coups de cœur uniquement", "minRating": "Note minimum", "formats": "Formats", "genres": "Genres", @@ -1150,7 +1150,7 @@ "durationMaxMs": "Durée (ms) ≤", "format": "Format =", "hiRes": "Hi-Res", - "liked": "Aimé", + "liked": "Coup de cœur", "ratingMin": "Note ≥" } }, @@ -1182,7 +1182,7 @@ "plain": "Texte", "synced": "Synchronisé" }, - "plainPlaceholder": "Saisis les paroles ligne par ligne…", + "plainPlaceholder": "Saisissez les paroles ligne par ligne…", "linePlaceholder": "Texte de la ligne", "capture": "Capturer", "captureHint": "Lancez la lecture puis appuyez sur Espace (ou Capturer) pour caler la ligne courante au temps actuel", @@ -1367,7 +1367,7 @@ }, "minimizeToTray": { "title": "Minimiser dans la barre système", - "subtitle": "Fermer la fenêtre réduit l'application dans le tray" + "subtitle": "La fermeture de la fenêtre réduit l'application dans la zone de notification." }, "scanOnStart": { "title": "Scanner au démarrage", @@ -1410,7 +1410,7 @@ }, "artistImages": { "title": "Images artistes", - "subtitle": "Récupérer les pochettes artistes depuis Deezer", + "subtitle": "Récupère les photos des artistes depuis Deezer", "action": "Récupérer", "progress": "{{current}}/{{total}} traités" }, @@ -1456,13 +1456,13 @@ "runOk_other": "{{count}} archives écrites.", "errors": { "loadFailed": "Impossible de lire la configuration de sauvegarde.", - "saveFailed": "Échec de l'enregistrement. Réessaie.", + "saveFailed": "Échec de l'enregistrement. Réessayez.", "runFailed": "Échec de la sauvegarde. Voir les logs." } }, "dataFolder": { "title": "Dossier de données", - "subtitle": "Ouvrir le dossier contenant la base de données et les covers", + "subtitle": "Ouvrir le dossier contenant la base de données et les pochettes", "action": "Ouvrir" }, "openDataFolder": "Ouvrir le dossier de données", @@ -1486,7 +1486,7 @@ }, "diagnostics": { "title": "Journal de l'application", - "subtitle": "Pour signaler un bug, ouvre le dossier des journaux ou copie les logs récents pour les coller dans un ticket.", + "subtitle": "Pour signaler un bug, ouvrez le dossier des journaux ou copiez les logs récents pour les coller dans un ticket.", "openFolder": "Ouvrir le dossier", "copyLogs": "Copier les logs", "copied": "Logs copiés", @@ -1510,7 +1510,7 @@ }, "equalizer": { "title": "Égaliseur", - "subtitle": "Six bandes peaking, ±12 dB. Glissez les points pour ajuster.", + "subtitle": "Six bandes paramétriques, ±12 dB. Glissez les points pour ajuster.", "presets": "Préréglages", "reset": "Réinitialiser", "preset": { @@ -1546,7 +1546,7 @@ }, "showAudioQualityFooter": { "title": "Afficher la qualité audio sous la barre", - "subtitle": "Détails techniques (kHz, kb/s, codec, profondeur) sous la player bar. Désactivé par défaut pour une barre plus fine." + "subtitle": "Détails techniques (kHz, kb/s, codec, profondeur) sous la barre de lecture. Désactivé par défaut pour une barre plus fine." }, "playerBarLayout": { "title": "Disposition de la barre de lecture", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index b6a4d57..4f11ef9 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -92,7 +92,7 @@ "nextSteps": "अगले कदम:", "bulletExplore": "लाइब्रेरी, एल्बम और आर्टिस्ट टैब से अपनी लाइब्रेरी एक्सप्लोर करें", "bulletQueue": "किसी ट्रैक पर क्लिक करके अपनी पहली क्यू बनाएँ", - "bulletSettings": "साइडबार से सेटिंग्स को ठीक करें (रूप, एकीकरण…)" + "bulletSettings": "साइडबार से सेटिंग्स अनुकूलित करें (रूप, एकीकरण…)" }, "actions": { "skipSetup": "सेटअप छोड़ें", @@ -222,7 +222,7 @@ "statistics": "सांख्यिकी", "settings": "सेटिंग्स", "feedback": "प्रतिक्रिया", - "about": "के बारे में", + "about": "ऐप के बारे में", "quit": "ऐप से बाहर निकलें" } }, @@ -260,7 +260,7 @@ }, "chill": { "title": "चिल", - "subtitle": "आराम के लिए हल्की वाइब्स" + "subtitle": "आराम के लिए हल्का संगीत" }, "workout": { "title": "वर्कआउट", @@ -371,7 +371,7 @@ "searchDeezer": "Deezer में खोजें", "localFile": "स्थानीय फ़ाइल", "fetchMissingCovers": "सभी गुमशुदा कवर पुनः प्राप्त करें", - "noCover": "बिना कवर के", + "noCover": "कोई कवर नहीं", "fetchingCovers": "कवर डाउनलोड हो रहे हैं... ({{current}} / {{total}})", "fetchCoversResult": "{{count}} कवर प्राप्त हुए", "fetchCoversFailed": "कवर प्राप्त करने में विफल", @@ -442,7 +442,7 @@ "timeline": "टाइमलाइन", "loadingMore": "लोड हो रहा है…", "endReached": "इतिहास की शुरुआत", - "emptyTitle": "अभी तक कोई प्ले नहीं", + "emptyTitle": "अभी तक कोई प्लेबैक नहीं", "emptyDescription": "एक ट्रैक चलाएँ — गिनती में आते ही यहाँ दिखेगा।", "shownCount_one": "{{count}} प्ले दिखाया गया", "shownCount_other": "{{count}} प्ले दिखाए गए", @@ -478,7 +478,7 @@ "all": "सब कुछ" }, "kpi": { - "totalPlays": "कुल प्ले", + "totalPlays": "कुल प्लेबैक", "totalTime": "सुनने का समय", "uniqueTracks": "अनूठे ट्रैक", "uniqueArtists_zero": "0 कलाकार", @@ -574,10 +574,10 @@ "loudness": "औसत लाउडनेस: {{lufs}} LUFS", "energy": { "chill": "शांत", - "warm": "गर्म", + "warm": "वॉर्म", "groove": "ग्रूव", "energetic": "ऊर्जावान", - "fire": "हाई एनर्जी" + "fire": "जोशीला" } }, "clock": { @@ -612,7 +612,7 @@ } }, "about": { - "title": "के बारे में", + "title": "ऐप के बारे में", "hero": { "subtitle": "क्रॉस-प्लेटफ़ॉर्म एचडी संगीत प्लेयर", "checkUpdates": "अपडेट्स के लिए जाँच करें", @@ -645,7 +645,7 @@ "breaking": "महत्वपूर्ण बदलाव" }, "credits": { - "text": "जोश के साथ डिज़ाइन और विकसित। ओपन-सोर्स तकनीकों का उपयोग करके निर्मित।", + "text": "पूर्ण समर्पण से डिज़ाइन और विकसित। ओपन-सोर्स तकनीकों का उपयोग करके निर्मित।", "icons": "आइकन: Lucide, Phosphor, Mynaui और Iconify।" } }, @@ -686,7 +686,7 @@ "custom": "कस्टम गति", "pitchHint": "गति के साथ पिच भी बदलती है (कोई टाइम-स्ट्रेचिंग नहीं)।" }, - "seek": "स्थिति" + "seek": "सीक" }, "queue": { "title": "प्ले क्यू", @@ -737,15 +737,15 @@ "toggle": "प्रबंधित करें", "done": "हो गया", "title": "प्रोफ़ाइल प्रबंधित करें", - "subtitle": "हटाने के लिए प्रोफ़ाइल चुनें. सक्रिय प्रोफ़ाइल यहाँ से नहीं हटाई जा सकती.", + "subtitle": "हटाने के लिए प्रोफ़ाइल चुनें। सक्रिय प्रोफ़ाइल यहाँ से नहीं हटाई जा सकती।", "activeLocked": "सक्रिय प्रोफ़ाइल", "deleteHint": "हटाने के लिए टैप करें", "deleteAria": "प्रोफ़ाइल {{name}} हटाएँ" }, "delete": { "title": "{{name}} हटाएँ?", - "subtitle": "यह प्रोफ़ाइल स्थायी रूप से हटा दी जाएगी.", - "warning": "इस प्रोफ़ाइल की सभी लाइब्रेरी, प्लेलिस्ट और सुनने का इतिहास खो जाएगा. यह कार्रवाई पूर्ववत नहीं की जा सकती.", + "subtitle": "यह प्रोफ़ाइल स्थायी रूप से हटा दी जाएगी।", + "warning": "इस प्रोफ़ाइल की सभी लाइब्रेरी, प्लेलिस्ट और सुनने का इतिहास खो जाएगा। यह कार्रवाई पूर्ववत नहीं की जा सकती।", "submit": "प्रोफ़ाइल हटाएँ", "submitting": "हटाया जा रहा है…" } @@ -818,7 +818,7 @@ "unlike": "पसंदीदा से हटाएँ", "removeFromPlaylist": "इस प्लेलिस्ट से हटाएँ", "goToAlbum": "एल्बम पर जाएँ", - "goToArtist": "कलाकार के पास जाएँ", + "goToArtist": "कलाकार पर जाएँ", "showInExplorer": "एक्सप्लोरर में देखें", "copyPath": "फ़ाइल पथ की प्रतिलिपि बनाएँ", "properties": "गुणधर्म", @@ -1150,7 +1150,7 @@ "childCount_zero": "खाली", "childCount_one": "{{count}} शर्त", "childCount_other": "{{count}} शर्तें", - "notHint": "बच्चे से मेल खाने वाली हर चीज़ को बाहर करता है", + "notHint": "उप-नियम से मेल खाने वाली हर चीज़ को बाहर करता है", "deleteNode": "हटाएँ", "addCondition": "शर्त", "addGroupAnd": "AND समूह", @@ -1401,7 +1401,7 @@ }, "localArtistImages": { "title": "स्थानीय कलाकार छवियाँ", - "subtitle": "संगीत के बगल में artist.jpg (या <नाम>.jpg) फ़ाइल खोजें और उसे कलाकार की तस्वीर के रूप में उपयोग करें।", + "subtitle": "संगीत के बगल में artist.jpg (या .jpg) फ़ाइल खोजें और उसे कलाकार की तस्वीर के रूप में उपयोग करें।", "action": "स्कैन", "done": "{{considered}} में से {{linked}} कलाकार स्थानीय छवि से जुड़े" }, @@ -1438,8 +1438,8 @@ }, "regenerateThumbnails": "थंबनेल पुनः लोड करें", "regenerateThumbnailsSubtitle": "सभी कवर के लिए गायब 1x/2x वेरिएंट्स का पुनर्निर्माण करें।", - "regenerateThumbnailsAction": "पुनर्जीवित करें", - "regenerateThumbnailsDone": "{{count}} थंबनेल पुनर्जीवित", + "regenerateThumbnailsAction": "पुनर्निर्माण करें", + "regenerateThumbnailsDone": "{{count}} थंबनेल पुनर्निर्मित", "reset": { "title": "ऐप को रीसेट करें", "subtitle": "सभी डेटा मिटाएँ और फ़ैक्टरी सेटिंग्स पर पुनर्स्थापित करें।", @@ -1528,8 +1528,8 @@ "subtitle": "एक माहौल चुनें — थीम बदलने पर पूरा ऐप तुरंत फिर से रंगा जाता है।" }, "mode": { - "light": "हल्का", - "dark": "गहरा" + "light": "लाइट", + "dark": "डार्क" }, "themes": { "default": "एमराल्ड लाइट", diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index fe6052a..e3917da 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -65,16 +65,16 @@ "keyHint": "Buat kunci API di Last.fm", "keyLabel": "Kunci API", "keyPlaceholder": "Kunci API Last.fm-mu", - "secretLabel": "Shared secret", - "secretPlaceholder": "Shared secret kamu", + "secretLabel": "Rahasia bersama", + "secretPlaceholder": "Rahasia bersama kamu", "userLabel": "Nama pengguna Last.fm", "userPlaceholder": "nama-kamu", "passwordLabel": "Kata sandi", "passwordPlaceholder": "Kata sandi Last.fm-mu", - "toggleSecret": "Tampilkan/sembunyikan secret", + "toggleSecret": "Tampilkan/sembunyikan rahasia", "togglePassword": "Tampilkan/sembunyikan kata sandi", "connect": "Hubungkan Last.fm", - "missingFields": "Mohon isi kunci API, secret, nama pengguna, dan kata sandi.", + "missingFields": "Mohon isi kunci API, rahasia, nama pengguna, dan kata sandi.", "connectedTitle": "Terhubung sebagai {{user}}", "connectedSubtitle": "Scrobbling otomatis aktif begitu kamu memutar lagu." }, @@ -263,7 +263,7 @@ "subtitle": "Dengaran ringan untuk bersantai" }, "workout": { - "title": "Workout", + "title": "Olahraga", "subtitle": "Tempo stabil untuk tetap bergerak" }, "party": { @@ -383,8 +383,8 @@ "duration": "Durasi", "unknown": "—" }, - "rating": "Peringkat", - "noRating": "Tanpa peringkat", + "rating": "Penilaian", + "noRating": "Tanpa penilaian", "viewToggle": { "label": "Mode tampilan", "list": "Daftar", @@ -510,7 +510,7 @@ "heatmap": { "title": "Aktivitas tahunan", "empty": "Belum ada pemutaran dalam 12 bulan terakhir.", - "summary": "{{time}} pemutaran sepanjang tahun — {{plays}} pemutaran", + "summary": "{{time}} didengarkan sepanjang tahun — {{plays}} pemutaran", "less": "Kurang", "more": "Lebih" }, @@ -686,7 +686,7 @@ "custom": "Kecepatan kustom", "pitchHint": "Pitch mengikuti kecepatan (tanpa time-stretching)." }, - "seek": "Posisi" + "seek": "Geser posisi" }, "queue": { "title": "Antrean putar", @@ -820,11 +820,11 @@ "goToAlbum": "Ke album", "goToArtist": "Ke artis", "showInExplorer": "Tampilkan di Penjelajah", - "copyPath": "Salin path berkas", + "copyPath": "Salin jalur berkas", "properties": "Properti", "startRadio": "Mulai radio", - "rating": "Peringkat", - "ratingNone": "Tanpa peringkat", + "rating": "Penilaian", + "ratingNone": "Tanpa penilaian", "batchEdit": "Sunting tag untuk {{count}} lagu…", "addToPlaylistNamed": "Tambahkan ke «{{name}}»", "removeFromPlaylistNamed": "Hapus dari «{{name}}»" @@ -877,7 +877,7 @@ "key": "Nada dasar", "fileSize": "Ukuran", "addedAt": "Ditambahkan pada", - "filePath": "Path", + "filePath": "Jalur", "showInExplorer": "Tampilkan di Penjelajah", "mono": "Mono", "stereo": "Stereo", @@ -1090,9 +1090,9 @@ "subtitle": "Menerima folder atau berkas audio" }, "abLoop": { - "setA": "Ulang A-B: tandai titik A di posisi saat ini", - "setB": "Ulang A-B: tandai titik B (A = {{a}})", - "armed": "Ulang A-B aktif: {{a}} → {{b}} (klik untuk membersihkan)" + "setA": "Loop A-B: tandai titik A di posisi saat ini", + "setB": "Loop A-B: tandai titik B (A = {{a}})", + "armed": "Loop A-B aktif: {{a}} → {{b}} (klik untuk membatalkan)" }, "smartPlaylistEditor": { "createTitle": "Daftar putar pintar baru", @@ -1267,7 +1267,7 @@ "title": "Last.fm", "subtitle": "Bio artis dan scrobbling. Buat kunci di last.fm/api/account/create", "placeholder": "Kunci API", - "secretPlaceholder": "Shared secret", + "secretPlaceholder": "Rahasia bersama", "save": "Simpan", "saved": "Tersimpan ✓", "show": "Tampilkan", @@ -1603,7 +1603,7 @@ }, "hiResBadge": { "title": "Lencana Hi-Res / DSD", - "subtitle": "Tampilkan pil «Hi-Res 24-bit» atau «DSD128» di samping lagu yang memenuhi syarat dan di bawah nama artis di bilah pemutar. Aktif secara default." + "subtitle": "Tampilkan lencana «Hi-Res 24-bit» atau «DSD128» di samping lagu yang memenuhi syarat dan di bawah nama artis di bilah pemutar. Aktif secara default." } }, "spotify": { diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index eb2a40e..49d8099 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -65,16 +65,16 @@ "keyHint": "Crea una chiave API su Last.fm", "keyLabel": "Chiave API", "keyPlaceholder": "La tua chiave API Last.fm", - "secretLabel": "Shared secret", - "secretPlaceholder": "Il tuo shared secret", + "secretLabel": "Segreto condiviso", + "secretPlaceholder": "Il tuo segreto condiviso", "userLabel": "Nome utente Last.fm", "userPlaceholder": "il-tuo-utente", "passwordLabel": "Password", "passwordPlaceholder": "La tua password Last.fm", - "toggleSecret": "Mostra/nascondi secret", + "toggleSecret": "Mostra/nascondi segreto", "togglePassword": "Mostra/nascondi password", "connect": "Collega Last.fm", - "missingFields": "Compila chiave API, secret, nome utente e password.", + "missingFields": "Compila chiave API, segreto, nome utente e password.", "connectedTitle": "Connesso come {{user}}", "connectedSubtitle": "Lo scrobbling si attiva automaticamente quando riproduci un brano." }, @@ -272,7 +272,7 @@ }, "sleep": { "title": "Sonno", - "subtitle": "Molto lento e morbido per addormentarsi" + "subtitle": "Molto lento e tranquillo per addormentarsi" } }, "recentlyPlayed": { @@ -294,7 +294,7 @@ "trackCount_other": "{{count}} brani" }, "onRepeat": { - "label": "On Repeat" + "label": "In ripetizione" }, "wrapped": { "eyebrow": "WaveFlow Wrapped", @@ -493,7 +493,7 @@ "byHour": { "title": "Ore di punta", "empty": "Nessun ascolto in questo periodo.", - "tooltip": "Ore {{hour}} — {{plays}} riproduzioni" + "tooltip": "{{hour}}h — {{plays}} riproduzioni" }, "topTracks": { "title": "Brani principali", @@ -1015,7 +1015,7 @@ "loading": "Caricamento…", "chip": { "dsdToPcm": "DSD → PCM", - "resample": "Resampling", + "resample": "Ricampionamento", "downmix": "Downmix", "eq": "EQ", "replayGain": "ReplayGain", @@ -1267,7 +1267,7 @@ "title": "Last.fm", "subtitle": "Biografie degli artisti e scrobbling. Crea una chiave su last.fm/api/account/create", "placeholder": "Chiave API", - "secretPlaceholder": "Shared secret", + "secretPlaceholder": "Segreto condiviso", "save": "Salva", "saved": "Salvato ✓", "show": "Mostra", @@ -1324,7 +1324,7 @@ "exclusive": { "title": "Modalità esclusiva WASAPI (Windows)", "subtitle": "Bit-perfect: bypassa il mixer di Windows per un'uscita senza interferenze. Ricade sulla modalità condivisa se il dispositivo rifiuta l'accesso esclusivo.", - "fallback": "Il dispositivo non accetta la modalità esclusiva. Ricado sulla modalità condivisa." + "fallback": "Il dispositivo non accetta la modalità esclusiva. Ricade sulla modalità condivisa." }, "mono": { "title": "Audio mono", @@ -1339,8 +1339,8 @@ "subtitle": "Avvia WaveFlow automaticamente all'avvio del sistema" }, "minimizeToTray": { - "title": "Riduci nella barra delle applicazioni", - "subtitle": "Chiudendo la finestra l'app viene ridotta nella barra delle applicazioni" + "title": "Riduci nell'area di notifica", + "subtitle": "Chiudendo la finestra l'app viene ridotta nell'area di notifica" }, "scanOnStart": { "title": "Scansiona all'avvio", @@ -1389,7 +1389,7 @@ }, "localArtistImages": { "title": "Immagini locali degli artisti", - "subtitle": "Cerca un'artist.jpg (o .jpg) accanto alla musica e la usa come foto dell'artista.", + "subtitle": "Cerca un file artist.jpg (o .jpg) accanto ai file musicali e usalo come foto dell'artista.", "action": "Scansiona", "done": "{{linked}} su {{considered}} artisti collegati a un'immagine locale" }, @@ -1405,7 +1405,7 @@ "import": { "action": "Importa", "dialogTitle": "Importa profilo WaveFlow", - "done": "Profilo importato (id {{id}}). Passa a esso dal selettore profili.", + "done": "Profilo importato (id {{id}}). Selezionalo dal selettore dei profili.", "failed": "Importazione non riuscita. Il file potrebbe essere corrotto o incompatibile." } }, @@ -1465,16 +1465,16 @@ "preset": { "custom": "Personalizzato", "flat": "Flat", - "acoustic": "Acoustic", - "bass_booster": "Bass booster", - "bass_reducer": "Bass reducer", + "acoustic": "Acustico", + "bass_booster": "Potenziamento bassi", + "bass_reducer": "Riduzione bassi", "classical": "Classica", "dance": "Dance", - "deep": "Deep", - "electronic": "Electronic", + "deep": "Profondo", + "electronic": "Elettronica", "hip_hop": "Hip-Hop", "jazz": "Jazz", - "latin": "Latin", + "latin": "Latino", "loudness": "Loudness", "lounge": "Lounge", "piano": "Piano", @@ -1482,8 +1482,8 @@ "rnb": "R&B", "rock": "Rock", "small_speakers": "Piccoli altoparlanti", - "spoken_word": "Spoken word", - "treble_booster": "Treble booster" + "spoken_word": "Parlato", + "treble_booster": "Potenziamento alti" } }, "backup": { @@ -1562,7 +1562,7 @@ "device": "Uscita audio", "miniPlayer": "Mini-player", "immersive": "Vista immersiva", - "audioQualityFooter": "Striscia qualità audio" + "audioQualityFooter": "Barra qualità audio" }, "coverAction": { "title": "Al clic sulla copertina", @@ -1608,7 +1608,7 @@ }, "spotify": { "notConfiguredTitle": "Registra la tua app Spotify", - "notConfiguredMessage": "Spotify richiede a ogni app di terze parti di registrare un Client ID gratuito prima di qualsiasi riproduzione. Creane uno nel Spotify Developer Dashboard, poi incollalo in Impostazioni di WaveFlow → Integrazioni.", + "notConfiguredMessage": "Spotify richiede a ogni app di terze parti di registrare un Client ID gratuito prima di qualsiasi riproduzione. Creane uno nella Spotify Developer Dashboard, poi incollalo in Impostazioni di WaveFlow → Integrazioni.", "openDashboard": "Apri Spotify Developer Dashboard", "openSettings": "Apri Impostazioni", "notConnectedTitle": "Spotify non è connesso", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 32906f6..b7bb5b7 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -148,11 +148,11 @@ "tracks_zero": "0曲", "tracks_one": "{{count}}曲", "tracks_other": "{{count}}曲", - "albums_zero": "0アルバム", - "albums_one": "{{count}} アルバム", - "albums_other": "{{count}} アルバム", - "see": "参照", - "new": "新作" + "albums_zero": "0枚", + "albums_one": "{{count}}枚", + "albums_other": "{{count}}枚", + "see": "表示", + "new": "新規作成" }, "nav": { "tracks": "曲", @@ -195,8 +195,8 @@ "search": { "placeholder": "曲名、アーティスト名、アルバム名を検索...", "results_zero": "結果はありません", - "results_one": "{{count}} 結果", - "results_other": "{{count}} 結果", + "results_one": "{{count}}件", + "results_other": "{{count}}件", "empty": "検索に一致する結果はありません", "filters": { "toggle": "詳細フィルター", @@ -213,7 +213,7 @@ } }, "theme": { - "enableLight": "明るいモードを有効にする", + "enableLight": "ライトモードに切り替え", "enableDark": "ダークモードを有効にする" }, "profile": { @@ -278,7 +278,7 @@ "recentlyPlayed": { "title": "最近再生した曲", "emptyTitle": "再生した曲はありません", - "emptyDescription": "タイトルを入力すると、ここに表示されます。新しい曲を見つけるたびに、再生履歴が蓄積されていきます。" + "emptyDescription": "曲を再生するとここに表示されます。新しい曲を見つけるたびに、再生履歴が蓄積されていきます。" }, "recentlyAdded": { "title": "最近追加された曲" @@ -294,12 +294,12 @@ "trackCount_other": "{{count}} 曲" }, "onRepeat": { - "label": "On Repeat" + "label": "ヘビーローテーション" }, "wrapped": { "eyebrow": "WaveFlow Wrapped", "title": "{{year}}年のあなた", - "subtitle": "あなたのアーティスト、分数、1年を数枚のスライドで。", + "subtitle": "あなたのアーティスト、聴いた時間、あなたの1年を数枚のスライドで。", "cta": "開く", "dismiss": "Wrapped バナーを隠す" }, @@ -315,9 +315,9 @@ "albums_zero": "0アルバム", "albums_one": "{{count}}アルバム", "albums_other": "{{count}}アルバム", - "artistes_zero": "0アーティスト", - "artistes_one": "{{count}}アーティスト", - "artistes_other": "{{count}}アーティスト", + "artistes_zero": "0組", + "artistes_one": "{{count}}組", + "artistes_other": "{{count}}組", "genres_zero": "0ジャンル", "genres_one": "{{count}}ジャンル", "genres_other": "{{count}}ジャンル", @@ -351,7 +351,7 @@ "description": "オーディオファイルをインポートして、ジャンルを確認しましょう。" }, "dossiers": { - "title": "インポートされたファイルはありません", + "title": "インポートされたフォルダはありません", "description": "アクションバーからフォルダをインポートして、ここでその中を確認してください。" } }, @@ -412,7 +412,7 @@ "trackCount_zero": "0曲", "trackCount_one": "{{count}}曲", "trackCount_other": "{{count}}曲", - "lastScanned": "スキャン元:{{date}}", + "lastScanned": "最終スキャン: {{date}}", "neverScanned": "未スキャン", "watched": "監視中", "watchOn": "変更を自動的に監視する", @@ -481,9 +481,9 @@ "totalPlays": "総再生回数", "totalTime": "再生時間", "uniqueTracks": "ユニーク曲数", - "uniqueArtists_zero": "0アーティスト", - "uniqueArtists_one": "{{count}}アーティスト", - "uniqueArtists_other": "{{count}}アーティスト", + "uniqueArtists_zero": "0組", + "uniqueArtists_one": "{{count}}組", + "uniqueArtists_other": "{{count}}組", "completionRate": "完聴率" }, "byDay": { @@ -696,7 +696,7 @@ "count_other": "{{count}}曲", "emptyTitle": "聴くものがない", "emptyDescription": "ライブラリから音楽を再生して、キューを埋めてください。", - "nowPlaying": "進行中", + "nowPlaying": "再生中", "upNext_zero": "次に再生", "upNext_one": "次に再生 · {{count}}曲", "upNext_other": "次に再生 · {{count}}曲", @@ -926,7 +926,7 @@ "playAll": "すべて再生", "shuffle": "シャッフル", "discography": "ディスコグラフィー", - "allTracks": "すべてのタイトル", + "allTracks": "すべての曲", "trackCount_zero": "0曲", "trackCount_one": "{{count}}曲", "trackCount_other": "{{count}}曲", @@ -985,7 +985,7 @@ "save": "PNGとして保存", "copy": "画像をコピー", "eyebrow": "再生中", - "on": "で" + "on": "収録" } }, "playerBar": { @@ -1035,7 +1035,7 @@ "sleepTimer": { "title": "スリープタイマー", "endOfTrack": "現在の曲の終わりに", - "endOfTrackBadge": "終", + "endOfTrackBadge": "曲末", "cancel": "キャンセル", "start": "OK", "customPlaceholder": "分", @@ -1066,7 +1066,7 @@ "lrc": "同期済み", "enhanced_lrc": "単語単位で同期", "ttml": "TTML 単語単位", - "plain": "非同期" + "plain": "同期なし" }, "toast": { "tagWriteSkipped": "TTML はキャッシュにのみ保存されました(音声タグには書き込まれていません)" @@ -1240,7 +1240,7 @@ "integrations": { "lastfm": { "title": "Last.fm", - "subtitle": "アーティストのプロフィールとスクロブリング。last.fm/api/account/create でキーを作成する", + "subtitle": "アーティストのバイオグラフィーとスクロブル。last.fm/api/account/create でキーを作成", "placeholder": "APIキー", "secretPlaceholder": "共有シークレット", "save": "保存", @@ -1318,7 +1318,7 @@ "subtitle": "システムの起動時に WaveFlow を自動的に起動する" }, "minimizeToTray": { - "title": "タスクバーに最小化", + "title": "システムトレイに最小化", "subtitle": "ウィンドウを閉じると、アプリケーションがタスクトレイに最小化されます" }, "scanOnStart": { @@ -1353,23 +1353,23 @@ "action": "分析する", "autoTitle": "自動分析", "autoSubtitle": "新しいトラックが追加されるスキャンが終了するたびに、バックグラウンドで分析を実行する", - "failed_one": "{{count}} 失敗", - "failed_other": "{{count}} 失敗" + "failed_one": "{{count}}件失敗", + "failed_other": "{{count}}件失敗" }, "artistImages": { "title": "アーティストの画像", "subtitle": "Deezerからアーティストのジャケット画像を取得する", - "action": "復元する", + "action": "取得", "progress": "{{current}}/{{total}} 処理済み" }, "localArtistImages": { "title": "ローカルアーティスト画像", "subtitle": "音楽ファイルの隣にある artist.jpg(または <名前>.jpg)を探し、アーティスト写真として利用します。", "action": "スキャン", - "done": "{{considered}} 人中 {{linked}} 人のアーティストにローカル画像をリンクしました" + "done": "{{considered}}組中{{linked}}組のアーティストにローカル画像をリンクしました" }, "dataFolder": { - "title": "データファイル", + "title": "データフォルダ", "subtitle": "データベースとカバー画像が入っているフォルダを開く", "action": "開く" }, @@ -1397,7 +1397,7 @@ "subtitle": "バグを報告するには、ログフォルダを開くか、最近のログをコピーしてチケットに貼り付けます。", "openFolder": "フォルダを開く", "copyLogs": "ログのコピー", - "copied": "コピーされたログ", + "copied": "ログをコピーしました", "copyFailed": "ログをコピーできませんでした" }, "gapless": { diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json index a3e6bcf..01bdce8 100644 --- a/src/i18n/locales/ko.json +++ b/src/i18n/locales/ko.json @@ -54,13 +54,13 @@ "changeHint": "폴더를 변경하려면 클릭하세요", "quickSettings": "빠른 설정", "autoAnalyze": { - "title": "트랙 자동 분석", + "title": "곡 자동 분석", "description": "스캔 중 BPM과 키를 감지 — Radio와 Mood Radio에 활용됩니다." } }, "lastfm": { "title": "Last.fm 연결", - "description": "스크로블링은 재생 기록을 Last.fm 프로필로 보냅니다. 그 대신 아티스트 소개와 유사 아티스트 추천을 앱 안에서 받아볼 수 있습니다.", + "description": "스크로블링을 통해 재생 기록이 Last.fm 프로필로 전송됩니다. 또한 앱 내에서 아티스트 소개 및 유사 아티스트 추천을 받아볼 수 있습니다.", "recommendedBadge": "추천", "keyHint": "Last.fm에서 API 키 생성", "keyLabel": "API 키", @@ -87,7 +87,7 @@ "errorTitle": "스캔 실패" }, "done": { - "title": "모두 준비됐어요!", + "title": "설정 완료!", "description": "라이브러리 스캔이 완료되어 재생 준비가 되었습니다.", "nextSteps": "다음 단계:", "bulletExplore": "라이브러리, 앨범, 아티스트 탭에서 라이브러리를 탐색하세요", @@ -99,7 +99,7 @@ "getStarted": "시작하기", "back": "뒤로", "continue": "계속", - "understood": "이해했어요", + "understood": "확인", "skipForNow": "지금은 건너뛰기", "scanLater": "나중에 스캔", "scanNow": "지금 스캔", @@ -107,7 +107,7 @@ }, "language": { "title": "언어 선택", - "description": "WaveFlow는 17개 언어를 지원합니다. 시스템 언어를 미리 선택했어요 — 잘못됐다면 바꾸세요.", + "description": "시스템 언어로 자동 설정되었습니다. 필요시 아래에서 변경해 주세요.", "detected": "시스템에서 감지됨", "fallback": "시스템 언어를 감지하지 못해 영어로 기본 설정했습니다. 아래에서 선택하세요." }, @@ -116,9 +116,9 @@ "description": "WaveFlow는 라이브러리를 구분하기 위해 프로필을 사용합니다. 나중에 알아보기 쉬운 이름을 정해 주세요.", "nameLabel": "프로필 이름", "namePlaceholder": "예: Daisy", - "hint": "필요하면 나중에 다른 프로필을 추가로 만들 수 있어요.", + "hint": "필요하면 나중에 다른 프로필을 추가로 만들 수 있습니다.", "required": "프로필 이름을 입력하세요.", - "unavailable": "프로필을 사용할 수 없어요. 잠시 후 다시 시도해 주세요." + "unavailable": "사용할 수 없는 프로필입니다. 잠시 후 다시 시도해 주세요." } }, "sidebar": { @@ -233,7 +233,7 @@ "night": "안녕히 주무세요" }, "banner": { - "badge": "들을 준비되셨나요?", + "badge": "감상 준비 완료", "subtitle": "좋아하는 음악을 발견하고 새로운 사운드를 탐험해 보세요.", "openFile": "파일 열기", "openFolder": "폴더 열기", @@ -299,7 +299,7 @@ "wrapped": { "eyebrow": "WaveFlow Wrapped", "title": "{{year}}년 결산", - "subtitle": "당신의 아티스트, 분, 1년을 몇 장의 슬라이드로.", + "subtitle": "나만의 아티스트, 청취 시간, 그리고 한 해의 기록을 슬라이드로 만나보세요.", "cta": "열기", "dismiss": "Wrapped 배너 숨기기" }, @@ -351,7 +351,7 @@ "description": "오디오 파일을 가져와 장르를 확인해 보세요." }, "dossiers": { - "title": "가져온 파일이 없습니다", + "title": "가져온 폴더가 없습니다", "description": "작업 표시줄에서 폴더를 가져와 이곳에서 내용을 살펴보세요." } }, @@ -367,11 +367,11 @@ "deleteConfirm": "확인을 위해 다시 클릭하세요", "importing": "가져오는 중…" }, - "changeCover": "커버 변경", + "changeCover": "앨범 아트 변경", "searchDeezer": "Deezer 검색", "localFile": "로컬 파일", "fetchMissingCovers": "누락된 모든 커버 가져오기", - "noCover": "커버 없음", + "noCover": "앨범 아트 없음", "fetchingCovers": "커버 가져오는 중... ({{current}} / {{total}})", "fetchCoversResult": "{{count}}개의 커버를 가져왔습니다", "fetchCoversFailed": "커버 가져오기 실패", @@ -480,7 +480,7 @@ "kpi": { "totalPlays": "총 재생 횟수", "totalTime": "재생 시간", - "uniqueTracks": "고유 트랙 수", + "uniqueTracks": "고유 곡 수", "uniqueArtists_zero": "아티스트 0명", "uniqueArtists_one": "아티스트 {{count}}명", "uniqueArtists_other": "아티스트 {{count}}명", @@ -525,7 +525,7 @@ }, "wrapped": { "loading": "당신의 한 해를 준비 중…", - "errorTitle": "Wrapped을 불러올 수 없습니다", + "errorTitle": "결산을 불러올 수 없습니다", "close": "닫기", "pause": "일시정지", "resume": "재개", @@ -541,7 +541,7 @@ "subtitle": "몇 곡을 들어보고 나중에 돌아오세요 — Wrapped는 들을수록 채워집니다." }, "intro": { - "eyebrow": "WaveFlow Wrapped", + "eyebrow": "WaveFlow 결산", "subtitle": "음악으로 보는 한 해." }, "minutes": { @@ -689,7 +689,7 @@ "seek": "탐색" }, "queue": { - "title": "재생 대기열", + "title": "재생 큐", "inactive": "비활성화됨", "count_zero": "0곡", "count_one": "{{count}}곡", @@ -813,7 +813,7 @@ "noPlaylists": "재생 목록이 없습니다. 아래에서 재생 목록을 만들어 보세요.", "createPlaylist": "새 재생 목록", "playNext": "다음 곡으로 재생", - "addToQueue": "대기열에 추가", + "addToQueue": "재생 큐에 추가", "like": "좋아요 추가", "unlike": "좋아요 취소", "removeFromPlaylist": "이 재생 목록에서 제거", @@ -939,7 +939,7 @@ "emptyTitle": "아티스트를 찾을 수 없음", "emptyDescription": "이 아티스트는 현재 활성 프로필에 더 이상 존재하지 않습니다.", "bio": { - "title": "약력" + "title": "아티스트 소개" }, "similar": { "title": "비슷한 아티스트", @@ -972,7 +972,7 @@ "aboutArtist": "아티스트 소개", "readMore": "더 보기", "readLess": "접기", - "noBio": "약력이 없습니다. 설정에서 Last.fm 키를 구성하세요.", + "noBio": "아티스트 소개가 없습니다. 설정에서 Last.fm 키를 구성하세요.", "nextInQueue": "대기열의 다음 곡", "openQueue": "대기열 열기", "lyrics": { @@ -1019,7 +1019,7 @@ "downmix": "다운믹스", "eq": "EQ", "replayGain": "ReplayGain", - "normalize": "노멀라이즈", + "normalize": "음량 평준화", "mono": "모노", "speed": "속도 {{value}}×" } @@ -1265,7 +1265,7 @@ "integrations": { "lastfm": { "title": "Last.fm", - "subtitle": "아티스트 정보 및 스크로블링. last.fm/api/account/create에서 키 생성", + "subtitle": "아티스트 정보 및 스크로블링. last.fm/api/account/create에서 키를 생성하세요.", "placeholder": "API 키", "secretPlaceholder": "공유 시크릿", "save": "저장", @@ -1322,7 +1322,7 @@ "subtitle": "트랙 간 BPM 차이에 따라 페이드 길이를 자동 조절합니다 (BPM을 알 수 없으면 고정 크로스페이드로 돌아갑니다)" }, "normalize": { - "title": "볼륨 조절", + "title": "음량 평준화", "subtitle": "볼륨이 너무 큰 곡의 음량을 줄여 전체적인 음량을 균일하게 맞춥니다" }, "replayGain": { @@ -1525,7 +1525,7 @@ "appearance": { "theme": { "title": "테마", - "subtitle": "분위기를 선택하세요 — 테마를 바꾸면 앱 전체가 즉시 다시 칠해집니다." + "subtitle": "분위기를 선택하세요 — 테마를 바꾸면 앱 전체의 색상이 즉시 변경됩니다." }, "mode": { "light": "라이트", @@ -1581,7 +1581,7 @@ } }, "wrappedBanner": { - "title": "WaveFlow Wrapped 배너", + "title": "WaveFlow 결산 배너", "subtitle": "홈 화면의 연간 결산 배너입니다. 자동 모드에서는 Wrapped 시즌(12월 1일 → 1월 31일) 동안만 표시됩니다.", "legend": "Wrapped 배너 표시", "seasonActive": "Wrapped 시즌이 진행 중입니다 — 배너가 표시됩니다.", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 883f417..bc6c167 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -60,18 +60,18 @@ }, "lastfm": { "title": "Last.fm koppelen", - "description": "Scrobblen stuurt je afspeellijst naar je Last.fm-profiel. In ruil krijg je artiestbio's en vergelijkbare artiesten direct in de app.", + "description": "Scrobblen stuurt je luisterbeurten naar je Last.fm-profiel. In ruil krijg je artiestbio's en vergelijkbare artiesten direct in de app.", "recommendedBadge": "Aanbevolen", "keyHint": "Maak een API-sleutel aan op Last.fm", "keyLabel": "API-sleutel", "keyPlaceholder": "Je Last.fm-API-sleutel", - "secretLabel": "Shared secret", - "secretPlaceholder": "Je shared secret", + "secretLabel": "Gedeeld geheim", + "secretPlaceholder": "Je gedeelde geheim", "userLabel": "Last.fm-gebruikersnaam", "userPlaceholder": "je-naam", "passwordLabel": "Wachtwoord", "passwordPlaceholder": "Je Last.fm-wachtwoord", - "toggleSecret": "Secret tonen/verbergen", + "toggleSecret": "Geheim tonen/verbergen", "togglePassword": "Wachtwoord tonen/verbergen", "connect": "Last.fm koppelen", "missingFields": "Vul API-sleutel, secret, gebruikersnaam en wachtwoord in.", @@ -118,7 +118,7 @@ "namePlaceholder": "Bv. Daisy", "hint": "Je kunt later extra profielen aanmaken als dat nodig is.", "required": "Profielnaam is vereist.", - "unavailable": "Profiel niet beschikbaar — probeer het zo opnieuw." + "unavailable": "Profiel niet beschikbaar — probeer het over een ogenblik opnieuw." } }, "sidebar": { @@ -166,7 +166,7 @@ "createPlaylistAria": "Nieuwe afspeellijst maken", "importM3uAria": "M3U-afspeellijst importeren", "importDialogTitle": "M3U-afspeellijst importeren", - "liked": "Vind-ik-leuks", + "liked": "Favoriete nummers", "recent": "Recent afgespeeld", "emptySubtext_zero": "0 nummers", "emptySubtext_one": "{{count}} nummer", @@ -243,7 +243,7 @@ }, "stats": { "library": "Bibliotheek", - "liked": "Vind-ik-leuks", + "liked": "Favoriete nummers", "recent": "Recent afgespeeld", "playlists": "Afspeellijsten" }, @@ -424,15 +424,15 @@ }, "liked": { "badge": "Verzameling", - "title": "Vind-ik-leuks", + "title": "Favoriete nummers", "count_zero": "0 nummers", "count_one": "{{count}} nummer", "count_other": "{{count}} nummers", - "emptyTitle": "Geen vind-ik-leuks", + "emptyTitle": "Geen favoriete nummers", "emptyDescription": "Nummers die je leuk vindt verschijnen hier. Verken je bibliotheek en geef je favoriete nummers een vind-ik-leuk.", "playAll": "Alles afspelen", - "unlike": "Vind-ik-leuk verwijderen", - "like": "Vind-ik-leuk geven" + "unlike": "Verwijderen uit favorieten", + "like": "Toevoegen aan favorieten" }, "history": { "badge": "Geschiedenis", @@ -442,12 +442,12 @@ "timeline": "Tijdlijn", "loadingMore": "Laden…", "endReached": "Begin van de geschiedenis", - "emptyTitle": "Nog geen afspeelacties", + "emptyTitle": "Nog geen luisterbeurten", "emptyDescription": "Speel een nummer af — het verschijnt hier zodra het meetelt.", - "shownCount_one": "{{count}} afspeelactie getoond", - "shownCount_other": "{{count}} afspeelacties getoond", - "plays_one": "{{count}} keer afgespeeld", - "plays_other": "{{count}} keer afgespeeld", + "shownCount_one": "{{count}} luisterbeurt getoond", + "shownCount_other": "{{count}} luisterbeurten getoond", + "plays_one": "{{count}} luisterbeurt", + "plays_other": "{{count}} luisterbeurten", "range": { "all": "Alles", "7d": "7 dagen", @@ -514,9 +514,9 @@ "less": "Minder", "more": "Meer" }, - "plays_zero": "0 keer afgespeeld", - "plays_one": "{{count}} keer afgespeeld", - "plays_other": "{{count}} keer afgespeeld", + "plays_zero": "0 luisterbeurten", + "plays_one": "{{count}} luisterbeurt", + "plays_other": "{{count}} luisterbeurten", "export": { "label": "Statistieken exporteren", "action": "Exporteren", @@ -533,9 +533,9 @@ "next": "Volgende slide", "yearPicker": "Kies een jaar", "backToHome": "Terug naar start", - "playsShort_zero": "0 keer afgespeeld", - "playsShort_one": "{{count}} keer afgespeeld", - "playsShort_other": "{{count}} keer afgespeeld", + "playsShort_zero": "0 luisterbeurten", + "playsShort_one": "{{count}} luisterbeurt", + "playsShort_other": "{{count}} luisterbeurten", "empty": { "title": "Nog geen luistergeschiedenis", "subtitle": "Speel wat nummers af en kom later terug — je Wrapped wordt opgebouwd terwijl je luistert." @@ -629,8 +629,8 @@ }, "shortcuts": { "playPause": "Afspelen / Pauzeren", - "previousTrack": "Vorige nummer", - "nextTrack": "Volgende nummer", + "previousTrack": "Vorig nummer", + "nextTrack": "Volgend nummer", "volume": "Volume", "mute": "Dempen", "keys": { @@ -814,8 +814,8 @@ "createPlaylist": "Nieuwe afspeellijst", "playNext": "Hierna afspelen", "addToQueue": "Toevoegen aan wachtrij", - "like": "Vind-ik-leuk geven", - "unlike": "Vind-ik-leuk verwijderen", + "like": "Toevoegen aan favorieten", + "unlike": "Verwijderen uit favorieten", "removeFromPlaylist": "Verwijderen uit deze afspeellijst", "goToAlbum": "Naar album", "goToArtist": "Naar artiest", @@ -848,7 +848,7 @@ }, "result": { "updated": "{{count}} nummer(s) bijgewerkt", - "failed": "{{count}} mislukt:" + "failed": "{{count}} fout(en):" } }, "trackProperties": { @@ -993,8 +993,8 @@ "nowPlaying": "Toon wat er nu speelt", "queue": "Wachtrij", "miniPlayer": "Mini-speler (altijd boven)", - "previous": "Vorige nummer", - "next": "Volgende nummer", + "previous": "Vorig nummer", + "next": "Volgend nummer", "openFullscreen": "Immersieve weergave", "devices": "Uitvoerapparaten", "moreActions": "Meer acties", @@ -1111,7 +1111,7 @@ "bpm": "BPM", "durationMin": "Duur in minuten", "hiRes": "Alleen Hi-Res", - "liked": "Alleen vind-ik-leuks", + "liked": "Alleen favorieten", "formats": "Formaten", "genres": "Genres", "sort": "Sorteren op", @@ -1150,7 +1150,7 @@ "childCount_zero": "leeg", "childCount_one": "{{count}} voorwaarde", "childCount_other": "{{count}} voorwaarden", - "notHint": "Sluit alles uit dat aan het kind voldoet", + "notHint": "Sluit alles uit dat aan de subregel voldoet", "deleteNode": "Verwijderen", "addCondition": "Voorwaarde", "addGroupAnd": "EN-groep", @@ -1172,7 +1172,7 @@ "durationMaxMs": "Duur (ms) ≤", "format": "Formaat =", "hiRes": "Hi-Res", - "liked": "Vind-ik-leuk", + "liked": "Favoriet", "ratingMin": "Beoordeling ≥" } }, @@ -1245,8 +1245,8 @@ "unbound": "Geen", "actions": { "togglePlayback": "Afspelen / Pauzeren", - "next": "Volgende nummer", - "previous": "Vorige nummer", + "next": "Volgend nummer", + "previous": "Vorig nummer", "volumeUp": "Volume omhoog", "volumeDown": "Volume omlaag", "toggleMute": "Dempen / Dempen opheffen", @@ -1255,7 +1255,7 @@ "toggleQueue": "Wachtrijpaneel in-/uitschakelen", "toggleNowPlaying": "Paneel «Speelt nu» in-/uitschakelen", "toggleLyrics": "Songtekstpaneel in-/uitschakelen", - "toggleLike": "Huidige nummer leuk vinden / niet meer leuk vinden" + "toggleLike": "Huidig nummer favoriet maken / verwijderen" } }, "offlineMode": { @@ -1267,7 +1267,7 @@ "title": "Last.fm", "subtitle": "Artiestbio's en scrobblen. Maak een sleutel aan op last.fm/api/account/create", "placeholder": "API-sleutel", - "secretPlaceholder": "Shared secret", + "secretPlaceholder": "Gedeeld geheim", "save": "Opslaan", "saved": "Opgeslagen ✓", "show": "Tonen", @@ -1464,26 +1464,26 @@ "reset": "Resetten", "preset": { "custom": "Aangepast", - "flat": "Flat", - "acoustic": "Acoustic", - "bass_booster": "Bass booster", - "bass_reducer": "Bass reducer", + "flat": "Vlak", + "acoustic": "Akoestisch", + "bass_booster": "Basversterker", + "bass_reducer": "Basverzwakker", "classical": "Klassiek", "dance": "Dance", - "deep": "Deep", - "electronic": "Electronic", + "deep": "Diep", + "electronic": "Elektronisch", "hip_hop": "Hip-Hop", "jazz": "Jazz", "latin": "Latin", - "loudness": "Loudness", + "loudness": "Luidheid", "lounge": "Lounge", "piano": "Piano", "pop": "Pop", "rnb": "R&B", "rock": "Rock", "small_speakers": "Kleine luidsprekers", - "spoken_word": "Spoken word", - "treble_booster": "Treble booster" + "spoken_word": "Gesproken woord", + "treble_booster": "Hoge-tonenversterker" } }, "backup": { @@ -1603,7 +1603,7 @@ }, "hiResBadge": { "title": "Hi-Res / DSD-badge", - "subtitle": "Toon de “Hi-Res 24-bit”- of “DSD128”-pil naast tracks die ervoor in aanmerking komen en onder de artiestennaam in de afspeelbalk. Standaard aan." + "subtitle": "Toon de “Hi-Res 24-bit”- of “DSD128”-pil naast nummers die ervoor in aanmerking komen en onder de artiestennaam in de afspeelbalk. Standaard aan." } }, "spotify": { diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index fe3643c..c05b993 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -55,7 +55,7 @@ "quickSettings": "Configurações rápidas", "autoAnalyze": { "title": "Auto-analisar faixas", - "description": "Detecta BPM e tonalidade durante o escaneamento — alimenta Radio e Mood Radio." + "description": "Detecta BPM e tonalidade durante o escaneamento — alimenta o Rádio e o Rádio por Humor." } }, "lastfm": { @@ -76,7 +76,7 @@ "connect": "Conectar Last.fm", "missingFields": "Preencha a chave de API, segredo, nome de usuário e senha.", "connectedTitle": "Conectado como {{user}}", - "connectedSubtitle": "O scrobbling começa automaticamente quando você toca uma faixa." + "connectedSubtitle": "O scrobbling começa automaticamente quando você reproduz uma faixa." }, "scan": { "title": "Escaneie sua biblioteca", @@ -249,7 +249,7 @@ }, "moodRadio": { "title": "Rádio por humor", - "subtitle": "Filtrada por tempo e energia", + "subtitle": "Filtrada por andamento e energia", "trackCount_one": "{{count}} faixa", "trackCount_other": "{{count}} faixas", "empty": "Não há faixas analisadas suficientes", @@ -288,13 +288,13 @@ "regenerate": "Regenerar", "regenerating": "Gerando…", "emptyTitle": "Nenhum Daily Mix ainda", - "emptyDescription": "Ouça algumas faixas e depois clique em Regenerar para criar suas mixes personalizadas.", + "emptyDescription": "Ouça algumas faixas e depois clique em Regenerar para criar suas mixagens personalizadas.", "label": "Daily Mix", "trackCount_one": "{{count}} faixa", "trackCount_other": "{{count}} faixas" }, "onRepeat": { - "label": "On Repeat" + "label": "Em repetição" }, "wrapped": { "eyebrow": "WaveFlow Wrapped", @@ -510,7 +510,7 @@ "heatmap": { "title": "Atividade do ano", "empty": "Ainda sem reproduções nos últimos 12 meses.", - "summary": "{{time}} ouvidos no ano — {{plays}} reproduções", + "summary": "{{time}} de audição no ano — {{plays}} reproduções", "less": "Menos", "more": "Mais" }, @@ -573,7 +573,7 @@ "subtitle": "O ritmo do seu ano", "loudness": "Loudness médio: {{lufs}} LUFS", "energy": { - "chill": "Chill", + "chill": "Relax", "warm": "Quente", "groove": "Groove", "energetic": "Energético", @@ -642,7 +642,7 @@ "empty": "Nenhuma entrada disponível", "expand": "Ver mais {{count}} entradas", "collapse": "Ver menos", - "breaking": "Mudança significativa" + "breaking": "Alteração incompatível" }, "credits": { "text": "Concebido e desenvolvido com paixão. Construído com tecnologias de código aberto.", @@ -665,7 +665,7 @@ "inactive": "Inativo", "controls": { "play": "Reproduzir", - "pause": "Pausa", + "pause": "Pausar", "previous": "Anterior", "next": "Próximo", "shuffleOn": "Desativar a reprodução aleatória", @@ -684,7 +684,7 @@ "title": "Velocidade de reprodução", "slider": "Controle de velocidade", "custom": "Velocidade personalizada", - "pitchHint": "O tom acompanha a velocidade (sem time-stretching)." + "pitchHint": "O tom acompanha a velocidade (sem alterar a duração)." }, "seek": "Posição" }, @@ -697,9 +697,9 @@ "emptyTitle": "Nada para ouvir", "emptyDescription": "Reproduza uma música da sua biblioteca para preencher a fila.", "nowPlaying": "Tocando agora", - "upNext_zero": "Próximo", - "upNext_one": "Próximo · {{count}} faixa", - "upNext_other": "Próximo · {{count}} faixas", + "upNext_zero": "A seguir", + "upNext_one": "A seguir · {{count}} faixa", + "upNext_other": "A seguir · {{count}} faixas", "radio": { "label": "Rádio", "basedOn": "Baseada em “{{title}}”" @@ -985,7 +985,7 @@ "save": "Salvar como PNG", "copy": "Copiar imagem", "eyebrow": "Tocando agora", - "on": "no" + "on": "em" } }, "playerBar": { @@ -1360,11 +1360,11 @@ }, "showSleepTimer": { "title": "Fixar o temporizador na barra", - "subtitle": "Quando desativado, o temporizador continua disponível no menu « … »" + "subtitle": "Quando desativado, o temporizador continua disponível no menu '...'" }, "showAbLoop": { "title": "Fixar o loop A-B na barra", - "subtitle": "Quando desativado, o loop A-B continua disponível no menu « … »" + "subtitle": "Quando desativado, o loop A-B continua disponível no menu '...'" }, "showSpotify": { "title": "Mostrar entrada do Spotify", @@ -1447,7 +1447,7 @@ }, "diagnostics": { "title": "Registro do aplicativo", - "subtitle": "Para relatar um erro, abra a pasta de registros ou copie os registros recentes para colá-los em um tíquete.", + "subtitle": "Para relatar um erro, abra a pasta de registros ou copie os registros recentes para colá-los em um chamado.", "openFolder": "Abrir pasta", "copyLogs": "Copiar registros", "copied": "Registros copiados", @@ -1459,7 +1459,7 @@ }, "equalizer": { "title": "Equalizador", - "subtitle": "Seis bandas peaking, ±12 dB. Arraste os pontos para ajustar.", + "subtitle": "Seis bandas de pico, ±12 dB. Arraste os pontos para ajustar.", "presets": "Predefinições", "reset": "Redefinir", "preset": { @@ -1603,7 +1603,7 @@ }, "hiResBadge": { "title": "Selo Hi-Res / DSD", - "subtitle": "Mostra a pílula «Hi-Res 24-bit» ou «DSD128» ao lado das faixas elegíveis e abaixo do nome do artista na barra do reprodutor. Ativado por padrão." + "subtitle": "Mostra o selo \"Hi-Res 24-bit\" ou \"DSD128\" ao lado das faixas elegíveis e abaixo do nome do artista na barra do reprodutor. Ativado por padrão." } }, "spotify": { diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index bdb3414..72990f5 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -84,7 +84,7 @@ "noFolder": "Nenhuma pasta selecionada", "readyHint": "A pasta está configurada. Inicia a análise quando quiseres.", "scanning": "A analisar a tua biblioteca…", - "errorTitle": "Análise falhou" + "errorTitle": "Falha na análise" }, "done": { "title": "Está tudo pronto!", @@ -228,8 +228,8 @@ }, "home": { "greeting": { - "morning": "Olá", - "evening": "Boa noite", + "morning": "Bom dia", + "evening": "Boa tarde", "night": "Boa noite" }, "banner": { @@ -249,14 +249,14 @@ }, "moodRadio": { "title": "Rádio por humor", - "subtitle": "Filtrada por tempo e energia", + "subtitle": "Filtrada por ritmo e energia", "trackCount_one": "{{count}} faixa", "trackCount_other": "{{count}} faixas", "empty": "Não há faixas analisadas suficientes", "loading": "A iniciar…", "focus": { "title": "Foco", - "subtitle": "Tempos calmos para trabalho profundo" + "subtitle": "Ritmos calmos para trabalho profundo" }, "chill": { "title": "Descontrair", @@ -268,7 +268,7 @@ }, "party": { "title": "Festa", - "subtitle": "Tempo dançante, energia alta" + "subtitle": "Ritmos dançantes, energia alta" }, "sleep": { "title": "Dormir", @@ -414,9 +414,9 @@ "trackCount_other": "{{count}} faixas", "lastScanned": "Última análise: {{date}}", "neverScanned": "nunca", - "watched": "Sob vigilância", + "watched": "Monitorizada", "watchOn": "Monitorizar automaticamente as alterações", - "watchOff": "Interromper a vigilância", + "watchOff": "Deixar de monitorizar", "remove": "Remover pasta da biblioteca", "removeConfirm": "Clica novamente para confirmar" }, @@ -696,7 +696,7 @@ "count_other": "{{count}} faixas", "emptyTitle": "Não há nada para ouvir", "emptyDescription": "Reproduz uma música da tua biblioteca para preencher a fila.", - "nowPlaying": "Em curso", + "nowPlaying": "A reproduzir", "upNext_zero": "A seguir", "upNext_one": "A seguir · {{count}} faixa", "upNext_other": "A seguir · {{count}} faixas", @@ -745,7 +745,7 @@ "delete": { "title": "Eliminar {{name}}?", "subtitle": "Este perfil será removido permanentemente.", - "warning": "Todas as bibliotecas, listas de reprodução e histórico de audição deste perfil serão perdidos. Esta ação não pode ser anulada.", + "warning": "Todas as bibliotecas, listas de reprodução e o histórico de audição deste perfil serão eliminados. Esta ação não pode ser anulada.", "submit": "Eliminar perfil", "submitting": "A eliminar…" } @@ -985,7 +985,7 @@ "save": "Guardar como PNG", "copy": "Copiar imagem", "eyebrow": "A tocar agora", - "on": "no" + "on": "em" } }, "playerBar": { @@ -1255,7 +1255,7 @@ "toggleQueue": "Mostrar / Ocultar fila", "toggleNowPlaying": "Mostrar / Ocultar reprodução", "toggleLyrics": "Mostrar / Ocultar letra", - "toggleLike": "Gosto / Remover" + "toggleLike": "Adicionar / Remover dos favoritos" } }, "offlineMode": { @@ -1389,7 +1389,7 @@ "subtitle": "Calcular BPM, loudness e pico para faixas ainda não analisadas", "action": "Analisar", "autoTitle": "Análise automática", - "autoSubtitle": "Executar análise em segundo plano após cada análise que adicione novas faixas", + "autoSubtitle": "Executar a análise em segundo plano após cada scan que adicione novas faixas", "failed_one": "{{count}} falha", "failed_other": "{{count}} falhas" }, @@ -1436,7 +1436,7 @@ "action": "Pré-carregar", "progress": "{{current}}/{{total}} processadas · {{hits}} encontradas" }, - "regenerateThumbnails": "Atualizar as miniaturas", + "regenerateThumbnails": "Regenerar miniaturas", "regenerateThumbnailsSubtitle": "Recriar as variantes 1x/2x em falta para todas as capas", "regenerateThumbnailsAction": "Regenerar", "regenerateThumbnailsDone": "{{count}} miniaturas atualizadas", @@ -1525,7 +1525,7 @@ "appearance": { "theme": { "title": "Tema", - "subtitle": "Escolha uma vibe — mudar de tema retinge toda a app instantaneamente." + "subtitle": "Escolhe um ambiente — mudar de tema altera as cores de toda a app instantaneamente." }, "mode": { "light": "Claro", @@ -1603,7 +1603,7 @@ }, "hiResBadge": { "title": "Distintivo Hi-Res / DSD", - "subtitle": "Mostra a pílula «Hi-Res 24-bit» ou «DSD128» ao lado das faixas elegíveis e sob o nome do artista na barra do reprodutor. Ativado por defeito." + "subtitle": "Mostra o selo «Hi-Res 24-bit» ou «DSD128» ao lado das faixas elegíveis e sob o nome do artista na barra do reprodutor. Ativado por defeito." } }, "spotify": { diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 0ab3167..f4fd368 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -138,6 +138,7 @@ "library": { "tracksCount_zero": "0 треков", "tracksCount_one": "{{count}} трек", + "tracksCount_few": "{{count}} трека", "tracksCount_other": "{{count}} треков", "createLibraryAria": "Создать новую библиотеку", "none": "Нет библиотек", @@ -147,9 +148,11 @@ "countLine": "{{tracks}} · {{albums}}", "tracks_zero": "0 треков", "tracks_one": "{{count}} трек", + "tracks_few": "{{count}} трека", "tracks_other": "{{count}} треков", "albums_zero": "0 альбомов", "albums_one": "{{count}} альбом", + "albums_few": "{{count}} альбома", "albums_other": "{{count}} альбомов", "see": "Открыть", "new": "Новая" @@ -170,6 +173,7 @@ "recent": "Недавно проигранные", "emptySubtext_zero": "0 треков", "emptySubtext_one": "{{count}} трек", + "emptySubtext_few": "{{count}} трека", "emptySubtext_other": "{{count}} треков", "createSmartAria": "Создать умный плейлист" }, @@ -188,6 +192,7 @@ "myLibrary": { "playlistSubtext_zero": "0 треков", "playlistSubtext_one": "{{count}} трек", + "playlistSubtext_few": "{{count}} трека", "playlistSubtext_other": "{{count}} треков" } }, @@ -196,6 +201,7 @@ "placeholder": "Поиск трека, исполнителя или альбома…", "results_zero": "Нет результатов", "results_one": "{{count}} результат", + "results_few": "{{count}} результата", "results_other": "{{count}} результатов", "empty": "Ничего не найдено по вашему запросу", "filters": { @@ -230,7 +236,7 @@ "greeting": { "morning": "Доброе утро", "evening": "Добрый вечер", - "night": "Спокойной ночи" + "night": "Доброй ночи" }, "banner": { "badge": "Готовы слушать", @@ -248,9 +254,10 @@ "playlists": "Плейлисты" }, "moodRadio": { - "title": "Mood Radio", + "title": "Радио по настроению", "subtitle": "Фильтр по темпу и энергии", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков", "empty": "Недостаточно проанализированных треков", "loading": "Запуск…", @@ -259,7 +266,7 @@ "subtitle": "Спокойный темп для сосредоточенной работы" }, "chill": { - "title": "Chill", + "title": "Расслабление", "subtitle": "Лёгкое прослушивание, чтобы расслабиться" }, "workout": { @@ -291,6 +298,7 @@ "emptyDescription": "Послушайте несколько треков и нажмите «Обновить», чтобы создать персональные миксы.", "label": "Daily Mix", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков" }, "onRepeat": { @@ -311,18 +319,23 @@ "subtext": { "morceaux_zero": "0 треков", "morceaux_one": "{{count}} трек", + "morceaux_few": "{{count}} трека", "morceaux_other": "{{count}} треков", "albums_zero": "0 альбомов", "albums_one": "{{count}} альбом", + "albums_few": "{{count}} альбома", "albums_other": "{{count}} альбомов", "artistes_zero": "0 исполнителей", "artistes_one": "{{count}} исполнитель", + "artistes_few": "{{count}} исполнителя", "artistes_other": "{{count}} исполнителей", "genres_zero": "0 жанров", "genres_one": "{{count}} жанр", + "genres_few": "{{count}} жанра", "genres_other": "{{count}} жанров", "dossiers_zero": "0 папок", "dossiers_one": "{{count}} папка", + "dossiers_few": "{{count}} папки", "dossiers_other": "{{count}} папок" } }, @@ -393,24 +406,29 @@ "albumGrid": { "trackCount_zero": "0 треков", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков" }, "artistList": { "trackCount_zero": "0 треков", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков", "albumCount_zero": "0 альбомов", "albumCount_one": "{{count}} альбом", + "albumCount_few": "{{count}} альбома", "albumCount_other": "{{count}} альбомов" }, "genreList": { "trackCount_zero": "0 треков", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков" }, "folderList": { "trackCount_zero": "0 треков", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков", "lastScanned": "Отсканировано: {{date}}", "neverScanned": "никогда", @@ -427,6 +445,7 @@ "title": "Любимые треки", "count_zero": "0 треков", "count_one": "{{count}} трек", + "count_few": "{{count}} трека", "count_other": "{{count}} треков", "emptyTitle": "Нет любимых треков", "emptyDescription": "Треки, которые вы лайкнете, появятся здесь. Откройте библиотеку и добавьте в любимое те, что нравятся.", @@ -445,8 +464,10 @@ "emptyTitle": "Пока нет прослушиваний", "emptyDescription": "Запустите трек — он появится здесь, как только будет засчитан.", "shownCount_one": "Показано {{count}} прослушивание", + "shownCount_few": "Показано {{count}} прослушивания", "shownCount_other": "Показано {{count}} прослушиваний", "plays_one": "{{count}} прослушивание", + "plays_few": "{{count}} прослушивания", "plays_other": "{{count}} прослушиваний", "range": { "all": "Всё", @@ -461,6 +482,7 @@ "title": "Недавно проигранные", "count_zero": "0 треков", "count_one": "{{count}} трек", + "count_few": "{{count}} трека", "count_other": "{{count}} треков", "emptyTitle": "Нет недавних треков", "emptyDescription": "Треки, которые вы слушаете, появятся здесь автоматически." @@ -483,6 +505,7 @@ "uniqueTracks": "Уникальные треки", "uniqueArtists_zero": "0 исполнителей", "uniqueArtists_one": "{{count}} исполнитель", + "uniqueArtists_few": "{{count}} исполнителя", "uniqueArtists_other": "{{count}} исполнителей", "completionRate": "Доля полностью прослушанных" }, @@ -516,6 +539,7 @@ }, "plays_zero": "0 прослушиваний", "plays_one": "{{count}} прослушивание", + "plays_few": "{{count}} прослушивания", "plays_other": "{{count}} прослушиваний", "export": { "label": "Экспорт статистики", @@ -535,6 +559,7 @@ "backToHome": "На главную", "playsShort_zero": "0 прослушиваний", "playsShort_one": "{{count}} прослушивание", + "playsShort_few": "{{count}} прослушивания", "playsShort_other": "{{count}} прослушиваний", "empty": { "title": "Пока нет истории прослушиваний", @@ -548,6 +573,7 @@ "eyebrow": "Вы прослушали", "subtitle_zero": "0 минут музыки", "subtitle_one": "{{count}} минута музыки", + "subtitle_few": "{{count}} минуты музыки", "subtitle_other": "{{count}} минут музыки" }, "stats": { @@ -573,11 +599,11 @@ "subtitle": "Ритм, который сопровождал вас весь год", "loudness": "Средняя громкость: {{lufs}} LUFS", "energy": { - "chill": "Chill", + "chill": "Расслабление", "warm": "Тёплый", - "groove": "Groove", + "groove": "Грув", "energetic": "Энергичный", - "fire": "Заряженный" + "fire": "Зажигательный" } }, "clock": { @@ -588,6 +614,7 @@ "eyebrow": "Ваша самая длинная серия", "daysLabel_zero": "0 дней подряд", "daysLabel_one": "{{count}} день подряд", + "daysLabel_few": "{{count}} дня подряд", "daysLabel_other": "{{count}} дней подряд", "range": "С {{start}} по {{end}}", "daysShort": "дней подряд" @@ -620,8 +647,8 @@ }, "sections": { "frameworkDesktop": "Десктопный фреймворк", - "frontend": "Frontend", - "backend": "Backend (Rust)", + "frontend": "Фронтенд", + "backend": "Бэкенд (Rust)", "audio": "Аудио", "shortcuts": "Сочетания клавиш", "changelog": "Список изменений", @@ -684,7 +711,7 @@ "title": "Скорость воспроизведения", "slider": "Ползунок скорости", "custom": "Своя скорость", - "pitchHint": "Высота следует за скоростью (без time-stretching)." + "pitchHint": "Высота тона меняется вместе со скоростью (без растягивания времени)." }, "seek": "Позиция" }, @@ -693,15 +720,17 @@ "inactive": "НЕАКТИВНА", "count_zero": "0 треков", "count_one": "{{count}} трек", + "count_few": "{{count}} трека", "count_other": "{{count}} треков", "emptyTitle": "Нечего слушать", "emptyDescription": "Запустите трек из библиотеки, чтобы заполнить очередь.", "nowPlaying": "Сейчас играет", "upNext_zero": "Далее", "upNext_one": "Далее · {{count}} трек", + "upNext_few": "Далее · {{count}} трека", "upNext_other": "Далее · {{count}} треков", "radio": { - "label": "Radio", + "label": "Радио", "basedOn": "На основе «{{title}}»" } }, @@ -788,6 +817,7 @@ "badge": "Плейлист", "trackCount_zero": "0 треков", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков", "actions": { "play": "Воспроизвести", @@ -833,7 +863,7 @@ "title": "Пакетное редактирование тегов", "subtitle": "Выбрано треков: {{count}}", "help": "Отметьте поля, которые нужно применить ко всем трекам. Неотмеченные поля останутся без изменений у каждого трека.", - "submit": "Применить ({{count}} поле(й))", + "submit": "Применить ({{count}} полей)", "fields": { "artist": "Исполнитель", "album": "Альбом", @@ -899,6 +929,7 @@ "toolbarLabel": "Действия с выбранным", "count_zero": "0 выбрано", "count_one": "{{count}} выбран", + "count_few": "{{count}} выбрано", "count_other": "{{count}} выбрано", "play": "Воспроизвести", "addToQueue": "Добавить в очередь", @@ -913,6 +944,7 @@ "shuffle": "Перемешать", "trackCount_zero": "0 треков", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков", "discHeader": "Диск {{number}}", "releaseDate": "Дата выхода", @@ -929,12 +961,15 @@ "allTracks": "Все треки", "trackCount_zero": "0 треков", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков", "albumCount_zero": "0 альбомов", "albumCount_one": "{{count}} альбом", + "albumCount_few": "{{count}} альбома", "albumCount_other": "{{count}} альбомов", "albumTrackCount_zero": "0 треков", "albumTrackCount_one": "{{count}} трек", + "albumTrackCount_few": "{{count}} трека", "albumTrackCount_other": "{{count}} треков", "emptyTitle": "Исполнитель не найден", "emptyDescription": "Этого исполнителя больше нет в активном профиле.", @@ -962,6 +997,7 @@ "shuffle": "Перемешать", "trackCount_zero": "0 треков", "trackCount_one": "{{count}} трек", + "trackCount_few": "{{count}} трека", "trackCount_other": "{{count}} треков", "emptyTitle": "Жанр не найден", "emptyDescription": "Этого жанра больше нет в активном профиле.", @@ -1043,6 +1079,7 @@ "customPlaceholder": "Мин.", "customAriaLabel": "Своя длительность в минутах", "minutes_one": "{{count}} мин", + "minutes_few": "{{count}} мин", "minutes_other": "{{count}} мин" }, "lyrics": { @@ -1083,6 +1120,7 @@ "rescan": "Пересканировать", "deleteOthers_zero": "Удалять нечего", "deleteOthers_one": "Удалить {{count}} дубликат", + "deleteOthers_few": "Удалить {{count}} дубликата", "deleteOthers_other": "Удалить {{count}} дубликатов", "keepAria": "Сохранить {{title}}" }, @@ -1151,6 +1189,7 @@ "matchNoneEmpty": "(нет треков)", "childCount_zero": "пусто", "childCount_one": "{{count}} условие", + "childCount_few": "{{count}} условия", "childCount_other": "{{count}} условий", "notHint": "Исключает всё, что подходит под вложенное условие", "deleteNode": "Удалить", @@ -1312,7 +1351,7 @@ } }, "crossfade": { - "title": "Crossfade", + "title": "Кроссфейд", "subtitle": "Плавные переходы между треками (скоро)" }, "normalize": { @@ -1381,6 +1420,7 @@ "autoTitle": "Автоматический анализ", "autoSubtitle": "Запускать анализ в фоне после каждого сканирования, которое добавляет новые треки", "failed_one": "{{count}} ошибка", + "failed_few": "{{count}} ошибки", "failed_other": "{{count}} ошибок" }, "artistImages": { @@ -1448,12 +1488,12 @@ "subtitle": "Показывает спектр в реальном времени в иммерсивном режиме (лёгкий FFT в потоке декодера)" }, "smartCrossfade": { - "title": "Умный crossfade", - "subtitle": "Автоматически пропускает crossfade между двумя треками одного альбома (отлично для концептуальных альбомов и live-сетов)" + "title": "Умный кроссфейд", + "subtitle": "Автоматически пропускает кроссфейд между двумя треками одного альбома (отлично для концептуальных альбомов и live-сетов)" }, "dynamicCrossfade": { - "title": "Динамический crossfade", - "subtitle": "Подстраивает длительность crossfade под разницу темпов треков (возвращается к фиксированному crossfade, если BPM неизвестен)" + "title": "Динамический кроссфейд", + "subtitle": "Подстраивает длительность кроссфейда под разницу темпов треков (возвращается к фиксированному кроссфейду, если BPM неизвестен)" }, "gapless": { "title": "Воспроизведение без пауз (gapless)", @@ -1461,31 +1501,31 @@ }, "equalizer": { "title": "Эквалайзер", - "subtitle": "Шесть peaking-полос, ±12 дБ. Перетаскивайте точки, чтобы изменять кривую.", + "subtitle": "Шесть пиковых полос, ±12 дБ. Перетаскивайте точки, чтобы настраивать кривую.", "presets": "Пресеты", "reset": "Сбросить", "preset": { "custom": "Свой", - "flat": "Flat", - "acoustic": "Acoustic", - "bass_booster": "Bass booster", - "bass_reducer": "Bass reducer", + "flat": "Ровный", + "acoustic": "Акустика", + "bass_booster": "Усиление баса", + "bass_reducer": "Ослабление баса", "classical": "Классика", - "dance": "Dance", - "deep": "Deep", - "electronic": "Electronic", + "dance": "Танцевальная", + "deep": "Глубокий", + "electronic": "Электронная", "hip_hop": "Hip-Hop", "jazz": "Jazz", "latin": "Latin", - "loudness": "Loudness", - "lounge": "Lounge", + "loudness": "Громкость", + "lounge": "Лаунж", "piano": "Piano", "pop": "Pop", "rnb": "R&B", "rock": "Rock", "small_speakers": "Малые колонки", - "spoken_word": "Spoken word", - "treble_booster": "Treble booster" + "spoken_word": "Разговорный", + "treble_booster": "Усиление высоких" } }, "backup": { @@ -1493,9 +1533,11 @@ "subtitle": "Регулярно создаёт архив .waveflow для каждого профиля в выбранной папке.", "intervalLabel": "Периодичность", "intervalDays_one": "Каждый день", + "intervalDays_few": "Каждые {{count}} дня", "intervalDays_other": "Каждые {{count}} дней", "retentionLabel": "Сколько хранить архивов", "retentionKeep_one": "{{count}} архив на профиль", + "retentionKeep_few": "{{count}} архива на профиль", "retentionKeep_other": "{{count}} архивов на профиль", "includeMetadataArtworkLabel": "Включать кеш обложек Deezer", "includeMetadataArtworkHint": "Архив больше, полное офлайн-восстановление. Снимите флажок для облегчённых архивов (кеш будет получен заново по требованию).", @@ -1505,6 +1547,7 @@ "neverRun": "никогда", "runNow": "Создать копию сейчас", "runOk_one": "Записан {{count}} архив.", + "runOk_few": "Записано {{count}} архива.", "runOk_other": "Записано архивов: {{count}}.", "errors": { "loadFailed": "Не удалось загрузить настройки резервного копирования.", @@ -1578,7 +1621,7 @@ }, "none": { "label": "Ничего не делать", - "description": "Отключает клик полностью — удобно, если вы случайно его срабатываете." + "description": "Отключает клик полностью — удобно, если вы нажимаете случайно." } } }, diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index af60a11..10144c7 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -37,11 +37,11 @@ "defaultLibraryName": "Müzik", "welcome": { "title": "WaveFlow'a hoş geldin", - "description": "Kişisel local-first müzik çaların. Streaming aboneliği olmadan tüm kütüphanenin tadını çıkar." + "description": "Kişisel, yerel tabanlı müzik çaların. Akış aboneliği olmadan tüm kütüphanenin tadını çıkar." }, "localOnly": { "title": "Önemli: yalnızca yerel müzik", - "description": "WaveFlow bir streaming servisi DEĞİLDİR. Cihazında zaten bulunan dosyaları çalar.", + "description": "WaveFlow bir akış servisi DEĞİLDİR. Cihazında zaten bulunan dosyaları çalar.", "calloutTitle": "Bilmen gerekenler", "bulletOwn": "Kendi kütüphaneni getir (MP3, FLAC, ALAC, OGG, DSD…)", "bulletImport": "Bir klasör içe aktar veya dosyaları sürükleyip bırak", @@ -55,7 +55,7 @@ "quickSettings": "Hızlı ayarlar", "autoAnalyze": { "title": "Parçaları otomatik analiz et", - "description": "Tarama sırasında BPM ve tonu algılar — Radio ve Mood Radio için kullanılır." + "description": "Tarama sırasında BPM ve tonu algılar — Radyo ve Mod Radyosu için kullanılır." } }, "lastfm": { @@ -65,16 +65,16 @@ "keyHint": "Last.fm'de bir API anahtarı oluştur", "keyLabel": "API anahtarı", "keyPlaceholder": "Last.fm API anahtarın", - "secretLabel": "Paylaşılan secret", - "secretPlaceholder": "Paylaşılan secret'ın", + "secretLabel": "Paylaşılan gizli anahtar", + "secretPlaceholder": "Paylaşılan gizli anahtarın", "userLabel": "Last.fm kullanıcı adı", "userPlaceholder": "kullanıcı-adın", "passwordLabel": "Şifre", "passwordPlaceholder": "Last.fm şifren", - "toggleSecret": "Secret'ı göster/gizle", + "toggleSecret": "Gizli anahtarı göster/gizle", "togglePassword": "Şifreyi göster/gizle", "connect": "Last.fm'i bağla", - "missingFields": "Lütfen API anahtarı, secret, kullanıcı adı ve şifreyi doldur.", + "missingFields": "Lütfen API anahtarı, gizli anahtar, kullanıcı adı ve şifreyi doldur.", "connectedTitle": "{{user}} olarak bağlandı", "connectedSubtitle": "Bir parça çaldığında scrobbling otomatik olarak başlar." }, @@ -248,7 +248,7 @@ "playlists": "Çalma listeleri" }, "moodRadio": { - "title": "Mood Radio", + "title": "Mod Radyosu", "subtitle": "Tempo ve enerjiye göre filtrelenmiş", "trackCount_one": "{{count}} parça", "trackCount_other": "{{count}} parça", @@ -259,11 +259,11 @@ "subtitle": "Odaklanmak için sakin tempolar" }, "chill": { - "title": "Chill", + "title": "Rahatlama", "subtitle": "Gevşemek için hafif dinleme" }, "workout": { - "title": "Workout", + "title": "Antrenman", "subtitle": "Hareketi sürdürmek için kararlı tempo" }, "party": { @@ -288,7 +288,7 @@ "regenerate": "Yeniden oluştur", "regenerating": "Oluşturuluyor…", "emptyTitle": "Henüz Daily Mix yok", - "emptyDescription": "Birkaç parça dinle ve sonra «Yeniden oluştur»a tıklayarak kişisel mixlerini oluştur.", + "emptyDescription": "Birkaç parça dinle ve sonra «Yeniden oluştur»a tıklayarak kişisel mikslerini oluştur.", "label": "Daily Mix", "trackCount_one": "{{count}} parça", "trackCount_other": "{{count}} parça" @@ -493,7 +493,7 @@ "byHour": { "title": "Yoğun saatler", "empty": "Bu dönemde dinleme yok.", - "tooltip": "{{hour}} — {{plays}} oynatma" + "tooltip": "{{hour}}. saat — {{plays}} oynatma" }, "topTracks": { "title": "En çok dinlenen parçalar", @@ -573,11 +573,11 @@ "subtitle": "Yılına eşlik eden ritim", "loudness": "Ortalama ses yüksekliği: {{lufs}} LUFS", "energy": { - "chill": "Chill", + "chill": "Rahatlatıcı", "warm": "Sıcak", - "groove": "Groove", + "groove": "Ritmik", "energetic": "Enerjik", - "fire": "Yoğun" + "fire": "Ateşli" } }, "clock": { @@ -619,7 +619,7 @@ "developedBy": "Geliştiren" }, "sections": { - "frameworkDesktop": "Masaüstü çatısı", + "frameworkDesktop": "Masaüstü altyapısı", "frontend": "Frontend", "backend": "Backend (Rust)", "audio": "Ses", @@ -684,7 +684,7 @@ "title": "Oynatma hızı", "slider": "Hız kaydırıcı", "custom": "Özel hız", - "pitchHint": "Ton, hızı takip eder (time-stretching yok)." + "pitchHint": "Ton, hızı takip eder (zaman genişletme yok)." }, "seek": "Konum" }, @@ -1005,8 +1005,8 @@ }, "toggleNowPlayingPanel": "Şu an çalan panelini göster / gizle", "pipeline": { - "title": "Ses akışı", - "openHint": "Ses akışını ayrıntılı görüntüle", + "title": "Ses zinciri", + "openHint": "Ses zincirini ayrıntılı görüntüle", "source": "Kaynak", "processing": "İşlem", "output": "Çıkış", @@ -1267,7 +1267,7 @@ "title": "Last.fm", "subtitle": "Sanatçı biyografileri ve scrobbling. last.fm/api/account/create üzerinden bir anahtar oluştur", "placeholder": "API anahtarı", - "secretPlaceholder": "Paylaşılan secret", + "secretPlaceholder": "Paylaşılan gizli anahtar", "save": "Kaydet", "saved": "Kaydedildi ✓", "show": "Göster", @@ -1310,7 +1310,7 @@ } }, "crossfade": { - "title": "Crossfade", + "title": "Çapraz geçiş", "subtitle": "Parçalar arasında pürüzsüz geçişler (yakında)" }, "normalize": { @@ -1443,18 +1443,18 @@ }, "visualizer": { "title": "Ses görselleştirici", - "subtitle": "Sürükleyici görünümde gerçek zamanlı spektrumu gösterir (decoder thread üzerinde hafif FFT)" + "subtitle": "Sürükleyici görünümde gerçek zamanlı spektrumu gösterir (kod çözücü iş parçacığında hafif FFT)" }, "smartCrossfade": { - "title": "Akıllı crossfade", - "subtitle": "Aynı albümün iki parçası arasındaki crossfade'i otomatik olarak atlar (konsept albümler ve canlı setler için harika)" + "title": "Akıllı çapraz geçiş", + "subtitle": "Aynı albümün iki parçası arasındaki çapraz geçişi otomatik olarak atlar (konsept albümler ve canlı setler için harika)" }, "dynamicCrossfade": { - "title": "Dinamik crossfade", - "subtitle": "Crossfade süresini parçalar arasındaki tempo farkına göre ölçeklendirir (BPM bilinmiyorsa sabit crossfade'e geri döner)" + "title": "Dinamik çapraz geçiş", + "subtitle": "Çapraz geçiş süresini parçalar arasındaki tempo farkına göre ölçeklendirir (BPM bilinmiyorsa sabit çapraz geçişe geri döner)" }, "gapless": { - "title": "Gapless oynatma", + "title": "Aralıksız oynatma", "subtitle": "Ardışık parçaları mikro sessizlik olmadan birbirine bağlar (canlı ve konsept albümler için idealdir)" }, "equalizer": { @@ -1464,26 +1464,26 @@ "reset": "Sıfırla", "preset": { "custom": "Özel", - "flat": "Flat", - "acoustic": "Acoustic", - "bass_booster": "Bass booster", - "bass_reducer": "Bass reducer", + "flat": "Düz", + "acoustic": "Akustik", + "bass_booster": "Bas güçlendirici", + "bass_reducer": "Bas azaltıcı", "classical": "Klasik", - "dance": "Dance", - "deep": "Deep", - "electronic": "Electronic", + "dance": "Dans", + "deep": "Derin", + "electronic": "Elektronik", "hip_hop": "Hip-Hop", "jazz": "Jazz", "latin": "Latin", - "loudness": "Loudness", + "loudness": "Ses Yüksekliği", "lounge": "Lounge", "piano": "Piano", "pop": "Pop", "rnb": "R&B", "rock": "Rock", "small_speakers": "Küçük hoparlörler", - "spoken_word": "Spoken word", - "treble_booster": "Treble booster" + "spoken_word": "Konuşma", + "treble_booster": "Tiz güçlendirici" } }, "backup": { @@ -1525,7 +1525,7 @@ "appearance": { "theme": { "title": "Tema", - "subtitle": "Bir hava seçin — temayı değiştirmek uygulamayı anında yeniden renklendirir." + "subtitle": "Bir tarz seçin — temayı değiştirmek uygulamayı anında yeniden renklendirir." }, "mode": { "light": "Açık", @@ -1557,7 +1557,7 @@ "abLoop": "A-B döngüsü", "sleepTimer": "Uyku zamanlayıcısı", "eqPreset": "Ekolayzer (ön ayarlar)", - "lyrics": "Şarkı sözleri", + "lyrics": "Sözler", "queue": "Sıra", "device": "Ses çıkışı", "miniPlayer": "Mini oynatıcı", diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 6649a20..3756807 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -55,7 +55,7 @@ "quickSettings": "快速设置", "autoAnalyze": { "title": "自动分析曲目", - "description": "扫描时检测 BPM 和调性 — 为 Radio 和 Mood Radio 提供支持。" + "description": "扫描时检测 BPM 和调性 — 为电台和心情电台提供支持。" } }, "lastfm": { @@ -109,7 +109,7 @@ "title": "选择你的语言", "description": "WaveFlow 提供 17 种语言。我们已预选你的系统语言 — 如有误请更改。", "detected": "已从系统检测到", - "fallback": "我们无法检测到你的系统语言,已默认使用英语。请在下方选择你的语言。" + "fallback": "我们无法检测到你的系统语言,已默认使用英语。请在下方选择你的语言。" }, "profile": { "title": "为你的资料起个名字", @@ -180,7 +180,7 @@ "albums": "专辑", "artists": "艺人", "genres": "类型", - "folders": "文件" + "folders": "文件夹" }, "playlistSection": { "title": "播放列表" @@ -228,7 +228,7 @@ }, "home": { "greeting": { - "morning": "你好", + "morning": "早上好", "evening": "晚上好", "night": "晚安" }, @@ -278,7 +278,7 @@ "recentlyPlayed": { "title": "最近播放的", "emptyTitle": "尚未收听任何歌曲", - "emptyDescription": "播放一首歌曲后它会出现在这里。随着你不断探索,收听记录会逐渐累积。" + "emptyDescription": "播放一首歌曲后它会出现在这里。随着你不断探索,收听记录会逐渐累积。" }, "recentlyAdded": { "title": "最近添加" @@ -331,7 +331,7 @@ "albums": "专辑", "artistes": "艺人", "genres": "类型", - "dossiers": "文件" + "dossiers": "文件夹" }, "empty": { "morceaux": { @@ -371,8 +371,8 @@ "searchDeezer": "搜索Deezer", "localFile": "本地文件", "fetchMissingCovers": "找回所有缺失的封套", - "noCover": "无封套", - "fetchingCovers": "领取封套……({{current}} / {{total}})", + "noCover": "无封面", + "fetchingCovers": "正在获取封面…({{current}} / {{total}})", "fetchCoversResult": "已获取 {{count}} 张封套", "fetchCoversFailed": "封套获取失败", "table": { @@ -381,8 +381,7 @@ "artist": "艺人", "album": "专辑", "duration": "时长", - "unknown": "—", - "rating": "评分" + "unknown": "—" }, "rating": "评分", "noRating": "无评分", @@ -413,7 +412,7 @@ "trackCount_zero": "0 首曲目", "trackCount_one": "{{count}} 曲目", "trackCount_other": "{{count}} 曲目", - "lastScanned": "扫描自:{{date}}", + "lastScanned": "上次扫描:{{date}}", "neverScanned": "从来没有", "watched": "受监控", "watchOn": "自动监控更改", @@ -421,11 +420,6 @@ "remove": "从音乐库中移除文件夹", "removeConfirm": "再次点击确认" }, - "library": { - "nav": { - "artists": "艺人" - } - }, "skeletonAriaLabel": "正在加载{{name}}…" }, "liked": { @@ -435,7 +429,7 @@ "count_one": "{{count}} 曲目", "count_other": "{{count}} 曲目", "emptyTitle": "没有收藏的曲目", - "emptyDescription": "你喜欢的歌曲将显示在这里。浏览你的音乐库,将喜欢的曲目加入收藏。", + "emptyDescription": "你喜欢的歌曲将显示在这里。浏览你的音乐库,将喜欢的曲目加入收藏。", "playAll": "全部播放", "unlike": "取消喜欢", "like": "加入已喜欢" @@ -690,7 +684,7 @@ "title": "播放速度", "slider": "速度滑块", "custom": "自定义速度", - "pitchHint": "音高随速度变化(无时间拉伸)。" + "pitchHint": "音高随速度变化(无时间拉伸)。" }, "seek": "播放位置" }, @@ -716,7 +710,7 @@ "readonlyHint": "只读队列 — 从 Spotify 应用管理。" }, "deviceMenu": { - "activeLabel": "有源输出", + "activeLabel": "当前输出设备", "loading": "正在搜索设备……", "empty": "没有可用的输出设备", "systemDefault": "默认" @@ -727,7 +721,7 @@ "subtitle": "选择你的个人资料,查看你的音乐库和播放列表", "add": "添加", "edit": "编辑", - "active": "活跃用户", + "active": "当前个人资料", "switchTo": "切换" }, "create": { @@ -769,9 +763,9 @@ "submitEdit": "保存" }, "playlistModal": { - "title": "新歌单", + "title": "新建播放列表", "editTitle": "编辑播放列表", - "previewDefault": "新歌单", + "previewDefault": "新建播放列表", "previewSubtitle": "0 首曲目 · 播放列表", "nameLabel": "名称", "namePlaceholder": "例如:Chill Vibes、Workout Mix...", @@ -817,7 +811,7 @@ "trackActions": { "addToPlaylist": "添加到播放列表", "noPlaylists": "没有播放列表。请在下方创建一个。", - "createPlaylist": "新歌单", + "createPlaylist": "新建播放列表", "playNext": "播放下一首", "addToQueue": "添加到队列", "like": "加入已喜欢", @@ -899,8 +893,7 @@ "genre": "流派", "genrePlaceholder": "流行、摇滚、爵士…" }, - "changeCover": "更换封面", - "properties": "属性" + "changeCover": "更换封面" }, "selection": { "toolbarLabel": "选择操作", @@ -1247,9 +1240,9 @@ "integrations": { "lastfm": { "title": "Last.fm", - "subtitle": "艺术家简介和音乐记录。在 last.fm/api/account/create 创建密钥", + "subtitle": "艺人简介和听歌记录。在 last.fm/api/account/create 创建密钥", "placeholder": "API密钥", - "secretPlaceholder": "共同的秘密", + "secretPlaceholder": "共享密钥", "save": "保存", "saved": "已保存 ✓", "show": "显示", @@ -1292,7 +1285,7 @@ } }, "crossfade": { - "title": "交叉溶解", + "title": "交叉淡入淡出", "subtitle": "歌曲之间将实现无缝过渡(即将推出)" }, "dynamicCrossfade": { @@ -1325,12 +1318,12 @@ "subtitle": "系统启动时自动启动 WaveFlow" }, "minimizeToTray": { - "title": "最小化到任务栏", + "title": "最小化到系统托盘", "subtitle": "关闭窗口会将应用程序最小化到系统托盘" }, "scanOnStart": { "title": "开机扫描", - "subtitle": "启动时自动重新扫描库" + "subtitle": "启动时自动重新扫描音乐库" }, "singleClickPlay": { "title": "单击播放", @@ -1366,7 +1359,7 @@ "artistImages": { "title": "艺人图片", "subtitle": "从 Deezer 下载艺人专辑封面", - "action": "恢复", + "action": "获取", "progress": "已处理 {{current}}/{{total}}" }, "localArtistImages": { @@ -1392,8 +1385,8 @@ }, "regenerateThumbnails": "刷新缩略图", "regenerateThumbnailsSubtitle": "为所有封面补全缺失的1x/2x版本", - "regenerateThumbnailsAction": "再生", - "regenerateThumbnailsDone": "{{count}} 已刷新的小图", + "regenerateThumbnailsAction": "重新生成", + "regenerateThumbnailsDone": "已重新生成 {{count}} 张缩略图", "reset": { "title": "重置应用程序", "subtitle": "删除所有数据并恢复出厂设置", @@ -1401,7 +1394,7 @@ }, "diagnostics": { "title": "应用程序日志", - "subtitle": "要报告错误,请打开日志文件夹或复制最近的日志粘贴到票单中。", + "subtitle": "要报告错误,请打开日志文件夹或复制最近的日志并粘贴到工单中。", "openFolder": "打开文件夹", "copyLogs": "复制日志", "copied": "已复制", @@ -1430,7 +1423,7 @@ "jazz": "爵士", "latin": "拉丁", "loudness": "响度", - "lounge": "Lounge", + "lounge": "休闲", "piano": "钢琴", "pop": "流行", "rnb": "R&B", @@ -1592,7 +1585,7 @@ "subtitle": "首页上的年度回顾横幅。自动模式仅在 Wrapped 季(12 月 1 日 → 1 月 31 日)期间显示。", "legend": "Wrapped 横幅可见性", "seasonActive": "Wrapped 季正在进行 — 横幅已显示。", - "seasonIdle": "非赛季 — 横幅将在 12 月 1 日自动回归。", + "seasonIdle": "非活动季 — 横幅将在 12 月 1 日自动回归。", "modes": { "auto": { "label": "自动", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index e429774..edbd75e 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -109,7 +109,7 @@ "title": "選擇你的語言", "description": "WaveFlow 提供 17 種語言。我們已預選你的系統語言 — 如有誤請更改。", "detected": "已從系統偵測到", - "fallback": "我們無法偵測到你的系統語言,已預設使用英文。請在下方選擇你的語言。" + "fallback": "我們無法偵測到您的系統語言,已預設使用英文。請在下方選擇您的語言。" }, "profile": { "title": "為你的設定檔取名", @@ -228,8 +228,8 @@ }, "home": { "greeting": { - "morning": "您好", - "evening": "晚安", + "morning": "早安", + "evening": "晚上好", "night": "晚安" }, "banner": { @@ -278,7 +278,7 @@ "recentlyPlayed": { "title": "最近播放的", "emptyTitle": "尚未聆聽任何歌曲", - "emptyDescription": "播放一首歌曲後它會出現在這裡。隨著你不斷探索,聆聽紀錄會逐漸累積。" + "emptyDescription": "播放一首曲目後它會出現在這裡。隨著您不斷探索,聆聽紀錄會逐漸累積。" }, "recentlyAdded": { "title": "最近新增" @@ -371,8 +371,8 @@ "searchDeezer": "搜尋Deezer", "localFile": "本機檔案", "fetchMissingCovers": "找回所有遺失的封套", - "noCover": "無外袋", - "fetchingCovers": "領取封套……({{current}} / {{total}})", + "noCover": "沒有封面", + "fetchingCovers": "正在取得封面…({{current}} / {{total}})", "fetchCoversResult": "已取得 {{count}} 張封套", "fetchCoversFailed": "封套取得失敗", "table": { @@ -381,8 +381,7 @@ "artist": "藝人", "album": "專輯", "duration": "時長", - "unknown": "—", - "rating": "評分" + "unknown": "—" }, "rating": "評分", "noRating": "無評分", @@ -413,7 +412,7 @@ "trackCount_zero": "0 首曲目", "trackCount_one": "{{count}} 曲目", "trackCount_other": "{{count}} 曲目", - "lastScanned": "掃描來源:{{date}}", + "lastScanned": "上次掃描:{{date}}", "neverScanned": "從未", "watched": "受監控", "watchOn": "自動監控變更", @@ -421,11 +420,6 @@ "remove": "從音樂庫中移除資料夾", "removeConfirm": "再次點擊確認" }, - "library": { - "nav": { - "artists": "藝人" - } - }, "skeletonAriaLabel": "正在載入{{name}}…" }, "liked": { @@ -435,7 +429,7 @@ "count_one": "{{count}} 曲目", "count_other": "{{count}} 曲目", "emptyTitle": "沒有喜愛的曲目", - "emptyDescription": "你喜歡的歌曲將顯示在這裡。瀏覽你的音樂庫,將喜歡的曲目加入收藏。", + "emptyDescription": "您喜歡的曲目將顯示在這裡。瀏覽您的音樂庫,將喜歡的曲目加入收藏。", "playAll": "全部播放", "unlike": "取消喜歡", "like": "加入已喜歡" @@ -497,7 +491,7 @@ "empty": "此期間無收聽紀錄。" }, "byHour": { - "title": "最喜歡的時間", + "title": "收聽尖峰", "empty": "此期間無收聽紀錄。", "tooltip": "{{hour}} 點 — {{plays}} 次播放" }, @@ -592,11 +586,11 @@ }, "streak": { "eyebrow": "最長連續紀錄", - "daysLabel_zero": "0 天連續", - "daysLabel_one": "{{count}} 天連續", - "daysLabel_other": "{{count}} 天連續", + "daysLabel_zero": "連續 0 天", + "daysLabel_one": "連續 {{count}} 天", + "daysLabel_other": "連續 {{count}} 天", "range": "{{start}} 至 {{end}}", - "daysShort": "天連續" + "daysShort": "連續天數" }, "share": { "open": "分享", @@ -620,7 +614,7 @@ "about": { "title": "關於", "hero": { - "subtitle": "跨平台高畫質音樂播放器", + "subtitle": "跨平台高音質音樂播放器", "checkUpdates": "檢查更新", "developedBy": "開發者" }, @@ -702,7 +696,7 @@ "count_other": "{{count}} 首", "emptyTitle": "沒什麼可聽的", "emptyDescription": "從你的音樂庫中選取一首歌,加入播放佇列。", - "nowPlaying": "進行中", + "nowPlaying": "正在播放", "upNext_zero": "接下來", "upNext_one": "接下來 · {{count}} 首", "upNext_other": "接下來 · {{count}} 首", @@ -716,7 +710,7 @@ "readonlyHint": "唯讀佇列 — 從 Spotify 應用程式管理。" }, "deviceMenu": { - "activeLabel": "主動輸出", + "activeLabel": "作用中的輸出", "loading": "正在搜尋裝置……", "empty": "沒有可用的輸出裝置", "systemDefault": "預設" @@ -727,7 +721,7 @@ "subtitle": "選擇您的個人檔案,以查看您的資料庫和播放清單", "add": "新增", "edit": "編輯", - "active": "活躍個人檔案", + "active": "使用中的設定檔", "switchTo": "切換" }, "create": { @@ -899,8 +893,7 @@ "genre": "類型", "genrePlaceholder": "流行、搖滾、爵士…" }, - "changeCover": "更換封面", - "properties": "屬性" + "changeCover": "更換封面" }, "selection": { "toolbarLabel": "選取操作", @@ -1249,12 +1242,12 @@ "title": "Last.fm", "subtitle": "藝術家簡介與播放記錄追蹤。請至 last.fm/api/account/create 建立金鑰", "placeholder": "API 金鑰", - "secretPlaceholder": "共同的秘密", + "secretPlaceholder": "共用密鑰", "save": "儲存", "saved": "已註冊 ✓", "show": "顯示", "hide": "隱藏", - "connectedAs": "以...身分登入", + "connectedAs": "已登入為", "disconnect": "登出", "loginPrompt": "請登入以記錄您的聆聽紀錄:", "usernamePlaceholder": "使用者名稱", @@ -1309,7 +1302,7 @@ }, "exclusive": { "title": "WASAPI 獨佔模式(Windows)", - "subtitle": "位元完美:繞過 Windows 混音器以提供無干擾輸出。如果裝置拒絕獨佔存取,則退回共享模式。", + "subtitle": "位元完美:繞過 Windows 混音器以提供無干擾輸出。如果裝置拒絕獨佔存取,則退回共用模式。", "fallback": "裝置不接受獨佔模式,正在退回共享模式。" }, "mono": { @@ -1330,7 +1323,7 @@ }, "scanOnStart": { "title": "開機時執行掃描", - "subtitle": "開啟時自動重新掃描資料庫" + "subtitle": "啟動時自動重新掃描音樂庫" }, "singleClickPlay": { "title": "單鍵播放", @@ -1356,7 +1349,7 @@ }, "analyze": { "title": "分析音樂庫", - "subtitle": "計算未經分析曲目的BPM、音量及峰值", + "subtitle": "計算未經分析曲目的 BPM、響度及峰值", "action": "分析", "autoTitle": "自動分析", "autoSubtitle": "每次掃描並新增曲目後,在背景執行分析", @@ -1366,12 +1359,12 @@ "artistImages": { "title": "藝人圖片", "subtitle": "從 Deezer 下載藝人專輯封面", - "action": "恢復", + "action": "取得", "progress": "已處理 {{current}}/{{total}}" }, "localArtistImages": { "title": "本地藝人圖片", - "subtitle": "在音樂旁尋找 artist.jpg(或 <名稱>.jpg)檔案,並將其用作藝人照片。", + "subtitle": "在音樂旁尋找 artist.jpg(或 <名稱>.jpg)檔案,並將其用作藝人照片。", "action": "掃描", "done": "已為 {{considered}} 位藝人中的 {{linked}} 位連結本地圖片" }, @@ -1392,8 +1385,8 @@ }, "regenerateThumbnails": "重新生成縮圖", "regenerateThumbnailsSubtitle": "為所有封面重建缺失的 1x/2x 版本", - "regenerateThumbnailsAction": "再生", - "regenerateThumbnailsDone": "{{count}} 重新生成的縮圖", + "regenerateThumbnailsAction": "重新產生", + "regenerateThumbnailsDone": "已重新產生 {{count}} 張縮圖", "reset": { "title": "重置應用程式", "subtitle": "刪除所有資料並恢復至初始狀態", @@ -1430,7 +1423,7 @@ "jazz": "爵士", "latin": "拉丁", "loudness": "響度", - "lounge": "Lounge", + "lounge": "休閒", "piano": "鋼琴", "pop": "流行", "rnb": "R&B", From 0d7030ac2778c8ed45f88d773df0b84c593cb065 Mon Sep 17 00:00:00 2001 From: InstaZDLL Date: Tue, 26 May 2026 02:38:44 +0200 Subject: [PATCH 2/2] chore(translations): align in-namespace terminology in ar, fr, nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three small consistency fixes flagged on PR #159 review: - ar.json `queue.upNext_one/_other`: terminology drift between `count_*` ("أغنية") and `upNext_*` ("مقطع") inside the same namespace. Aligned `upNext_*` on "أغنية" — the active translation for the count fields plus the rest of the music-player surface. - fr.json `liked.emptyTitle/emptyDescription`: rewrite kept `title/like/unlike` on "Titres aimés / Coups de cœur" but left the empty-state strings on franglais "liké / likez". Both now match the "aimés / coups de cœur" choice. - nl.json `lastfm.missingFields`: the form's `secretLabel` / `secretPlaceholder` were already on "Gedeeld geheim" but the validation error still referenced the bare English "secret". Same noun across the form now. Dry-run validation clean on all three locales afterwards. --- src/i18n/locales/ar.json | 4 ++-- src/i18n/locales/fr.json | 4 ++-- src/i18n/locales/nl.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 316bc93..9c9d764 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -698,8 +698,8 @@ "emptyDescription": "شغّل أغنية من مكتبتك لملء قائمة الانتظار.", "nowPlaying": "قيد التشغيل", "upNext_zero": "التالي", - "upNext_one": "التالي · {{count}} مقطع", - "upNext_other": "التالي · {{count}} مقطع", + "upNext_one": "التالي · {{count}} أغنية", + "upNext_other": "التالي · {{count}} أغنية", "radio": { "label": "الراديو", "basedOn": "استنادًا إلى «{{title}}»" diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 6b602c5..467267a 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -428,8 +428,8 @@ "count_zero": "0 titre", "count_one": "{{count}} titre", "count_other": "{{count}} titres", - "emptyTitle": "Aucun titre liké", - "emptyDescription": "Les morceaux que vous aimez apparaîtront ici. Explorez votre bibliothèque et likez vos titres favoris.", + "emptyTitle": "Aucun titre aimé", + "emptyDescription": "Les morceaux que vous aimez apparaîtront ici. Explorez votre bibliothèque et ajoutez-les à vos coups de cœur.", "playAll": "Tout lire", "unlike": "Retirer des coups de cœur", "like": "Ajouter aux coups de cœur" diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index bc6c167..6df8b7f 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -74,7 +74,7 @@ "toggleSecret": "Geheim tonen/verbergen", "togglePassword": "Wachtwoord tonen/verbergen", "connect": "Last.fm koppelen", - "missingFields": "Vul API-sleutel, secret, gebruikersnaam en wachtwoord in.", + "missingFields": "Vul API-sleutel, Gedeeld geheim, gebruikersnaam en wachtwoord in.", "connectedTitle": "Verbonden als {{user}}", "connectedSubtitle": "Scrobblen start automatisch zodra je een nummer afspeelt." },