From db4a0b7e6f6bd035f3dcc1f0546c4c960b0ddf4c Mon Sep 17 00:00:00 2001 From: faroukbmiled Date: Tue, 26 May 2026 17:37:25 +0100 Subject: [PATCH] sync: localization, readme, issue templates --- README.md | 131 +- .../Resources/ar.lproj/Localizable.strings | 1468 +++++++++-- .../Resources/en.lproj/Localizable.strings | 1414 +++++++++-- .../Resources/es.lproj/Localizable.strings | 1428 +++++++++-- .../Resources/fr.lproj/Localizable.strings | 2153 ++++++++++++++++ .../Resources/ko.lproj/Localizable.strings | 1506 +++++++++-- .../Resources/pt-BR.lproj/Localizable.strings | 2202 +++++++++++++++++ .../Resources/ru.lproj/Localizable.strings | 1424 +++++++++-- .../Resources/tr.lproj/Localizable.strings | 2202 +++++++++++++++++ .../Resources/vi.lproj/Localizable.strings | 2172 ++++++++++++++++ .../zh-Hans.lproj/Localizable.strings | 2202 +++++++++++++++++ .../zh-Hant.lproj/Localizable.strings | 1419 +++++++++-- 12 files changed, 18412 insertions(+), 1309 deletions(-) create mode 100644 src/Localization/Resources/fr.lproj/Localizable.strings create mode 100644 src/Localization/Resources/pt-BR.lproj/Localizable.strings create mode 100644 src/Localization/Resources/tr.lproj/Localizable.strings create mode 100644 src/Localization/Resources/vi.lproj/Localizable.strings create mode 100644 src/Localization/Resources/zh-Hans.lproj/Localizable.strings diff --git a/README.md b/README.md index fac3c9f..1108cf4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,14 @@ # RyukGram A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com/SoCuul/SCInsta) with additional features and fixes.\ -`Version v1.2.2` | `Tested on Instagram 426.0.0` +`Version v1.3.0` | `Tested on Instagram 430.0.0` + +Buy me a coffee + +--- + +> [!WARNING] +> **Source pushes to this repository are paused for now, until further notice** — partly because a bit of the code has been finding its way into other paid projects, with no credit. +> Releases and localization are still kept up to date here — new builds land on the [Releases](https://github.com/faroukbmiled/RyukGram/releases/latest) page, and translation pull requests are still welcome. --- @@ -22,10 +30,13 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Hide ads - Hide Meta AI - Hide metrics (likes, comments, shares counts) +- Hide the TestFlight beta update popup - Disable app haptics - Copy description - Copy comment text from long-press menu **\*** -- Download GIF comments **\*** +- Download / copy / expand GIF and image comments **\*** +- Custom GIF in comments — long-press the GIF button to paste any Giphy link **\*** +- Download audio from the reels audio page **\*** - Profile copy button **\*** - Replace domain in shared links for embeds (Discord, Telegram, etc.) **\*** - Strip tracking params from shared links **\*** @@ -36,6 +47,7 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Use detailed (native) color picker - Enable liquid glass buttons - Enable liquid glass surfaces **\*** +- Liquid glass tab bar — Fixed (never shrink) / Hide on scroll - Enable teen app icons - IG Notes: - Hide notes tray @@ -47,6 +59,7 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - No suggested chats - Hide trending searches - Hide explore posts grid + - Skip sensitive content covers **\*** - Live - Anonymous live viewing **\*** - Toggle live comments **\*** @@ -64,7 +77,8 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - No suggested threads posts - Disable video autoplay - Media zoom — long press media to expand in full-screen viewer **\*** -- Custom date format — feed, notes/comments/stories, and DMs **\*** +- Start media muted — expanded videos open with sound off **\*** +- Custom date format — feed, notes/comments/stories, and DMs; optional relative threshold, compact "1h" style, and a Combine with date picker (`Jan 5, 2026 (2h)` or `2h – Jan 5, 2026`) **\*** - Disable background refresh, home button refresh, and home button scroll **\*** - Disable reels tab button refresh **\*** - Hide repost button in feed **\*** @@ -78,7 +92,11 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Unlock password-locked reels **\*** - Hide reels header - Hide repost button in reels **\*** +- Hide friends avatars on the reels Friends tab **\*** +- Hide social context overlay on reels (reposted/commented bubbles) **\*** +- Hide "Made with Edits" / "Open in Edits" promo pills on reels **\*** - Hide reels blend button +- Swipe a reel left to open the author's profile - Disable scrolling reels - Prevent doom scrolling (limit maximum viewable reels) - Enhanced Pause/Play mode (when Pause/Play tap control is set): **\*** @@ -91,6 +109,8 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com ### Action buttons **\*** - Context-aware action menu on feed, reels, and stories **\*** - Configurable default tap action per context **\*** +- Global icon picker — change the icon used across feed, stories, reels and DMs **\*** +- Optional date header at the top of the action menu **\*** - Carousel and multi-story reel support with bulk download **\*** - Repost via IG's native creation flow **\*** - Full-screen media viewer with zoom and swipe **\*** @@ -101,30 +121,50 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Save profile picture - View highlight cover from profile long-press menu **\*** - Profile copy button **\*** -- Follow indicator — shows whether the user follows you **\*** +- Follow indicator — shows whether the user follows you (off / on / colored) **\*** - Copy note on long press **\*** - Fake profile stats — verified badge and follower/following/post counts **\*** +- Show full follower / post count on profile headers **\*** +- Profile card details — view count, like count and upload date overlay on each post / reel card, with optional short-number format and on-demand fetch for missing counts **\*** +- Filter & sort follower/following lists — reorder by mutuals, who follows you, verified or A–Z, filter to just those, plus load-more and jump to top/bottom **\*** ### Profile Analyzer (beta) **\*** - Follower and following scans with progress and cancel **\*** - Mutuals and non-followbacks lists **\*** - New and lost followers/following trackers across scans **\*** - Profile change history — username, name, bio, pfp **\*** -- Searchable lists with batch follow/unfollow **\*** +- Searchable lists with inline and batch follow/unfollow **\*** +- Visited profiles tracker — log every profile you open with date / verified / private filters **\*** +- Pull-to-refresh on the visited list re-syncs identity and pictures from IG **\*** ### Saving - Enhanced HD downloads up to 1080p **\*** - Quality picker with preview playback **\*** - Audio-only and raw photo download options **\*** - Fallback to 720p without FFmpegKit **\*** -- Download pill with progress bar and bulk counter **\*** -- Save to RyukGram album **\*** + - Live progress through both download and encode **\*** +- Download manager — parallel downloads with a configurable limit, one combined progress pill, and a live queue with cancel / retry / redownload, long-press share / save, and bulk select; opens from the pill, a home shortcut, or settings **\*** +- Auto-retry dropped downloads — parks offline downloads and resumes them when the connection returns **\*** +- Save to RyukGram album — every download + share-sheet "Save to Photos" routes into a dedicated album with a customizable name **\*** +- Enhanced media resolution — IG's CDN ships higher-quality images **\*** +- Advanced encoding panel — codec (HW / libx264), preset, tune, H.264 profile + level, CRF / bitrate, pixel format, max resolution, frame rate, audio codec / bitrate / channels / sample rate, faststart, strip metadata **\*** - Download confirmation dialog **\*** -- Output filenames formatted as `@username_context_timestamp` **\*** +- Output filenames formatted as `@username_context_timestamp` across every save surface (feed / reels / DMs / notes / comments / disappearing media) **\*** - Legacy long-press gesture (deprecated, customizable finger count + hold time) **\*** +### Gallery **\*** +- On-device gallery — every download can mirror into an in-app library **\*** +- Stores images, videos, audio (m4a/aac/mp3/ogg/opus/...) and animated GIFs **\*** +- Filter chips by type, source (feed / reels / stories / DMs / profile / notes / comments) and uploader; favorites; folders **\*** +- Group by user — sections or virtual folders alongside your real folders **\*** +- Folder cells show a thumbnail collage + item count and last-activity date **\*** +- In-app preview carousel — image / video / audio scrubber / GIF playback **\*** +- Audio + GIF picker — DM Upload Audio and (in future surfaces) Comment GIF can pull straight from the gallery **\*** +- "Download to Gallery" submenu on every download surface when the gallery is enabled, with Photos / Gallery / Share options for audio **\*** + ### Stories and messages - Keep deleted messages **\*** +- Deleted messages log — dedicated UI for every unsent message type, per-sender groups, search, filter, bulk Save / Share / Delete, edit history per message **\*** - Hide trailing action buttons on preserved messages - Warn before pull-to-refresh clears preserved messages **\*** - Manually mark messages as seen (button or toggle mode) **\*** @@ -137,15 +177,20 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Advance on story like **\*** - Advance on story reply **\*** - Per-chat read-receipt exclusion list with Block all / Block selected mode **\*** -- Send audio as file from DM plus menu **\*** +- Send audio as file — DM plus menu, or long-press the camera button while replying **\*** - Download voice messages **\*** - Disable typing status - Disable vanish mode swipe **\*** - Hide voice/video call buttons (independent toggles) **\*** +- Hide send to group chat in the share sheet **\*** +- Bypass DM character limit **\*** +- Pin recipients on long-press in the share sheet — pinned chats render at the top **\*** +- Custom chat backgrounds — per-chat images injected into IG's native theme picker, library upload with built-in cropper, per-image opacity / blur / dim, optional global default, per-account list of chats with backgrounds **\*** - Unlimited replay of direct stories **\*** - Full last active date **\*** - Send files in DMs (experimental) **\*** -- Notes actions — copy text, download GIF/audio **\*** +- Hold the DM tab button to open the on-device gallery **\*** +- Notes actions — copy text, download GIF / audio (Photos or Gallery) **\*** - Copy note text on long press **\*** - Disable view-once limitations - Disable screenshot detection @@ -155,16 +200,28 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Long-press the story seen button for quick actions **\*** - Per-user story seen-receipt exclusion list with Block all / Block selected mode **\*** - Story audio mute/unmute toggle **\*** -- View story mentions **\*** +- View story mentions, with optional quick-access overlay button and count badge **\*** +- Hide stories midcards (Trending / Music) **\*** - Stop story auto-advance **\*** - Reveal poll/slider vote counts and quiz answers on stories and reels before interacting **\*** -- Force legacy Quiz sticker back into the story composer tray **\*** +- Force legacy Quiz and Reveal stickers back into the story composer tray **\*** +- Bypass Reveal sticker — view stories blurred behind a Reveal sticker without DMing the author **\*** +- Allow video in photo sticker — story photo sticker picker accepts videos too **\*** +- Custom solid or gradient color for music and lyric stickers **\*** - Disappearing DM media overlay — action button, mark-as-viewed eye, and audio toggle **\*** - Download disappearing DM media **\*** - Upload audio as voice message with built-in trim editor **\*** - Disable instants creation +- Send Instants from your photo album — gallery button on the Instants camera with a built-in square cropper, posts through IG's native capture flow; pick from the in-app gallery or Photos library when the gallery is enabled +- Allow screenshots on Instants — bypasses the screenshot/screen-record block, scoped to the Instants viewer only +- Instants action button — Expand / Save (Photos / Gallery) / Share / Save all, fully configurable through the standard action-menu config +- Confirm Instants emoji reaction — optional confirmation before a quick-reaction sends +- Confirm Instants capture + Confirm switching Instant +- Save to Gallery from the expanded media viewer — share button surfaces a Save / Share menu when the gallery is enabled, with username / source attribution carried through -### Navigation +### Interface **\*** +- Tab bar shortcuts — Home shortcut button + Action button icon picker, grouped at the top of the page +- Notifications — universal in-app pill (Minimal / Colorful / Glow / Island), per-action routing (custom pill / IG-native / off), top or bottom position, master kill switch, swipe-to-dismiss, multi-pill stacking - Modify tab bar icon order - Modify swiping between tabs - Hiding tabs @@ -176,10 +233,13 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Messages-only mode — inbox + profile only, launch straight into inbox **\*** - Hide tab bar sub-toggle — floating settings gear replaces it **\*** - Launch tab — pick which tab the app opens to **\*** +- Home shortcut button — extra button on the home top bar with a configurable multi-action menu (Gallery / Settings / Security & Privacy / Hidden chats / Locked chats / Profile Analyzer / Deleted messages / Fake location / Clear cache / Changelog) **\*** +- Experimental flags ### Confirm actions - Confirm like: Posts/Stories - Confirm story emoji reaction **\*** +- Confirm note like + emoji reaction **\*** - Confirm like: Reels - Confirm follow - Confirm unfollow **\*** @@ -190,8 +250,9 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Confirm follow requests - Confirm vanish mode - Confirm posting comment +- Confirm send to group chat **\*** - Confirm changing direct message theme -- Confirm sticker interaction (stories / highlights, separate toggles) **\*** +- Confirm sticker interaction (stories / highlights, per-surface: disabled / all / reaction stickers only) **\*** ### Fake location **\*** - Override location app-wide for any IG feature reading coordinates @@ -200,16 +261,25 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com - Quick toggle button on the Friends Map ### Theme **\*** -- Force dark mode -- Full OLED — pure black app-wide +- Theme picker — Off / Light / Dark / OLED, with optional Force theme to override the iOS appearance - OLED chat theme — pure black DM thread and incoming bubbles -- Keyboard theme — dark or OLED -- Apply & restart button +- Keyboard theme — dark or OLED, sticks through search keyboard activations +- Apply & restart, plus Reset theme to revert every theme option + +### Security & Privacy **\*** +- Passcode + biometric lock — gates tweak settings, gallery, deleted-messages log, Profile Analyzer, DM inbox, individual chats, and Instagram itself +- Per-target idle timeout, re-lock on background, lock every time, independent session +- Hidden chats — long-press a DM to hide it; managed under S&P +- Per-account lists (excluded chats, hidden chats, locked chats, share-sheet pins) — switching IG accounts shows that account's own data +- App-switcher snapshot shroud — covers IG content when a locked surface is visible +- Hide message preview for locked chats in the inbox ### Tweak settings **\*** - Search bar with breadcrumbs across nested pages +- What's new indicator — a dot marks newly added settings and clears once viewed **\*** - Pause playback when opening settings **\*** - Quick-access via long-press on feed tab **\*** +- Native Instagram icons throughout settings and in-app menus **\*** ### Advanced experimental features **\*** - Toggle hidden Instagram experiments: QuickSnap (Instants), Direct Notes reply types, Friend Map, Homecoming, Prism @@ -224,16 +294,16 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com ### Localization **\*** - Multi-language UI with fallback to English **\*** - Built-in language picker in Settings **\*** -- Currently shipping: **English**, **Spanish**, **Russian**, **Korean**, **Arabic**, **Chinese (Traditional)** +- Currently shipping: **English**, **Spanish**, **Russian**, **Korean**, **Arabic**, **Chinese (Traditional)**, **Chinese (Simplified)**, **Portuguese (Brazil)**, **Turkish** ### Optimization -- Clear Instagram cache on demand with optional auto-clear interval **\*** +- Clear Instagram cache on demand with optional auto-clear interval, with a toggle to preserve DMs, drafts, and Notes **\*** # Translating RyukGram Want to see RyukGram in your language? Two ways: ### Option A: In-app (fastest) -1. Open **Settings → Debug → Localization → Export English strings** — share the base `.strings` file to yourself. +1. Open **Settings → Debug → Localization → Export strings** — pick a language (English for a fresh start, or an existing one to fix) and share its `.strings` file to yourself. 2. Translate the **right-hand side** of every `"key" = "value";` line. Never touch the left-hand side. 3. Go to **Debug → Localization → Update → + Add new language** — enter your language code (e.g. `fr`), pick the translated file, restart. 4. Your language now appears in the globe menu. Test it, tweak it, re-import as needed. @@ -251,7 +321,7 @@ Partial translations are welcome — untranslated keys fall back to English at r If you find a string that still renders in English on a translated build, open an issue with a screenshot. ## Known Issues -- Preserved unsent messages cannot be removed using "Delete for you". Pull to refresh in the DMs tab clears all preserved messages (with optional confirmation if "Warn before clearing on refresh" is enabled). +- Preserved unsent messages cannot be removed using "Delete for you". Pull to refresh in the DMs tab clears the active account's preserved messages (with optional confirmation if "Warn before clearing on refresh" is enabled). - "Delete for you" detection uses a ~2 second window after the local action. If a real other-party unsend happens to land in the same window, it may not be preserved. Rare in practice and limited to that specific overlap. - With Liquid Glass buttons + Hide UI on capture both on, the DM eye leaves an empty glass bubble in captures — IG draws that backdrop, not the tweak, so it's outside our redaction. @@ -281,14 +351,16 @@ If you find a string that still renders in English on a translated build, open a ### Run build script ```sh $ chmod +x build.sh -$ ./build.sh +$ ./build.sh ``` # Credits - [SCInsta](https://github.com/SoCuul/SCInsta) by [@SoCuul](https://github.com/SoCuul) — original tweak this fork is based on - [@BandarHL](https://github.com/BandarHL) — creator of the original BHInstagram project -- [@faroukbmiled](https://github.com/faroukbmiled) — RyukGram modifications and additional features +- [Instaoled](https://t.me/ciesIPAs) by @VAXMG — OLED theme inspiration - [@euoradan](https://t.me/euoradan) (Radan) — experimental Instagram feature flag research +- [@Mikasa-san](https://github.com/Mikasa-san) — code contributions +- [@n3d1117](https://github.com/n3d1117) (Edoardo) — Following feed mode (ported from [InstaSane](https://github.com/n3d1117/InstaSane)) - [@erupts0](https://github.com/erupts0) (John) — testing and feature suggestions - [BillyCurtis/OpenInstagramSafariExtension](https://github.com/BillyCurtis/OpenInstagramSafariExtension) — base for the bundled Safari extension - [@asdfzxcvbn](https://github.com/asdfzxcvbn) — [ipapatch](https://github.com/asdfzxcvbn/ipapatch) and [zxPluginsInject](https://github.com/asdfzxcvbn/zxPluginsInject) @@ -296,4 +368,13 @@ $ ./build.sh - [@ch1tmdgus](https://github.com/ch1tmdgus) (N4C) — Korean translation - [ZomkaDEV](https://github.com/ZomkaDEV) — Russian translation - [@bruuhim](https://github.com/bruuhim) — Arabic translation -- [@jaydenjcpy](https://github.com/jaydenjcpy) — Chinese (Traditional) translation +- [@jaydenjcpy](https://github.com/jaydenjcpy) — Chinese (Traditional and Simplified) translation +- Bruno ([@brunorainha](https://github.com/brunorainha)) — Portuguese (Brazil) translation +- [@yesnt10](https://github.com/yesnt10) — Turkish translation + +# Support + +RyukGram is free and open source. If you'd like to support development: + +- [☕ Donate to Ryuk (RyukGram)](https://buymeacoffee.com/axryuk) +- [☕ Donate to SoCuul (original SCInsta)](https://ko-fi.com/SoCuul) — RyukGram wouldn't exist without SoCuul's original SCInsta, so showing them some love is always welcome diff --git a/src/Localization/Resources/ar.lproj/Localizable.strings b/src/Localization/Resources/ar.lproj/Localizable.strings index 2493ca9..dc066f5 100644 --- a/src/Localization/Resources/ar.lproj/Localizable.strings +++ b/src/Localization/Resources/ar.lproj/Localizable.strings @@ -5,7 +5,7 @@ * Every user-facing string in RyukGram goes through the macro * SCILocalized(@"English text here") * in the Objective-C source. The argument is BOTH the lookup key and the - * English fallback, so if a missing translation the user still sees + * English fallback, so if a translation is missing the user still sees * clean English — nothing ever breaks. * * @@ -53,11 +53,8 @@ * parser will close the outer block at the first inner close marker * and every lookup in the file will silently fail. * - Keys and values are both quoted; every line ends with a semicolon. - * - * Translation made by @bruuhim (التعريب بواسطة @bruuhim) */ - ////////////////////////////////////////////////////////////////////////////// // CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // // Shown on the root Settings screen: title, search bar, the globe language // @@ -70,11 +67,12 @@ "settings.firstrun.title" = "‏معلومات إعدادات ريوك غرام‏"; "settings.language.english_only" = "‏يتوفر ريوك غرام حاليًا باللغة الإنجليزية فقط. اللغات الأخرى جاهزة بانتظار الترجمة — ساهم في الترجمة إلى لغتك باتباع الدليل القصير في ملف ريدمي (README).‏"; "settings.language.help_translate" = "‏المساعدة في الترجمة‏"; -"settings.language.ok" = "‏موافق‏"; "settings.language.system" = "‏الافتراضي للنظام‏"; "settings.language.title" = "‏اللغة‏"; +"settings.language.restart.message" = "تم تحديث الإعدادات. أعد تشغيل Instagram لتعتمد القوائم والأزرار والإشعارات في باقي التطبيق اللغة الجديدة أيضًا."; +"settings.language.restart.title" = "أعد التشغيل لتطبيق التغيير في كل مكان"; +"settings.language.available" = "المتاحة"; "settings.results.many" = "‏%lu نتائج‏"; -"settings.results.none" = "‏لا توجد نتائج‏"; "settings.results.one" = "‏%lu نتيجة‏"; "settings.search.placeholder" = "‏البحث في الإعدادات‏"; "settings.title" = "‏إعدادات ريوك غرام‏"; @@ -84,20 +82,33 @@ // Settings → General tab // ////////////////////////////////////////////////////////////////////////////// +"Action button icon" = "‏أيقونة زر الإجراءات‏"; "Adds a copy option to the comment long-press menu" = "‏إضافة خيار النسخ إلى قائمة الضغط المطول للتعليقات‏"; -"Adds a download option for GIF comments" = "‏إضافة خيار تنزيل لتعليقات صور جيف (GIF)‏"; +"Adds a download button next to share/save on the reels audio page" = "‏يضيف زر تنزيل بجانب المشاركة/الحفظ في صفحة الصوت بالريلز‏"; +"Adds download, copy and expand options to GIF and image comments" = "‏يضيف خيارات التنزيل والنسخ والتكبير لتعليقات GIF والصور‏"; +"Allow video in photo sticker" = "‏السماح بالفيديو في ملصق الصورة‏"; +"Alternate icons are not supported" = "الأيقونات البديلة غير مدعومة"; "Anonymous live viewing" = "‏مشاهدة البث المباشر مجهول الهوية‏"; +"App Icon" = "أيقونة التطبيق"; +"Audio page" = "‏صفحة الصوت‏"; +"Auto-reveals sensitive media" = "‏يكشف تلقائيًا عن المحتوى الحساس‏"; "Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "‏يمنع نبض عدّاد المشاهدين فلا يراك المذيع — ولن ترى عدّاد المشاهدين أيضاً‏"; "Browser" = "‏المتصفح‏"; +"Change the app icon from the bundled icons" = "غيّر أيقونة التطبيق من الأيقونات المضمّنة"; +"Choose Icon" = "اختيار الأيقونة"; +"Choose which surfaces hide ads" = "اختر الواجهات التي تُخفي الإعلانات"; "Comments" = "‏التعليقات‏"; +"Commerce carousels in comments and shoppable CTAs on reels" = "العروض التجارية الدائرية في التعليقات وأزرار التسوّق في الريلز"; "Copy comment text" = "‏نسخ نص التعليق‏"; "Copy description" = "‏نسخ الوصف‏"; "Copy description text fields by long-pressing on them" = "‏نسخ حقول نصوص الوصف بالضغط المطول عليها‏"; +"Custom music sticker color" = "‏لون مخصص لملصق الموسيقى‏"; "Date format" = "‏تنسيق التاريخ‏"; "Disable app haptics" = "‏إلغاء تفعيل الحس اللمسي للتطبيق‏"; "Disables haptics/vibrations within the app" = "‏تعطيل الحس اللمسي والاهتزازات داخل التطبيق‏"; "Do not save recent searches" = "‏عدم حفظ عمليات البحث الأخيرة‏"; -"Download GIF comments" = "‏تنزيل تعليقات صور جيف (GIF)‏"; +"Download GIF & image comments" = "‏تنزيل تعليقات GIF والصور‏"; +"Download image" = "‏تنزيل الصورة‏"; "Embed domain" = "‏تضمين النطاق‏"; "Embed domain: %@" = "‏تضمين النطاق: %@‏"; "Enable liquid glass buttons" = "‏تفعيل أزرار الزجاج السائل‏"; @@ -105,15 +116,23 @@ "Enable teen app icons" = "‏تفعيل أيقونات تطبيق المراهقين‏"; "Enables experimental liquid glass buttons" = "‏تفعيل أزرار الزجاج السائل التجريبية‏"; "Enables liquid glass tab bar, floating navigation, and other UI elements" = "‏تفعيل شريط تبويبات الزجاج السائل، والتنقل العائم، وعناصر واجهة المستخدم الأخرى‏"; +"End" = "‏النهاية‏"; "Experimental features" = "‏ميزات تجريبية‏"; +"Explore & search" = "الاستكشاف والبحث"; +"Failed to change icon" = "تعذّر تغيير الأيقونة"; +"Fixed" = "‏ثابت‏"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "‏ثابت يمنع التقلص. إخفاء يجعله يختفي عند التمرير لأسفل‏"; "Focus/distractions" = "‏التركيز والمشتتات‏"; "General" = "‏عام‏"; +"Gradient color" = "‏لون متدرّج‏"; "Hide ads" = "‏إخفاء الإعلانات‏"; "Hide explore posts grid" = "‏إخفاء شبكة منشورات الإكسبلور‏"; "Hide friends map" = "‏إخفاء خريطة الأصدقاء‏"; "Hide Meta AI" = "‏إخفاء ذكاء ميتا الاصطناعي‏"; "Hide metrics" = "‏إخفاء الإحصائيات‏"; "Hide notes tray" = "‏إخفاء شريط الملاحظات‏"; +"Hide on scroll" = "‏إخفاء عند التمرير‏"; +"Hide TestFlight popup" = "‏إخفاء نافذة TestFlight‏"; "Hide trending searches" = "‏إخفاء عمليات البحث الرائجة‏"; "Hide UI on capture" = "‏إخفاء الواجهة عند الالتقاط‏"; "Hides all suggested users for you to follow, outside your feed" = "‏إخفاء جميع المستخدمين المقترحين لمتابعتهم، خارج يومياتك‏"; @@ -125,11 +144,15 @@ "Hides the suggested broadcast channels in direct messages" = "‏إخفاء قنوات البث المقترحة في الرسائل الخاصة‏"; "Hides the trending searches under the explore search bar" = "‏إخفاء عمليات البحث الرائجة أسفل شريط البحث في الإكسبلور‏"; "Hold down on the Instagram logo to change the app icon" = "‏اضغط مطولاً على شعار إنستغرام لتغيير أيقونة التطبيق‏"; +"Lets the photo sticker picker show videos too, not just photos" = "‏يسمح لمنتقي ملصق الصورة بعرض مقاطع الفيديو أيضًا، وليس الصور فقط‏"; +"Liquid glass tab bar" = "‏شريط تبويبات الزجاج السائل‏"; "Live" = "‏البث المباشر‏"; "Long press on the eyedropper tool in stories to customize the text color more precisely" = "‏اضغط مطولاً على أداة القطارة في القصص لتخصيص لون النص بدقة أكبر‏"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "‏اضغط مطولاً على عجلة الألوان في ملصق الموسيقى أو الكلمات لاختيار أي لون موحد أو متدرّج‏"; "Long-press the heart button in a live to hide or show the comments" = "‏اضغط مطولاً على زر القلب في البث المباشر لإخفاء التعليقات أو إظهارها‏"; "Long-press the search tab to open a copied Instagram link" = "اضغط مطولاً على تبويب البحث لفتح رابط إنستغرام المنسوخ"; -"No suggested chats" = "‏لا توجد دردشات مقترحة‏"; +"Master switch. When off, all per-surface toggles below are ignored." = "المفتاح الرئيسي. عند إيقافه، يتم تجاهل جميع المفاتيح الفرعية أدناه لكل واجهة."; +"No suggested chats" = "‏لا توجد محادثات مقترحة‏"; "No suggested users" = "‏لا يوجد مستخدمون مقترحون‏"; "Notes" = "‏الملاحظات‏"; "Open app icon picker" = "‏فتح منتقي أيقونات التطبيق‏"; @@ -137,25 +160,49 @@ "Open links in external browser" = "‏فتح الروابط في متصفح خارجي‏"; "Opens links in Safari instead of Instagram's in-app browser" = "‏يفتح الروابط في متصفح سفاري بدلاً من متصفح إنستغرام الداخلي‏"; "Privacy" = "‏الخصوصية‏"; -"Redacts RyukGram buttons from screenshots, screen recordings, and mirroring" = "‏يُخفي أزرار RyukGram من لقطات الشاشة وتسجيل الشاشة والعرض المنعكس‏"; -"Removes all ads from the Instagram app" = "‏إزالة جميع الإعلانات من تطبيق إنستغرام‏"; +"Removes ads across enabled surfaces" = "يزيل الإعلانات عبر الواجهات المُفعّلة"; "Removes igsh, utm_source, and other tracking parameters from shared links" = "‏إزالة معلمات التتبع من الروابط المشتركة‏"; "Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "‏إزالة روابط تتبع إنستغرام ومعلمات التتبع من الروابط‏"; "Replace domain in shared links" = "‏استبدال النطاق في الروابط المشتركة‏"; "Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "‏استبدال الطوابع الزمنية النسبية لإنستغرام (\"منذ 3 أيام\") بتنسيق مخصص. قم بتبديل الأماكن التي يتم تطبيقها عليها من الداخل.‏"; "Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "‏إعادة كتابة الروابط المنسوخة والمشتركة لاستخدام نطاق ملائم للمعاينة في ديسكورد وتيليجرام وغيرها.‏"; "Search bars will no longer save your recent searches" = "‏لن تقوم أشرطة البحث بحفظ عمليات بحثك الأخيرة بعد الآن‏"; +"Selected" = "محدّد"; "Sharing" = "‏المشاركة‏"; +"Shopping" = "التسوّق"; +"Skip sensitive content covers" = "‏تخطي حواجز المحتوى الحساس‏"; +"Solid color" = "‏لون موحد‏"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "المنشورات المموّلة في الخلاصات الرئيسية والسياقية والمرئية والمتسلسلة"; +"Sponsored posts on the explore grid" = "المنشورات المموّلة في شبكة الاستكشاف"; +"Sponsored reels in the sundial feed" = "الريلز المموّلة في خلاصة sundial"; +"Start" = "‏البداية‏"; +"Story ads and sponsored entries in the story tray" = "إعلانات القصص والإدخالات المموّلة في شريط القصص"; "Strip tracking from links" = "‏تجريد الروابط من التتبع‏"; "Strip tracking params" = "‏إزالة معلمات التتبع‏"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "‏يمنع تنبيه \"حان وقت تحديث Instagram Beta\"‏"; +"Tap to apply" = "اضغط للتطبيق"; +"The selected icon will be saved and shown here the next time you open this page." = "سيتم حفظ الأيقونة المحددة وعرضها هنا في المرة القادمة التي تفتح فيها هذه الصفحة."; "Toggle live comments" = "‏تبديل التعليقات المباشرة‏"; "Use detailed color picker" = "‏استخدام منتقي الألوان التفصيلي‏"; +"Used across feed, stories, reels, and DMs." = "‏يُستخدَم في المنشورات والقصص والريلز والرسائل‏"; ////////////////////////////////////////////////////////////////////////////// // DATE FORMAT // // Settings → Date format tab // ////////////////////////////////////////////////////////////////////////////// +"%ld day ago" = "قبل %ld يوم"; +"%ld days ago" = "قبل %ld يوم"; +"%ld hour ago" = "قبل %ld ساعة"; +"%ld hours ago" = "قبل %ld ساعة"; +"%ld minute ago" = "قبل %ld دقيقة"; +"%ld minutes ago" = "قبل %ld دقيقة"; +"%ld week ago" = "قبل %ld أسبوع"; +"%ld weeks ago" = "قبل %ld أسبوع"; +"%ldd" = "%ldي"; +"%ldh" = "%ldس"; +"%ldm" = "%ldد"; +"%ldw" = "%ldأ"; "Alternate" = "‏بديل‏"; "Always ask" = "‏السؤال دائمًا‏"; "Balanced" = "‏متوازن‏"; @@ -173,12 +220,16 @@ "Explore" = "‏إكسبلور‏"; "Fast" = "‏سريع‏"; "Feed" = "‏اليوميات‏"; +"Feed posts" = "منشورات الموجز"; "High" = "‏مرتفع‏"; "Inbox" = "‏صندوق الوارد‏"; +"just now" = "‏الآن‏"; "Low" = "‏منخفض‏"; "Max" = "‏الأقصى‏"; "Medium" = "‏متوسط‏"; "Mute/Unmute" = "‏كتم / إلغاء الكتم‏"; +"Notes, comments, stories" = "الملاحظات والتعليقات والقصص"; +"now" = "‏الآن‏"; "Open menu" = "‏فتح القائمة‏"; "Pause/Play" = "‏إيقاف / تشغيل‏"; "Profile" = "‏الملف الشخصي‏"; @@ -198,6 +249,8 @@ "Action button" = "‏زر الإجراء‏"; "Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "‏إضافة 'عرض صورة الملف الشخصي' و 'عرض الغلاف' إلى قوائم الضغط المطول في شريط القصص‏"; "Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "‏يضيف زر إجراء ريوك غرام أسفل كل منشور في اليوميات مع خيارات تنزيل ومشاركة ونسخ وتوسيع وإعادة نشر. يؤدي النقر إلى فتح القائمة افتراضيًا؛ قم بتغيير السلوك أدناه.‏"; +"Choose Instagram's default feed or force the Following feed" = "‏اختر اليوميات الافتراضية لإنستغرام أو فرض يوميات المتابَعين‏"; +"Main feed" = "‏اليوميات الرئيسية‏"; "Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "‏يتحكم في متى وكيف يتم تحديث اليوميات. يحدث التحديث في الخلفية عند العودة إلى التطبيق بعد ~10 دقائق. ويحدث تحديث زر الصفحة الرئيسية عند النقر فوقه أثناء التواجد فيه بالفعل.‏"; "Default tap action" = "‏إجراء النقر الافتراضي‏"; "Disable background refresh" = "‏تعطيل التحديث في الخلفية‏"; @@ -216,6 +269,11 @@ "Hides the story tray at the top" = "‏إخفاء شريط القصص في الأعلى‏"; "Inserts a button row below like/comment/share on each post" = "‏إدراج صف أزرار أسفل الإعجاب والتعليق والمشاركة على كل منشور‏"; "Long press on media to expand in full-screen viewer" = "‏اضغط مطولاً على الوسائط لتوسيعها في عارض ملء الشاشة‏"; +"Start media muted" = "‫بدء الوسائط بدون صوت‬"; +"Expanded videos open with sound off" = "‫تُفتح مقاطع الفيديو الموسعة بدون صوت‬"; +"Enhanced media resolution" = "‫دقة وسائط محسّنة‬"; +"Media saving" = "‫حفظ الوسائط‬"; +"Spoof device profile so IG serves higher-quality images" = "‫انتحل ملف الجهاز ليقدم إنستغرام صورًا أعلى جودة‬"; "Media" = "‏الوسائط‏"; "Media zoom" = "‏تكبير الوسائط‏"; "No suggested for you" = "‏لا توجد اقتراحات لك‏"; @@ -230,10 +288,23 @@ "Removes suggested posts" = "‏إزالة المنشورات المقترحة‏"; "Scroll to top without refreshing when tapping Home" = "‏التمرير إلى الأعلى دون تحديث عند النقر على الصفحة الرئيسية‏"; "Show action button" = "‏إظهار زر الإجراء‏"; +"Show date" = "‏إظهار التاريخ‏"; "Stories tray" = "‏شريط القصص‏"; "Tapping Home does nothing when already on feed" = "‏النقر على الصفحة الرئيسية لا يفعل شيئًا عند التواجد بالفعل في اليوميات‏"; "Tray long-press actions" = "‏إجراءات الضغط المطول على الشريط‏"; -"What happens on a single tap. Long-press always opens the full menu" = "‏ماذا يحدث عند النقر مرة واحدة. الضغط المطول يفتح دائمًا القائمة الكاملة‏"; +"Composer doesn't accept GIFs" = "‏المُؤلِّف لا يقبل صور GIF‏"; +"Copy GIF link" = "‏نسخ رابط GIF‏"; +"Copy image link" = "‏نسخ رابط الصورة‏"; +"Custom GIF in comments" = "‏GIF مخصص في التعليقات‏"; +"Failed to build GIF model" = "‏فشل في إنشاء نموذج GIF‏"; +"GIF link copied" = "‏تم نسخ رابط GIF‏"; +"Image" = "‏صورة‏"; +"Image link copied" = "‏تم نسخ رابط الصورة‏"; +"Invalid Giphy URL" = "‏رابط Giphy غير صالح‏"; +"Long-press the GIF button to paste any Giphy URL" = "‏اضغط مطولاً على زر GIF للصق أي رابط Giphy‏"; +"Paste Giphy Link" = "‏لصق رابط Giphy‏"; +"Paste a giphy.com URL or media ID" = "‏الصق رابط giphy.com أو معرف الوسائط‏"; +"Send" = "‏إرسال‏"; ////////////////////////////////////////////////////////////////////////////// // REELS // @@ -245,27 +316,40 @@ "Auto-scroll reels" = "‏التمرير التلقائي لمقاطع ريلز‏"; "Change what happens when you tap on a reel" = "‏تغيير ما يحدث عند النقر على مقطع ريلز‏"; "Confirm reel refresh" = "‏تأكيد تحديث ريلز‏"; +"Custom speed" = "سرعة مخصّصة"; "Disable auto-unmuting reels" = "‏تعطيل إلغاء الكتم التلقائي لمقاطع ريلز‏"; "Disable scrolling reels" = "‏تعطيل تمرير مقاطع ريلز‏"; "Disable tab button refresh" = "‏تعطيل تحديث زر التبويب‏"; "Doom scrolling limit" = "‏حد التمرير المفرط‏"; +"e.g. 1.75" = "مثال: 1.75"; +"Enter a value between 0.5 and 2.0" = "أدخل قيمة بين 0.5 و2.0"; "Forces the progress bar to appear on every reel" = "‏يفرض ظهور شريط التقدم على كل مقطع ريلز‏"; +"Hide \"Made with Edits\" badge" = "‏إخفاء شارة \"تم الإنشاء باستخدام Edits\"‏"; +"Hide friends avatars" = "‏إخفاء صور الأصدقاء‏"; "Hide reels header" = "‏إخفاء ترويسة ريلز‏"; +"Hide social context overlay" = "‏إخفاء طبقة السياق الاجتماعي‏"; +"Hides the avatar bubbles next to the Friends tab in reels" = "‏يخفي صور الأصدقاء بجانب علامة تبويب الأصدقاء في ريلز‏"; +"Hides the Edits app promo pill on reels" = "‏يخفي شارة الترويج لتطبيق Edits في الريلز‏"; +"Hides the floating overlay showing who reposted or commented on reels" = "‏يخفي الطبقة العائمة التي تظهر من أعاد النشر أو علّق على الريلز‏"; "Hides the repost button on the reels sidebar" = "‏إخفاء زر إعادة النشر على الشريط الجانبي لمقاطع ريلز‏"; "Hides the top navigation bar when watching reels" = "‏إخفاء شريط التنقل العلوي عند مشاهدة ريلز‏"; "Hiding" = "‏إخفاء‏"; +"Hold the 3-dot on any reel to open speed picker" = "اضغط مطوّلاً على النقاط الثلاث في أي ريل لفتح منتقي السرعة"; "IG default" = "‏الافتراضي لإنستغرام‏"; "IG default: native behavior. RyukGram: re-advances after swiping back." = "‏الافتراضي لإنستغرام: السلوك الأصلي. ريوك غرام: يعيد التقدم بعد التمرير للخلف.‏"; "Limits" = "‏الحدود‏"; "Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "‏يحد من عدد مقاطع ريلز المتاحة للتمرير في أي وقت، ويمنع التحديث‏"; "Only loads %@ %@" = "‏تحميل %@ %@ فقط‏"; "Places a button above the like/comment/share column on each reel" = "‏يضع زرًا أعلى عمود الإعجاب والتعليق والمشاركة في كل مقطع ريلز‏"; +"Playback speed" = "سرعة التشغيل"; "Prevent doom scrolling" = "‏منع التمرير المفرط‏"; "Prevents reels from being scrolled to the next video" = "‏يمنع التمرير إلى الفيديو التالي في ريلز‏"; "Prevents reels from unmuting when the volume/silent button is pressed" = "‏يمنع إلغاء كتم صوت ريلز عند الضغط على أزرار الصوت‏"; "RyukGram" = "‏ريوك غرام‏"; "Shows an alert when you trigger a reels refresh" = "‏يعرض تنبيهًا عند بدء تحديث ريلز‏"; "Shows buttons to reveal and auto-fill the password on locked reels" = "‏يظهر أزرارًا للكشف عن كلمة المرور وتعبئتها تلقائيًا في مقاطع ريلز المقفلة‏"; +"Swipe a reel left to open the author's profile" = "‏اسحب مقطع ريلز لليسار لفتح الملف الشخصي لصاحبه‏"; +"Swipe left to profile" = "‏السحب لليسار لفتح الملف الشخصي‏"; "Tap Controls" = "‏عناصر تحكم النقر‏"; "Tap to mute on photo reels" = "‏اضغط للكتم في ريلز الصور‏"; "Tapping the Reels tab while on reels does nothing" = "‏النقر على تبويب ريلز أثناء التواجد فيه لا يفعل شيئًا‏"; @@ -277,15 +361,19 @@ // Settings → Profile tab // ////////////////////////////////////////////////////////////////////////////// -"Adds a button next to the burger menu on profiles to copy username, name or bio" = "‏إضافة زر بجوار القائمة في الملفات الشخصية لنسخ اسم المستخدم أو الاسم أو البايو‏"; +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "يضيف زرًا لتصفية وترتيب أي قائمة متابِعين/متابَعين. يُعاد ضبطه عند المغادرة."; "Adds a view option to the highlight long-press menu to open the cover in full-screen" = "‏إضافة خيار عرض إلى قائمة الضغط المطول على الهايلايت لفتح الغلاف بملء الشاشة‏"; "Copy note on long press" = "‏نسخ الملاحظة عند الضغط المطول‏"; +"Extra stats shown on each post and reel card in profile grids." = "إحصائيات إضافية تظهر على كل بطاقة منشور وريل في شبكات الملف الشخصي."; "Fake follower count" = "‏عدد متابعين وهمي‏"; "Fake following count" = "‏عدد المتابَعين وهمي‏"; "Fake post count" = "‏عدد منشورات وهمي‏"; "Fake profile stats" = "‏إحصائيات ملف شخصي وهمية‏"; "Fake verified badge" = "‏شارة توثيق وهمية‏"; +"Fetch missing counts" = "جلب الأرقام المفقودة"; +"Filter & sort lists" = "تصفية وترتيب القوائم"; "Follow indicator" = "‏مؤشر المتابعة‏"; +"Follower & following lists" = "قوائم المتابِعين والمتابَعين"; "Follower count" = "‏عدد المتابعين‏"; "Following count" = "‏عدد المتابَعين‏"; "Long press a profile picture to open it in full-screen with zoom, share, and save" = "‏اضغط مطولاً على صورة الملف الشخصي لفتحها بملء الشاشة مع إمكانية التكبير والمشاركة والحفظ‏"; @@ -293,12 +381,21 @@ "Long press to download directly (ignored when zoom is on)" = "‏اضغط مطولاً للتنزيل مباشرة (يتم تجاهله عند تشغيل التكبير)‏"; "Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "‏إيماءات الضغط المطول على عناصر الملف الشخصي — منفصلة عن أزرار الإجراءات لكل ميزة.‏"; "Only affects your own profile header. Other users see the real numbers." = "‏يؤثر فقط على رأس ملفك الشخصي. يرى المستخدمون الآخرون الأرقام الحقيقية.‏"; +"Override view count" = "تجاوز عدد المشاهدات"; "Post count" = "‏عدد المنشورات‏"; -"Profile copy button" = "‏زر نسخ الملف الشخصي‏"; +"Profile card details" = "تفاصيل بطاقة الملف الشخصي"; +"Profile stats" = "إحصائيات الملف الشخصي"; +"Render counts in shortened format." = "عرض الأرقام بصيغة مختصرة."; "Save profile picture" = "‏حفظ صورة الملف الشخصي‏"; +"Short numbers" = "أرقام مختصرة"; "Show a checkmark next to your name on your own profile" = "‏إظهار علامة توثيق بجوار اسمك في ملفك الشخصي‏"; +"Show full follower count" = "إظهار العدد الكامل للمتابعين"; +"Show full post count" = "إظهار العدد الكامل للمنشورات"; +"Show like count" = "إظهار عدد الإعجابات"; +"Show upload date" = "إظهار تاريخ النشر"; "Shows whether the profile user follows you" = "‏يُظهر ما إذا كان صاحب الملف الشخصي يتابعك‏"; "Tap to set" = "‏اضغط للتعيين‏"; +"Uses Instagram's API. May hit rate limits." = "يستخدم واجهة Instagram API. قد يصطدم بحدود المعدل."; "View highlight cover" = "‏عرض غلاف الهايلايت‏"; "Zoom profile photo" = "‏تكبير صورة الملف الشخصي‏"; @@ -307,23 +404,62 @@ // Settings → Saving tab // ////////////////////////////////////////////////////////////////////////////// +"Active, queued, and finished downloads" = "التنزيلات النشطة وفي قائمة الانتظار والمكتملة"; +"Auto-retry attempts" = "محاولات إعادة المحاولة التلقائية"; +"Auto-retry failed downloads" = "إعادة محاولة التنزيلات الفاشلة تلقائيًا"; "Confirm before download" = "‏التأكيد قبل التنزيل‏"; "Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "‏مهمل. زر إجراء ريوك غرام (المكوّن لكل ميزة في اليوميات وريلز والقصص) هو الطريقة الجديدة لتنزيل الوسائط. مكّن هذا الخيار فقط إذا كنت تفضل الضغط المطول القديم المباشر على الوسائط.‏"; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "لا توقف التنزيلات أو الترميز أو فحوصات الملف الشخصي مؤقتًا عند مغادرة التطبيق"; +"Download queue" = "قائمة انتظار التنزيل"; "Downloads" = "‏التنزيلات‏"; "Downloads with %@ %@" = "‏تنزيلات باستخدام %@ %@‏"; "Enable long-press gesture" = "‏تفعيل إيماءة الضغط المطول‏"; "Finger count for long-press" = "‏عدد الأصابع للضغط المطول‏"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "عدد التنزيلات التي تعمل في وقت واحد — تنتظر الإضافية في الطابور وتبدأ عند توفر فتحات. تُعاد محاولة التنزيلات الفاشلة تلقائيًا عند أخطاء الشبكة. افتح المدير لمراقبة التنزيلات أو إلغائها أو إعادة محاولتها."; +"Keep running in background" = "الاستمرار في العمل في الخلفية"; "Legacy long-press gesture" = "‏إيماءة الضغط المطول القديمة‏"; "Long-press hold time" = "‏مدة الاحتفاظ بالضغط المطول‏"; "Master toggle for the deprecated gesture workflow (off by default)" = "‏التبديل الرئيسي لإيماءات الضغط المطول القديمة (مغلق افتراضيًا)‏"; +"Max simultaneous downloads" = "أقصى عدد للتنزيلات المتزامنة"; +"Open download manager" = "فتح مدير التنزيلات"; "Press finger(s) for %@ %@" = "‏اضغط بإصبع/أصابع لمدة %@ %@‏"; -"Route saves into a dedicated album in Photos instead of the camera roll root" = "‏توجيه الحفظ إلى ألبوم مخصص في تطبيق الصور بدلاً من الألبوم الرئيسي‏"; +"Retry automatically when a download drops on a network error" = "إعادة المحاولة تلقائيًا عند انقطاع التنزيل بسبب خطأ في الشبكة"; +"Route saves into a custom album in Photos instead of the camera roll root" = "‏توجيه الحفظ إلى ألبوم مخصص في تطبيق الصور بدلاً من الألبوم الرئيسي‏"; +"Run up to %@ %@ at once" = "تشغيل حتى %@ %@ في وقت واحد"; "Save action" = "‏إجراء الحفظ‏"; -"Save to RyukGram album" = "‏الحفظ في ألبوم ريوك غرام‏"; -"Saving" = "‏يتم الحفظ‏"; +"Save to dedicated album" = "الحفظ في ألبوم مخصص"; "Show a confirmation dialog before starting a download" = "‏عرض نافذة تأكيد قبل بدء التنزيل‏"; +"Try %@ more %@ before giving up" = "حاول %@ %@ إضافية قبل الاستسلام"; "What happens after the gesture downloads" = "‏ماذا يحدث بعد تنزيلات الإيماءة‏"; -"When \"Save to RyukGram album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a dedicated \"RyukGram\" album in your Photos library." = "‏عند تشغيل \"الحفظ في ألبوم ريوك غرام\"، يتم توجيه التنزيلات واختيارات \"الحفظ في الصور\" إلى ألبوم مخصص يسمى \"RyukGram\" في مكتبة الصور الخاصة بك.‏"; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "عند تفعيل \"الحفظ في ألبوم مخصص\"، تُوجَّه التنزيلات وخيارات \"الحفظ في الصور\" من ورقة المشاركة إلى ألبوم مُسمّى في مكتبة الصور. اضغط على \"اسم الألبوم\" لتغييره."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "فشل %lu"; +"%lu of %lu done" = "%lu من %lu مكتمل"; +"%lu saved, %lu failed" = "تم حفظ %lu، فشل %lu"; +"Active" = "نشط"; +"Auto-retry" = "إعادة المحاولة التلقائية"; +"Clear completed" = "مسح المكتملة"; +"Completed" = "مكتمل"; +"Download settings" = "إعدادات التنزيل"; +"Downloading %lu items" = "جارٍ تنزيل %lu عنصر"; +"Downloading…" = "جارٍ التنزيل…"; +"Encoding %d%%" = "الترميز %d%%"; +"Encoding…" = "جارٍ الترميز…"; +"Extra downloads wait in line and start as slots free up." = "تنتظر التنزيلات الإضافية في الطابور وتبدأ عند توفر فتحات."; +"No downloads yet" = "لا توجد تنزيلات بعد"; +"Preview" = "معاينة"; +"Queued" = "في قائمة الانتظار"; +"Redownload" = "إعادة التنزيل"; +"Retry" = "إعادة المحاولة"; +"Retrying…" = "جارٍ إعادة المحاولة…"; +"Waiting for connection…" = "في انتظار الاتصال…"; +"Waiting…" = "في الانتظار…"; ////////////////////////////////////////////////////////////////////////////// // STORIES // @@ -356,19 +492,24 @@ "Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "‏يحدد القصة كمقروءة عند إرسال رد أو تفاعل، حتى مع تفعيل حظر المشاهدة‏"; "Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "‏يحدد القصص كمقروءة محليًا (حلقة رمادية) بينما لا يزال يحظر إرسال مؤشر المشاهدة للخادم‏"; "Master toggle. When off, the list is ignored" = "‏المفتاح الرئيسي. عند إيقاف التشغيل، يتم تجاهل القائمة‏"; -"Other" = "‏أخرى‏"; "Playback" = "‏التشغيل‏"; -"Quick list button in stories" = "‏زر القائمة السريعة في القصص‏"; "Search, sort, swipe to remove" = "‏بحث، فرز، التمرير للإزالة‏"; "Seen receipts" = "‏مؤشرات القراءة‏"; "Sending a reply or emoji reaction automatically advances to the next story" = "‏إرسال رد أو تفاعل ينقلك تلقائيًا للقصة التالية‏"; -"Show mentioned users in eye button and story menu" = "‏إظهار المستخدمين المشار إليهم في زر المشاهدة وقائمة القصة‏"; -"Shows an eye button on stories to add/remove users from the list. Off = use the 3-dot menu or long-press only" = "‏يعرض زر عين في القصص لإضافة وإزالة المستخدمين من القائمة. إيقاف = استخدم قائمة النقاط الثلاث أو الضغط المطول فقط‏"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "‏يضيف خيار 'عرض الإشارات' إلى قائمة زر الإجراء وقائمة النقاط الثلاث في القصص‏"; +"Mentions overlay button" = "‏زر الإشارات على القصة‏"; +"Mentions count badge" = "شارة عدد الإشارات"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "‏يضيف زرًا بجوار زر الإجراء/المشاهدة على القصة. يظهر فقط عند احتواء القصة الحالية على إشارات أو منشورات/ريلز مشتركة‏"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "يعرض عدد الحسابات المُشار إليها كشارة حمراء على الزر التراكبي"; +"Hide stories midcards" = "إخفاء البطاقات الوسطى للقصص"; +"Removes the Trending and Music promo cards from the stories tray" = "يزيل بطاقات الترويج للرائج والموسيقى من شريط القصص"; "Stickers" = "‏ملصقات‏"; -"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force Quiz brings the legacy Quiz sticker back into the story composer tray." = "‏اطلع على نتائج استطلاعات الرأي/الاختبارات/شريط التمرير قبل التفاعل — لا يزال بإمكانك النقر للتصويت بشكل طبيعي. 'إجبار ظهور ملصق الاختبار' يعيد ملصق الاختبار القديم إلى لوحة إنشاء القصة.‏"; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "‏اطلع على نتائج استطلاعات الرأي/الاختبارات/شريط التمرير قبل التفاعل — لا يزال بإمكانك النقر للتصويت بشكل طبيعي. 'إجبار الملصقات القديمة' يعيد ملصقَي الاختبار والكشف إلى لوحة إنشاء القصة.‏"; "Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "‏اطلع على نتائج استطلاعات الرأي/الاختبارات/شريط التمرير في الريلز قبل التفاعل — لا يزال بإمكانك النقر للتصويت بشكل طبيعي.‏"; -"Force Quiz sticker in tray" = "‏إجبار ظهور ملصق الاختبار‏"; -"Adds Quiz back to the story sticker picker" = "‏إعادة ملصق الاختبار إلى منتقي ملصقات القصة‏"; +"Force legacy stickers in tray" = "‏إجبار ظهور الملصقات القديمة‏"; +"Adds Quiz and Reveal stickers back to the picker" = "‏إعادة ملصقَي الاختبار والكشف إلى منتقي الملصقات‏"; +"Bypass Reveal sticker" = "‏تجاوز ملصق الكشف‏"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "‏تخطَّ خطوة إرسال رسالة لكشف القصص التي تحتوي على ملصق الكشف‏"; "Show quiz answer" = "‏إظهار إجابة الاختبار‏"; "Circle the correct option on quiz stickers, or the leading option on polls" = "‏تمييز الخيار الصحيح في ملصقات الاختبار أو الخيار الأكثر تصويتًا في الاستطلاعات‏"; "Show poll vote counts" = "‏إظهار عدد أصوات الاستطلاع‏"; @@ -405,66 +546,187 @@ "Activity" = "‏النشاط‏"; "Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "‏يضيف خيار 'تنزيل' إلى قائمة الضغط المطول للرسائل الصوتية لحفظها كصوت M4A‏"; +"Allows typing and sending DMs longer than Instagram's limit" = "‏يسمح بكتابة وإرسال رسائل أطول من الحد المسموح به في إنستغرام‏"; "Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "‏يضيف خيار 'إرسال ملف' إلى قائمة الزائد في الرسائل الخاصة. الأنواع المدعومة قد يقيدها إنستغرام‏"; "Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "‏يضيف خيار 'ملف صوتي' إلى قائمة الزائد في الرسائل الخاصة لإرسال الملفات الصوتية كرسائل صوتية‏"; "Adds copy text, download GIF/audio to the note long-press menu" = "‏يضيف خيارات نسخ النص، وتنزيل صور جيف والصوت إلى قائمة الضغط المطول للملاحظة‏"; -"Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "‏حظر الكل: حظر جميع الدردشات — الدردشات المدرجة مستثناة.\nحظر المحدد: حظر الدردشات المدرجة فقط — كل شيء آخر طبيعي.\nيتم حفظ القائمتين بشكل مستقل. اضغط مطولاً على دردشة للإضافة أو الإزالة.‏"; -"Block keep-deleted for excluded chats" = "‏إيقاف الاحتفاظ بالمحذوف للدردشات المستبعدة‏"; -"Block keep-deleted for unlisted chats" = "‏إيقاف الاحتفاظ بالمحذوف للدردشات غير المدرجة‏"; -"Chat list" = "‏قائمة الدردشات‏"; +"Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "‏حظر الكل: حظر جميع المحادثات — المحادثات المدرجة مستثناة.\nحظر المحدد: حظر المحادثات المدرجة فقط — كل شيء آخر طبيعي.\nيتم حفظ القائمتين بشكل مستقل. اضغط مطولاً على محادثة للإضافة أو الإزالة.‏"; +"Block keep-deleted for excluded chats" = "‏إيقاف الاحتفاظ بالمحذوف للمحادثات المستبعدة‏"; +"Block keep-deleted for unlisted chats" = "‏إيقاف الاحتفاظ بالمحذوف للمحادثات غير المدرجة‏"; +"Bypass DM character limit" = "‏تجاوز حد عدد الأحرف في الرسائل‏"; +"Chat list" = "‏قائمة المحادثات‏"; "Confirmation dialog before clearing preserved messages" = "‏نافذة تأكيد قبل مسح الرسائل المحفوظة‏"; "Copies note text directly on long press without opening the menu" = "‏ينسخ نص الملاحظة مباشرة عند الضغط المطول دون فتح القائمة‏"; "Copy text on hold" = "‏نسخ النص عند التوقف‏"; -"Custom emojis and background/text colors" = "‏إيموجي مخصصة وألوان للخلفية والنص‏"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "‏يضيف زر فرشاة واختصار ضغط مطوّل لاختيار ألوان مخصّصة للخلفية والنص‏"; "Custom note themes" = "‏سمات ملاحظات مخصصة‏"; "Disable vanish mode swipe" = "‏تعطيل سحب وضع الاختفاء‏"; -"Disable screenshot detection" = "‏تعطيل الكشف عن لقطات الشاشة‏"; "Disable typing status" = "‏تعطيل حالة الكتابة (يكتب...)‏"; "Disable view-once limitations" = "‏تعطيل قيود العرض لمرة واحدة‏"; "Download voice messages" = "‏تنزيل الرسائل الصوتية‏"; -"Enable chat list" = "‏تفعيل قائمة الدردشات‏"; +"Enable chat list" = "‏تفعيل قائمة المحادثات‏"; "Enable note theming" = "‏تفعيل سمات الملاحظات‏"; "Enables the notes theme picker" = "‏يفعّل منتقي سمات الملاحظات‏"; "Files" = "‏الملفات‏"; "Full last active date" = "‏تاريخ آخر ظهور كامل‏"; "Hide reels blend button" = "‏إخفاء زر مزيج ريلز (Blend)‏"; +"Hide send to group chat" = "‏إخفاء الإرسال إلى محادثة جماعية‏"; +"Pin recipients on long-press" = "‏تثبيت المستلمين بالضغط المطوّل‏"; +"Long-press in the share sheet to pin a chat/user to the top" = "‏اضغط مطولاً في ورقة المشاركة لتثبيت محادثة/مستخدم في الأعلى‏"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "‏اضغط مطولاً على مستلم لتثبيته أو إلغاء تثبيته. يظهر المستلمون المثبتون في الأعلى.‏"; +"Recipient pinned" = "‏تم تثبيت المستلم‏"; +"Recipient unpinned" = "‏تم إلغاء تثبيت المستلم‏"; +"Couldn't resolve recipient id" = "‏تعذّر تحديد معرّف المستلم‏"; "Hide video call button" = "‏إخفاء زر مكالمة الفيديو‏"; "Hide voice call button" = "‏إخفاء زر المكالمة الصوتية‏"; "Hides the blend button in DMs" = "‏يخفي زر المزيج في الرسائل الخاصة‏"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "‏يزيل خيار إنشاء/إرسال إلى محادثة جماعية عند المشاركة لعدة مستلمين‏"; "Hides typing indicator from others" = "‏يخفي مؤشر الكتابة عن الآخرين‏"; "Indicate unsent messages" = "‏الإشارة للرسائل الملغاة‏"; "Keep deleted messages" = "‏الاحتفاظ بالرسائل المحذوفة‏"; "Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "‏يجعل رسائل العرض لمرة واحدة تتصرف كالرسائل العادية (قابلة للتكرار والإيقاف)‏"; "Note actions" = "‏إجراءات الملاحظات‏"; -"Preserve messages that others unsend" = "‏الاحتفاظ بالرسائل التي يلغي الآخرون إرسالها‏"; "Preserves messages that others unsend" = "‏يحتفظ بالرسائل التي يلغي الآخرون إرسالها‏"; "Prevents accidental swipe-up activation of vanish mode" = "‏يمنع التنشيط العشوائي لوضع الاختفاء عند السحب لأعلى‏"; -"Quick list button in chats" = "‏زر القائمة السريعة في الدردشات‏"; +"Quick list button in chats" = "‏زر القائمة السريعة في المحادثات‏"; "Removes the audio call button from DM thread header" = "‏يزيل زر المكالمة الصوتية من أعلى المحادثة‏"; -"Removes the screenshot-prevention features for visual messages in DMs" = "‏يزيل ميزات منع لقطات الشاشة للرسائل المرئية في الرسائل الخاصة‏"; "Removes the video call button from DM thread header" = "‏يزيل زر مكالمة الفيديو من أعلى المحادثة‏"; "Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "‏إعادة تشغيل الرسائل المرئية دون انتهاء صلاحيتها. يمكن التبديل من زر العين أو كزر مستقل‏"; "Search, sort, swipe to remove or toggle keep-deleted" = "‏البحث، الفرز، التمرير للإزالة أو تبديل الاحتفاظ بالمحذوف‏"; "Send audio as file" = "‏إرسال الصوت كملف‏"; "Send files (experimental)" = "‏إرسال ملفات (تجريبي)‏"; "Show full date instead of \"Active 2h ago\"" = "‏إظهار التاريخ الكامل بدلاً من \"نشط منذ ساعتين\"‏"; -"Shows a button in DM threads to add/remove chats from the list. Long-press for more options" = "‏يُظهر زرًا في المحادثات لإضافة أو إزالة الدردشات من القائمة. اضغط مطولاً لمزيد من الخيارات‏"; +"Shows a button in DM threads to add/remove chats from the list. Long-press for more options" = "‏يُظهر زرًا في المحادثات لإضافة أو إزالة المحادثات من القائمة. اضغط مطولاً لمزيد من الخيارات‏"; "Shows a notification pill when a message is unsent" = "‏يظهر إشعارًا صغيرًا عند إلغاء إرسال رسالة‏"; "Shows an \"Unsent\" label on preserved messages" = "‏يعرض علامة \"أُلغي الإرسال\" على الرسائل المحفوظة‏"; "Unlimited replay of visual messages" = "‏إعادة تشغيل غير محدودة للرسائل المرئية‏"; "Unsent message notification" = "‏إشعار الرسائل الملغاة‏"; "Voice messages" = "‏الرسائل الصوتية‏"; "Warn before clearing on refresh" = "‏تحذير قبل المسح عند التحديث‏"; -"Which chats get read-receipt blocking" = "‏الدردشات التي يُحظر فيها مؤشر القراءة‏"; +"Which chats get read-receipt blocking" = "‏المحادثات التي يُحظر فيها مؤشر القراءة‏"; "⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "‏⚠️ السحب للتحديث في تبويب الرسائل الخاصة يمسح جميع الرسائل المحفوظة. فعّل التحذير أدناه للحصول على نافذة تأكيد.‏"; +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "‏%@%lu محذوف‏"; +"%lu messages from %lu users" = "‏%lu رسالة من %lu مستخدمًا‏"; +"%lu selected" = "‏%lu محدد‏"; +"Absolute date + time" = "‏تاريخ ووقت كاملان‏"; +"Adjust the filters or clear the search to see more." = "‏عدّل الفلاتر أو امسح البحث لعرض المزيد.‏"; +"All time" = "‏كل الوقت‏"; +"Browse, filter and search recorded messages" = "‏تصفح وفلتر وابحث في الرسائل المسجلة‏"; +"Captures unsent messages with their text or media" = "‏يلتقط الرسائل المحذوفة مع نصها أو وسائطها‏"; +"Clear deleted-message log?" = "‏مسح سجل الرسائل المحذوفة؟‏"; +"Clear from this user" = "‏مسح من هذا المستخدم‏"; +"Clear log" = "‏مسح السجل‏"; +"Clear log for this account" = "‏مسح سجل هذا الحساب‏"; +"Clear log for this user?" = "‏مسح سجل هذا المستخدم؟‏"; +"Clear media files" = "‏مسح ملفات الوسائط‏"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "‏مسح الوسائط يحتفظ بالسجلات (النص، المرسل، الوقت). مسح السجل يحذف كل شيء لهذا الحساب.‏"; +"Close" = "‏إغلاق‏"; +"Content unavailable" = "‏المحتوى غير متاح‏"; +"Copied" = "‏تم النسخ‏"; +"Copy URL" = "نسخ الرابط"; +"Date range" = "‏نطاق التاريخ‏"; +"Deleted messages" = "‏الرسائل المحذوفة‏"; +"Deleted messages log" = "‏سجل الرسائل المحذوفة‏"; +"Deleted: %@\n" = "‏حُذفت: %@‏\n"; +"Edit %lu" = "‏تعديل %lu‏"; +"Edit history" = "‏سجل التعديلات‏"; +"Edited" = "‏تم التعديل‏"; +"Empty" = "‏فارغ‏"; +"Enable deleted messages log" = "‏تفعيل سجل الرسائل المحذوفة‏"; +"Enable Settings → Messages → Deleted messages log to start recording." = "‏فعّل الإعدادات ← الرسائل ← سجل الرسائل المحذوفة لبدء التسجيل.‏"; +"GIF" = "‏GIF‏"; +"Hashtag" = "‏هاشتاغ‏"; +"IGTV" = "‏IGTV‏"; +"Kind: %@\n" = "‏النوع: %@‏\n"; +"Last 30 days" = "‏آخر 30 يومًا‏"; +"Last 7 days" = "‏آخر 7 أيام‏"; +"Link" = "‏رابط‏"; +"Live location" = "الموقع المباشر"; +"Location" = "موقع"; +"Logging is off" = "‏التسجيل متوقف‏"; +"Media on disk" = "‏الوسائط على القرص‏"; +"Most messages" = "‏الأكثر رسائل‏"; +"Most recent" = "‏الأحدث‏"; +"No deleted messages yet" = "‏لا توجد رسائل محذوفة بعد‏"; +"No matches" = "‏لا توجد نتائج‏"; +"Nothing to save" = "‏لا يوجد شيء لحفظه‏"; +"Oldest first" = "‏الأقدم أولاً‏"; +"Open log" = "‏فتح السجل‏"; +"Open profile" = "‏فتح الملف الشخصي‏"; +"Original" = "‏الأصلي‏"; +"Play" = "‏تشغيل‏"; +"Post" = "منشور"; +"Records every message someone unsends, grouped by sender" = "‏يحفظ كل رسالة يلغيها أحدهم، مجمعة حسب المرسل‏"; +"Reel" = "‏ريل‏"; +"Relative (1m / 3h / 3d ago)" = "‏نسبي (قبل دقيقة / 3 س / 3 ي)‏"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "‏يزيل كل رسالة محذوفة محفوظة ووسائطها للحساب الحالي. لا يمكن التراجع عن هذا.‏"; +"Removes every preserved deleted message and its captured media for this account." = "‏يزيل كل رسالة محذوفة محفوظة ووسائطها لهذا الحساب.‏"; +"Removes every preserved deleted message from this sender." = "‏يزيل كل رسالة محذوفة محفوظة من هذا المرسل.‏"; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "‏يزيل كل صورة وفيديو ومقطع صوتي محفوظ. تحتفظ السجلات بنصها ومعلومات المرسل.‏"; +"Search messages" = "‏ابحث في الرسائل‏"; +"Search senders or messages" = "‏ابحث عن المرسلين أو الرسائل‏"; +"Select" = "‏تحديد‏"; +"Show edit history" = "‏عرض سجل التعديلات‏"; +"Source URL recorded but media not stored.\n" = "‏تم تسجيل عنوان المصدر دون تخزين الوسائط.‏\n"; +"Sticker" = "‏ملصق‏"; +"Tap to open in Instagram" = "اضغط للفتح في Instagram"; +"Tap to open in Maps" = "اضغط للفتح في الخرائط"; +"Tap to play" = "اضغط للتشغيل"; +"Tap to play · %@" = "اضغط للتشغيل · %@"; +"Text" = "‏نص‏"; +"This account" = "‏هذا الحساب‏"; +"Unknown" = "‏غير معروف‏"; +"Video" = "‏فيديو‏"; +"View" = "‏عرض‏"; +"Voice" = "‏صوت‏"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "‏عند التفعيل، تُحفظ الرسائل المحذوفة ووسائطها على هذا الجهاز. أوقف التفعيل وامسح السجل لمسح المحفوظات.‏"; +"When someone unsends a message, it will appear here grouped by sender." = "‏عندما يحذف أحدهم رسالة، ستظهر هنا مجمعة حسب المرسل.‏"; + ////////////////////////////////////////////////////////////////////////////// // MESSAGES // // Settings → Messages tab // ////////////////////////////////////////////////////////////////////////////// +"Custom chat background" = "خلفية محادثة مخصصة"; +"Incoming calls stay silent — no ring, no screen, no notification" = "تبقى المكالمات الواردة صامتة — بلا رنين ولا شاشة ولا إشعار"; "Messages" = "‏الرسائل‏"; +"Silence incoming calls" = "إسكات المكالمات الواردة"; "Threads" = "‏المحادثات‏"; +"Use your own images as chat backgrounds" = "استخدم صورك الخاصة كخلفيات للمحادثات"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "‏يضيف زر المعرض إلى كاميرا اللحظات السريعة لإرسال صورة من ألبومك‏"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "‏يضيف زر إجراء RyukGram إلى رأس عارض إنستنت مع خيارات التوسيع والحفظ والمشاركة والحفظ المجمّع‏"; +"All loaded instants" = "‏جميع اللحظات المحمّلة‏"; +"Bypasses the Instants screenshot block" = "‏يتجاوز حظر لقطات الشاشة على اللحظات السريعة‏"; +"Could not locate the instant on screen" = "‏تعذّر تحديد موقع اللحظة على الشاشة‏"; +"Current instant" = "‏اللحظة الحالية‏"; +"In-app Gallery" = "‏معرض التطبيق‏"; +"Instant" = "‏لحظة‏"; +"Instants" = "‏اللحظات السريعة‏"; +"Instants action button" = "‏زر إجراء إنستنت‏"; +"No instants currently loaded" = "‏لا توجد لحظات محمّلة حاليًا‏"; +"No media available to save" = "‏لا توجد وسائط لحفظها‏"; +"Photos library" = "‏مكتبة الصور‏"; +"Pick from" = "‏اختر من‏"; +"Queued %lu instants" = "‏تم إدراج %lu لحظة في قائمة الانتظار‏"; +"Save all to Gallery" = "‏حفظ الكل في المعرض‏"; +"Save all to Photos" = "‏حفظ الكل في الصور‏"; +"Save to Gallery" = "‏حفظ في المعرض‏"; +"Send from gallery" = "‏إرسال من المعرض‏"; +"Tweaks for the QuickSnap / Instants camera surface." = "‏تعديلات على واجهة كاميرا QuickSnap / اللحظات السريعة.‏"; +"Use" = "‏استخدام‏"; ////////////////////////////////////////////////////////////////////////////// // NAVIGATION // @@ -501,46 +763,236 @@ // Settings → Confirm actions tab // ////////////////////////////////////////////////////////////////////////////// +"All" = "‏الكل‏"; +"Calls" = "المكالمات"; +"Comments & posts" = "التعليقات والمنشورات"; "Confirm actions" = "‏تأكيد الإجراءات‏"; -"Confirm video call" = "‏تأكيد مكالمة الفيديو‏"; -"Confirm voice call" = "‏تأكيد المكالمة الصوتية‏"; "Confirm changing theme" = "‏تأكيد تغيير السمة‏"; "Confirm follow" = "‏تأكيد المتابعة‏"; "Confirm follow requests" = "‏تأكيد طلبات المتابعة‏"; +"Confirm Instants capture" = "‏تأكيد التقاط الإنستنت‏"; +"Confirm Instants emoji reaction" = "‏تأكيد تفاعل الإيموجي في الإنستنت‏"; "Confirm like: Posts" = "‏تأكيد الإعجاب: المنشورات‏"; "Confirm like: Reels" = "‏تأكيد الإعجاب: ريلز‏"; +"Confirm note emoji reaction" = "‏تأكيد تفاعل الإيموجي على الملاحظة‏"; +"Confirm note like" = "‏تأكيد الإعجاب بالملاحظة‏"; "Confirm posting comment" = "‏تأكيد نشر التعليق‏"; "Confirm repost" = "‏تأكيد إعادة النشر‏"; -"Confirm vanish mode" = "‏تأكيد وضع الاختفاء‏"; -"Confirm sticker interaction (stories)" = "‏تأكيد التفاعل مع الملصقات (القصص)‏"; +"Confirm send to group chat" = "‏تأكيد الإرسال إلى محادثة جماعية‏"; "Confirm sticker interaction (highlights)" = "‏تأكيد التفاعل مع الملصقات (الهايلايت)‏"; +"Confirm sticker interaction (stories)" = "‏تأكيد التفاعل مع الملصقات (القصص)‏"; "Confirm story emoji reaction" = "‏تأكيد تفاعل الإيموجي في القصة‏"; "Confirm story like" = "‏تأكيد الإعجاب بالقصة‏"; +"Confirm switching Instant" = "‏تأكيد تبديل الإنستنت‏"; "Confirm unfollow" = "‏تأكيد إلغاء المتابعة‏"; +"Confirm vanish mode" = "‏تأكيد وضع الاختفاء‏"; +"Confirm video call" = "‏تأكيد مكالمة الفيديو‏"; +"Confirm voice call" = "‏تأكيد المكالمة الصوتية‏"; "Confirm voice messages" = "‏تأكيد الرسائل الصوتية‏"; +"Follows" = "يتابِع"; +"Likes" = "الإعجابات"; +"Messaging" = "المراسلة"; +"Reaction stickers only" = "‏ملصقات التفاعل فقط‏"; +"Reactions" = "التفاعلات"; +"Send to group chat?" = "‏إرسال إلى محادثة جماعية؟‏"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "‏يعرض تنبيهًا قبل إنشاء/إرسال إلى محادثة جماعية من قائمة المشاركة‏"; +"Shows an alert before sending an emoji reaction on a note" = "‏يُظهر تنبيهًا قبل إرسال تفاعل إيموجي على ملاحظة‏"; "Shows an alert before sending an emoji reaction on a story" = "‏يُظهر تنبيهًا قبل إرسال تفاعل إيموجي على قصة‏"; +"Shows an alert before sending an emoji reaction on an Instant" = "‏يعرض تنبيهًا قبل إرسال تفاعل إيموجي على إنستنت‏"; +"Shows an alert before taking a photo with the Instants camera" = "‏يعرض تنبيهًا قبل التقاط صورة بكاميرا الإنستنت‏"; +"Shows an alert before tapping to switch to the next/previous Instant" = "‏يعرض تنبيهًا قبل النقر للتبديل إلى الإنستنت التالي/السابق‏"; "Shows an alert to confirm before sending a voice message" = "‏يُظهر تنبيهًا للتأكيد قبل إرسال رسالة صوتية‏"; "Shows an alert to confirm before toggling vanish mode" = "‏يُظهر تنبيهًا للتأكيد قبل تفعيل وضع الاختفاء‏"; "Shows an alert when you accept/decline a follow request" = "‏يُظهر تنبيهًا عند قبول أو رفض طلب متابعة‏"; -"Shows an alert when you change a chat theme to confirm" = "‏يُظهر تنبيهًا عند تغيير سمة الدردشة للتأكيد‏"; -"Shows an alert when you tap a sticker on someone's story" = "‏يُظهر تنبيهًا عند النقر على ملصق في قصة شخص ما‏"; -"Shows an alert when you tap a sticker inside a highlight" = "‏يُظهر تنبيهًا عند النقر على ملصق داخل هايلايت‏"; -"Shows an alert when you click the video call button to confirm before calling" = "‏يُظهر تنبيهًا عند النقر على زر مكالمة الفيديو للتأكيد قبل الاتصال‏"; -"Shows an alert when you click the voice call button to confirm before calling" = "‏يُظهر تنبيهًا عند النقر على زر المكالمة الصوتية للتأكيد قبل الاتصال‏"; +"Shows an alert when you change a chat theme to confirm" = "‏يُظهر تنبيهًا عند تغيير سمة المحادثة للتأكيد‏"; "Shows an alert when you click the follow button to confirm the follow" = "‏يُظهر تنبيهًا عند النقر على زر المتابعة للتأكيد‏"; +"Shows an alert when you click the like button on notes to confirm the like" = "‏يُظهر تنبيهًا عند النقر على زر الإعجاب في الملاحظات للتأكيد‏"; "Shows an alert when you click the like button on posts to confirm the like" = "‏يُظهر تنبيهًا عند النقر على زر الإعجاب في المنشورات للتأكيد‏"; "Shows an alert when you click the like button on reels to confirm the like" = "‏يُظهر تنبيهًا عند النقر على زر الإعجاب في مقاطع ريلز للتأكيد‏"; "Shows an alert when you click the like button on stories to confirm the like" = "‏يُظهر تنبيهًا عند النقر على زر الإعجاب في القصص للتأكيد‏"; "Shows an alert when you click the post comment button to confirm" = "‏يُظهر تنبيهًا عند النقر على زر نشر التعليق للتأكيد‏"; -"Shows an alert when you click the repost button to confirm before resposting" = "‏يُظهر تنبيهًا عند النقر على زر إعادة النشر للتأكيد‏"; +"Shows an alert when you click the repost button to confirm before reposting" = "‏يُظهر تنبيهًا عند النقر على زر إعادة النشر للتأكيد‏"; "Shows an alert when you click the unfollow button to confirm" = "‏يُظهر تنبيهًا عند النقر على زر إلغاء المتابعة للتأكيد‏"; +"Shows an alert when you click the video call button to confirm before calling" = "‏يُظهر تنبيهًا عند النقر على زر مكالمة الفيديو للتأكيد قبل الاتصال‏"; +"Shows an alert when you click the voice call button to confirm before calling" = "‏يُظهر تنبيهًا عند النقر على زر المكالمة الصوتية للتأكيد قبل الاتصال‏"; +"Shows an alert when you tap a sticker inside a highlight" = "‏يُظهر تنبيهًا عند النقر على ملصق داخل هايلايت‏"; +"Shows an alert when you tap a sticker on someone's story" = "‏يُظهر تنبيهًا عند النقر على ملصق في قصة شخص ما‏"; +"Stories & highlights" = "القصص والمميزة"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld س"; +"%ld locked" = "%ld مقفل"; +"%ld min" = "%ld د"; +"%ldh idle" = "‏خمول %ldس‏"; +"%ldm idle" = "‏خمول %ldد‏"; +"%lds" = "%ldث"; +"%lds idle" = "‏خمول %ldث‏"; +"%lu hidden" = "%lu مخفي"; +"4 digits" = "4 أرقام"; +"6 digits" = "6 أرقام"; +"Add hidden chat" = "إضافة محادثة مخفية"; +"Add locked chat" = "إضافة محادثة مقفلة"; +"Allow Instants screenshots" = "السماح بلقطات شاشة Instants"; +"Always ask when opening again" = "اسأل دائمًا عند الفتح مرة أخرى"; +"Ask again after Instagram returns" = "اسأل مجددًا بعد عودة Instagram"; +"Auto-relock after idle" = "إعادة القفل التلقائي بعد الخمول"; +"Balanced default" = "الافتراضي المتوازن"; +"Best for sensitive sections" = "الأفضل للأقسام الحساسة"; +"Biometric" = "القياس الحيوي"; +"Change passcode" = "تغيير رمز المرور"; +"Chat hidden" = "تم إخفاء المحادثة"; +"Chat locked" = "تم قفل المحادثة"; +"Chat unlocked" = "تم فتح المحادثة"; +"Choose a code you'll remember." = "اختر رمزًا تتذكره."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "اختر مدة بقاء هذا القسم مفتوحًا أثناء الخمول. خيار \"أبدًا\" يبقيه مفتوحًا حتى إغلاق Instagram أو انتقاله إلى الخلفية."; +"Confirm current passcode" = "تأكيد رمز المرور الحالي"; +"Confirm passcode" = "تأكيد رمز المرور"; +"Could not save passcode" = "تعذر حفظ رمز المرور"; +"Create passcode" = "إنشاء رمز مرور"; +"Derivation failed" = "فشل الاشتقاق"; +"DM inbox" = "صندوق الرسائل"; +"Don't share unlock" = "عدم مشاركة فتح القفل"; +"Each target has its own enable, timeout, and re-lock configuration." = "لكل هدف إعداده الخاص للتفعيل والمهلة وإعادة القفل."; +"Enable lock" = "تفعيل القفل"; +"Enter passcode" = "أدخل رمز المرور"; +"Enter value" = "أدخل قيمة"; +"Enter your current passcode to change it" = "أدخل رمز المرور الحالي لتغييره"; +"Enter your current passcode to reset it" = "أدخل رمز المرور الحالي لإعادة تعيينه"; +"Enter your passcode to continue" = "أدخل رمز المرور للمتابعة"; +"every use" = "في كل استخدام"; +"Every use" = "في كل استخدام"; +"Hidden chats" = "المحادثات المخفية"; +"Hide chat" = "إخفاء المحادثة"; +"Hide message preview" = "إخفاء معاينة الرسالة"; +"Hide this chat?" = "إخفاء هذه المحادثة؟"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "‏يُخفي واجهة RyukGram من لقطات الشاشة والتسجيلات ويتجاوز تنبيهات Instagram للقطات الشاشة لكل ميزة.‏"; +"Idle timeout" = "مهلة الخمول"; +"Instagram" = "‏إنستغرام‏"; +"Keep this target locked separately" = "أبقِ هذا الهدف مقفلاً بشكل منفصل"; +"Less frequent prompts" = "مطالبات أقل تكرارًا"; +"Lock" = "قفل"; +"Lock chat" = "قفل المحادثة"; +"Lock every time" = "القفل في كل مرة"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "يتجاوز \"القفل في كل مرة\" مهلة الخمول. يبقي \"عدم مشاركة فتح القفل\" هذا الهدف منفصلاً."; +"Lock targets" = "أهداف القفل"; +"Lock the tweak" = "قفل الإضافة"; +"Lock this chat" = "قفل هذه المحادثة"; +"Lock this chat?" = "قفل هذه المحادثة؟"; +"Lock with passcode" = "القفل برمز المرور"; +"Locked chats" = "المحادثات المقفلة"; +"Long-press a chat to lock it individually" = "اضغط مطولاً على محادثة لقفلها على حدة"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "‏اضغط مطولاً على محادثة → إخفاء المحادثة لإضافتها هنا. تُستبعد المحادثات المخفية من الصندوق حتى تزيلها من هذه القائمة.‏"; +"Long-press a DM to add" = "‏اضغط مطولاً على محادثة للإضافة‏"; +"Longest idle window" = "أطول فترة خمول"; +"Manage locked chats" = "إدارة المحادثات المقفلة"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "‏المفتاح الرئيسي. أوقف التشغيل لتعطيل جميع أهداف القفل دون فقدان إعدادات كل هدف.‏"; +"Never" = "أبدًا"; +"No passcode set" = "لا يوجد رمز مرور"; +"Nothing here yet." = "لا يوجد شيء هنا بعد."; +"Off" = "‏إيقاف‏"; +"On" = "‏تشغيل‏"; +"On — %@" = "‏مُفعّل — %@‏"; +"On — %@ + %ld more" = "‏مُفعّل — %@ و %ld آخرين‏"; +"On — no targets enabled" = "‏مُفعّل — لا توجد أهداف مفعّلة‏"; +"Passcode" = "رمز المرور"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "‏رمز المرور + القياس الحيوي. لقفل نافذة الإعدادات والمعرض وسجل الرسائل المحذوفة ومحادثات بعينها والتطبيق كاملاً.‏"; +"Passcode changed" = "تم تغيير رمز المرور"; +"Passcode reset" = "تم إعادة تعيين رمز المرور"; +"Passcode set" = "تم تعيين رمز المرور"; +"Passcode too short" = "رمز المرور قصير جدًا"; +"Passcodes did not match — try again" = "‏الرموز غير متطابقة — حاول مرة أخرى‏"; +"Per-chat locks" = "أقفال لكل محادثة"; +"Prompt before Instagram opens" = "‏اطلب قبل فتح Instagram‏"; +"Prompt before Profile Analyzer opens" = "اطلب قبل فتح محلل الملف الشخصي"; +"Prompt before the deleted-messages log opens" = "اطلب قبل فتح سجل الرسائل المحذوفة"; +"Prompt before the gallery opens" = "اطلب قبل فتح المعرض"; +"Prompt before tweak settings open" = "اطلب قبل فتح إعدادات الإضافة"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "‏اطلب عند كل دخول إلى صندوق الرسائل، بما في ذلك التشغيل المباشر للرسائل‏"; +"Re-enter the same passcode" = "أعد إدخال نفس رمز المرور"; +"Re-lock on background" = "إعادة القفل في الخلفية"; +"re-lock on bg" = "إعادة القفل في الخلفية"; +"Recently hidden" = "تم إخفاؤها مؤخرًا"; +"Recently locked" = "تم قفلها مؤخرًا"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "‏إخفاء أزرار RyukGram من لقطات الشاشة وتسجيلات الشاشة والعرض المرآة‏"; +"Remove screenshot alert" = "إزالة تنبيه لقطة الشاشة"; +"Replace inbox preview with • • •" = "استبدال معاينة الصندوق الوارد بـ • • •"; +"Require passcode for this section" = "طلب رمز المرور لهذا القسم"; +"Requires your current passcode" = "يتطلب رمز المرور الحالي"; +"Reset passcode" = "إعادة تعيين رمز المرور"; +"Reset passcode?" = "إعادة تعيين رمز المرور؟"; +"Screenshots & capture" = "لقطات الشاشة والتسجيل"; +"Security & Privacy" = "‏الأمان والخصوصية‏"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "‏قم بتعيين رمز مرور لقفل الإعدادات والمعرض وسجل الرسائل المحذوفة ومحادثات بعينها وصندوق الرسائل ومحلل الملف الشخصي أو Instagram نفسه.‏"; +"Set passcode" = "تعيين رمز المرور"; +"Short idle window" = "فترة خمول قصيرة"; +"Stay unlocked until app close or background" = "البقاء مفتوحًا حتى إغلاق التطبيق أو انتقاله إلى الخلفية"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "إخفاء إشعار \"التقط X لقطة شاشة\" من Instagram عبر القصص والرسائل المباشرة والوسائط المختفية"; +"Tap Unlock" = "اضغط فتح"; +"Tap Unlock or enter your passcode" = "اضغط فتح أو أدخل رمز المرور"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "‏يؤدي ذلك إلى مسح رمز المرور وتعطيل جميع أهداف القفل وفتح كل المحادثات. لن يتأثر المعرض وبيانات الرسائل المحذوفة.‏"; +"Thread %@" = "محادثة %@"; +"Tweak settings" = "‏إعدادات التعديل‏"; +"Unlock" = "فتح"; +"Unlock %@" = "فتح %@"; +"Unlock chat" = "فتح المحادثة"; +"Unlock Instagram" = "فتح Instagram"; +"Unlock this chat" = "فتح هذه المحادثة"; +"Use %@" = "استخدام %@"; +"Username (looks up the DM thread) or raw thread ID" = "‏اسم المستخدم (يبحث عن المحادثة) أو معرّف المحادثة الخام‏"; +"Username or thread ID" = "اسم المستخدم أو معرّف المحادثة"; +"Wrong passcode" = "رمز مرور خاطئ"; +"Wrong passcode • %ld attempts" = "رمز مرور خاطئ • %ld محاولة"; ////////////////////////////////////////////////////////////////////////////// // BACKUP & RESTORE // // Settings → Backup & Restore tab // ////////////////////////////////////////////////////////////////////////////// +"%lu account(s)" = "%lu حساب"; +"%lu account(s) · %lu image(s) · %@" = "%lu حساب · %lu صورة · %@"; +"%lu file(s) · %@" = "%lu ملف · %@"; +"%lu preferences" = "%lu تفضيل"; +"(none)" = "(لا شيء)"; +"Apply backup?" = "تطبيق النسخة الاحتياطية؟"; +"Applying backup…" = "جارٍ تطبيق النسخة الاحتياطية…"; +"archive error" = "خطأ في الأرشيف"; +"Archived snapshots" = "اللقطات المؤرشفة"; "Backup & Restore" = "‏النسخ الاحتياطي والاستعادة‏"; +"Backup exported" = "تم تصدير النسخة الاحتياطية"; +"Backup failed" = "فشلت النسخة الاحتياطية"; +"Backup has no importable sections." = "لا تحتوي النسخة الاحتياطية على أقسام قابلة للاستيراد."; +"Chat & story filters" = "مرشحات المحادثة والقصة"; +"Chat backgrounds" = "خلفيات المحادثة"; +"Clear selected data" = "مسح البيانات المحددة"; +"Corrupt entry path." = "مسار الإدخال تالف."; +"Could not decompress archive." = "تعذّر فك ضغط الأرشيف."; +"Could not open archive." = "تعذّر فتح الأرشيف."; +"Could not open staging file." = "تعذّر فتح ملف التحضير."; +"Could not read the backup archive." = "تعذّر قراءة أرشيف النسخة الاحتياطية."; +"Could not write archive." = "تعذّر كتابة الأرشيف."; +"Could not write backup file." = "تعذّر كتابة ملف النسخة الاحتياطية."; +"Could not write extracted file." = "تعذّر كتابة الملف المستخرَج."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "سيتم استبدال البيانات الحالية للعناصر المحددة. قد تكون إعادة التشغيل ضرورية ليصبح كل شيء ساري المفعول."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "صدّر أو استورد بيانات RyukGram — الإعدادات، ومرشحات كل حساب، والمحادثات المخفية والمقفلة، ومحلل الملف الشخصي، والمعرض، وخلفيات المحادثات والرسائل المحذوفة. اختر أي مجموعة في كل صفحة. تبقى الإعدادات ملف JSON عادي؛ أما الحزم التي تحتوي على وسائط فتُصدَّر كملف .ryukbak مضغوط."; +"Hidden & locked chats" = "المحادثات المخفية والمقفلة"; +"Import" = "استيراد"; +"Inspect the full manifest" = "فحص الملف الكامل (manifest)"; +"Load a .json or .ryukbak backup" = "تحميل نسخة احتياطية .json أو .ryukbak"; +"Not a RyukGram backup archive." = "ليس أرشيف نسخة احتياطية لـ RyukGram."; +"PK %@" = "PK %@"; +"Preparing backup…" = "جارٍ تحضير النسخة الاحتياطية…"; +"Reading backup…" = "جارٍ قراءة النسخة الاحتياطية…"; +"Save settings or a full backup" = "احفظ الإعدادات أو نسخة احتياطية كاملة"; +"Tick what to apply. Rows not in this backup are hidden." = "حدّد ما تريد تطبيقه. تُخفى الصفوف غير الموجودة في هذه النسخة الاحتياطية."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "حدّد ما تريد تضمينه. اضغط على صف لفحصه. إضافة المعرض أو خلفيات المحادثات أو الرسائل المحذوفة تنتج حزمة .ryukbak مضغوطة."; +"Truncated entry data." = "بيانات الإدخال مبتورة."; +"Truncated entry length." = "طول الإدخال مبتور."; +"Truncated entry path." = "مسار الإدخال مبتور."; +"Unsafe entry path." = "مسار الإدخال غير آمن."; ////////////////////////////////////////////////////////////////////////////// // ADVANCED // @@ -556,27 +1008,32 @@ "Clear" = "‏مسح‏"; "Clear cache" = "‏مسح ذاكرة التخزين المؤقت‏"; "Clear cache (%@)" = "‏مسح ذاكرة التخزين المؤقت (%@)‏"; -"Clear cache?" = "‏مسح ذاكرة التخزين المؤقت؟‏"; "Clearing cache…" = "‏جاري المسح…‏"; "Clearing still scans on demand." = "‏سيظل المسح يُجري الفحص عند الطلب.‏"; "Daily" = "‏يومياً‏"; "Disable safe mode" = "‏تعطيل الوضع الآمن‏"; "Enable tweak settings quick-access" = "‏تفعيل الوصول السريع لإعدادات الأداة‏"; -"Free %@ of Instagram cache. A restart is recommended." = "‏تحرير %@ من ذاكرة إنستغرام. يُنصح بإعادة التشغيل.‏"; -"Freed %@. Restart to apply." = "‏تم تحرير %@. أعد التشغيل للتطبيق.‏"; +"Fix duplicate notifications" = "‏إصلاح الإشعارات المكررة‏"; +"Free %@ of Instagram cache." = "‏تحرير %@ من ذاكرة إنستغرام.‏"; +"Freed %@" = "‏تم تحرير %@‏"; "Hold on the home tab to open RyukGram settings" = "‏اضغط مطولاً على تبويب الصفحة الرئيسية لفتح إعدادات ريوك غرام‏"; -"Instagram" = "‏إنستغرام‏"; "Monthly" = "‏شهرياً‏"; "Nothing to clear" = "‏لا شيء للمسح‏"; "Off skips the size scan when Advanced opens." = "‏عند الإيقاف يتم تخطي فحص الحجم عند فتح «متقدم».‏"; "Pause playback when opening settings" = "‏إيقاف التشغيل مؤقتًا عند فتح الإعدادات‏"; +"Always show what's new" = "إظهار الجديد دائمًا"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "إبقاء النقطة الزرقاء على كل ميزة جديدة بدلاً من إزالتها بعد عرضها"; +"Preserve messages database" = "‏الحفاظ على قاعدة بيانات الرسائل‏"; "Pauses any playing video/audio when settings opens" = "‏يوقف أي فيديو أو صوت قيد التشغيل مؤقتًا عند فتح الإعدادات‏"; "Prevents Instagram from resetting settings after crashes (at your own risk)" = "‏يمنع إنستغرام من إعادة ضبط الإعدادات بعد الانهيارات (على مسؤوليتك)‏"; +"Prevents two banners for the same message when IG is in the foreground" = "‏يمنع ظهور إشعارين لنفس الرسالة عندما يكون Instagram في المقدمة‏"; "Remove Instagram's cached images, videos, and temporary files." = "‏يُزيل صور وفيديوهات وملفات إنستغرام المؤقتة.‏"; "Reset onboarding state" = "‏إعادة ضبط حالة التهيئة التمهيدية‏"; "Run a silent cache clear on launch when the interval has elapsed." = "‏يُنفّذ مسحاً صامتاً للذاكرة المؤقتة عند التشغيل إذا انقضت المدة المحددة.‏"; "Show cache size" = "‏إظهار حجم ذاكرة التخزين المؤقت‏"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "‏تخطّي قاعدة بيانات الرسائل عند المسح — يُبقي الرسائل المباشرة والمسودات والرسائل المحفوظة.‏"; "Show tweak settings on app launch" = "‏إظهار إعدادات الأداة عند تشغيل التطبيق‏"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "‏يمنع الإشعار الثاني الذي يضيفه Instagram داخل التطبيق بينما يقوم امتداد الإشعارات بتسليمه أيضًا.‏"; "Weekly" = "‏أسبوعياً‏"; ////////////////////////////////////////////////////////////////////////////// @@ -631,7 +1088,7 @@ "Delete an imported override and fall back to the shipped strings" = "‏احذف تجاوزاً مستورداً وارجع إلى النصوص الأصلية‏"; "Deleted %@ override. Restart to apply." = "‏تم حذف تجاوز %@. أعد التشغيل للتطبيق.‏"; "Enable FLEX gesture" = "‏تفعيل إيماءة أداة فليكس (FLEX)‏"; -"Export English strings" = "‏تصدير نصوص الإنجليزية‏"; +"Export strings" = "تصدير النصوص"; "Hold 5 fingers on the screen to open FLEX" = "‏ضع 5 أصابع على الشاشة لفتح فليكس (FLEX)‏"; "I have %@%@" = "‏لدي %@%@‏"; "Import a .strings file for a language" = "‏استيراد ملف .strings للغة‏"; @@ -647,8 +1104,9 @@ "Opens FLEX when the app is focused" = "‏يفتح فليكس عندما يكون التطبيق قيد التركيز‏"; "Opens FLEX when the app launches" = "‏يفتح فليكس عند إطلاق التطبيق‏"; "Pick a language to delete the imported file" = "‏اختر لغة لحذف الملف المستورد‏"; +"Pick a language to export" = "اختر لغة للتصدير"; "Reset localization" = "‏إعادة تعيين الترجمة‏"; -"Share the base English .strings file for translating" = "‏مشاركة ملف .strings الأساسي بالإنجليزية للترجمة‏"; +"Pick a language and share its .strings file" = "اختر لغة لمشاركة ملف .strings الخاص بها"; "Static Cell" = "‏خلية ثابتة‏"; "Stepper cell" = "‏خلية متدرج‏"; "Switch Cell" = "‏خلية مفتاح تبديل‏"; @@ -665,34 +1123,39 @@ ////////////////////////////////////////////////////////////////////////////// "%@ settings" = "‏إعدادات %@‏"; +"%lu items" = "%lu عنصر"; "Cancelled" = "‏تم الإلغاء‏"; +"Carousel" = "دائري"; +"Carousel · %lu items" = "دائري · %lu عنصر"; "Copied %lu URLs" = "‏تم نسخ %lu روابط‏"; "Copied caption" = "‏تم نسخ الوصف‏"; "Copied download URL" = "‏تم نسخ رابط التنزيل‏"; +"Copied quality info" = "تم نسخ معلومات الجودة"; +"Copied video URL" = "تم نسخ رابط الفيديو"; "Copy all URLs" = "‏نسخ كل الروابط‏"; "Copy caption" = "‏نسخ الوصف‏"; "Copy download URL" = "‏نسخ رابط التنزيل‏"; "Could not extract any URLs" = "‏تعذر استخراج أي روابط‏"; +"Could not extract audio URL" = "‏تعذر استخراج رابط الصوت‏"; "Could not extract media URL" = "‏تعذر استخراج رابط الوسائط‏"; "Could not extract photo URL" = "‏تعذر استخراج رابط الصورة‏"; "Could not extract video URL" = "‏تعذر استخراج رابط الفيديو‏"; "Done" = "‏تم‏"; -"Download all (%lu)" = "‏تنزيل الكل (%lu)‏"; "Download all stories and share?" = "‏تنزيل كل القصص والمشاركة؟‏"; "Download all to Photos" = "‏تنزيل الكل إلى الصور‏"; "Download and share all" = "‏تنزيل ومشاركة الكل‏"; -"Download and share?" = "‏تنزيل ومشاركة؟‏"; "Download failed" = "‏فشل التنزيل‏"; "Downloaded %lu items" = "‏تم تنزيل %lu من العناصر‏"; -"Downloading %@..." = "‏جارِ تنزيل %@...‏"; -"Downloading..." = "‏جارِ التنزيل...‏"; +"Downloading audio…" = "جارٍ تنزيل الصوت…"; "Failed to save" = "‏فشل الحفظ‏"; +"File" = "ملف"; +"HD" = "HD"; "HD download complete" = "‏اكتمل التنزيل بدقة عالية (HD)‏"; +"HD video" = "فيديو HD"; "Mute audio" = "‏كتم الصوت‏"; "No caption on this post" = "‏لا يوجد وصف في هذا المنشور‏"; "No carousel children" = "‏لا توجد وسائط متعددة في هذا المنشور‏"; "No cover image" = "‏لا توجد صورة غلاف‏"; -"No files downloaded" = "‏لم يتم تنزيل أي ملفات‏"; "No media" = "‏لا توجد وسائط‏"; "No media to expand" = "‏لا توجد وسائط لتوسيعها‏"; "No media to show" = "‏لا توجد وسائط لعرضها‏"; @@ -701,22 +1164,22 @@ "No URLs found" = "‏لم يتم العثور على روابط‏"; "No video URL" = "‏لا يوجد رابط للفيديو‏"; "Not a carousel" = "‏ليس منشورًا متعدد الوسائط‏"; -"Nothing to save" = "‏لا يوجد شيء لحفظه‏"; "Nothing to share" = "‏لا يوجد شيء لمشاركته‏"; -"Opening creator..." = "‏جارِ الفتح...‏"; +"Opening creator…" = "‏جارِ الفتح...‏"; "Photo library access denied" = "‏تم رفض الوصول إلى مكتبة الصور‏"; "Photos access denied" = "‏تم رفض الوصول إلى الصور‏"; -"Preparing repost..." = "‏جارِ تجهيز إعادة النشر...‏"; +"Preparing repost…" = "‏جارِ تجهيز إعادة النشر...‏"; +"Raw image" = "صورة خام"; "Repost" = "‏إعادة نشر‏"; "Repost unavailable" = "‏إعادة النشر غير متاحة‏"; -"Save all stories to Photos?" = "‏حفظ جميع القصص في الصور؟‏"; "Save failed" = "‏فشل الحفظ‏"; -"Save to Photos?" = "‏حفظ في الصور؟‏"; "Saved %lu items" = "‏تم حفظ %lu من العناصر‏"; "Saved to Photos" = "‏تم الحفظ في الصور‏"; "Saved to RyukGram" = "‏تم الحفظ في ريوك غرام‏"; -"Tap to cancel" = "‏انقر للإلغاء‏"; +"Saving to Photos" = "جارٍ الحفظ في الصور"; +"Saving…" = "‫جارٍ الحفظ...‬"; "Unmute audio" = "‏إلغاء كتم الصوت‏"; +"Video · %@" = "فيديو · %@"; "View cover" = "‏عرض الغلاف‏"; "View mentions" = "‏عرض الإشارات‏"; @@ -726,68 +1189,76 @@ // inside DM threads. // ////////////////////////////////////////////////////////////////////////////// +" %lu votes · avg %.0f%% " = " %lu صوت · المتوسط %.0f%% "; +"%@ can't be converted" = "‏تعذر تحويل %@‏"; +"%@ unsent a message" = "‏ألغى %@ إرسال رسالة‏"; +"%@ unsent a message from %@" = "‏ألغى %1$@ إرسال رسالة من %2$@‏"; "A message was unsent" = "‏تم إلغاء إرسال رسالة‏"; "Add" = "‏إضافة‏"; "Add to block list" = "‏إضافة لقائمة الحظر‏"; -"Add to block list?" = "‏إضافة لقائمة الحظر؟‏"; "Added to block list" = "‏تمت الإضافة لقائمة الحظر‏"; "Added to exclude list" = "‏أُضيف إلى قائمة الاستبعاد‏"; "Audio not loaded yet. Play the message first and try again." = "‏لم يتم تحميل الصوت بعد. قم بتشغيل الرسالة أولاً وحاول مجددًا.‏"; "Audio sent" = "‏تم إرسال الصوت‏"; +"Audio URL not available" = "‏رابط الصوت غير متاح‏"; "Audio/Video from Files" = "‏صوت أو فيديو من الملفات‏"; "Blocked" = "‏محظور‏"; "Cancel" = "‏إلغاء‏"; "Clear preserved messages?" = "‏مسح الرسائل المحفوظة؟‏"; -"Converting..." = "‏جارِ التحويل...‏"; +"Converting…" = "‏جارِ التحويل...‏"; +"Copy link" = "نسخ الرابط"; "Copy text" = "‏نسخ النص‏"; +"Could not copy selected video" = "تعذّر نسخ الفيديو المحدد"; "Could not find media" = "‏تعذر العثور على وسائط‏"; "Could not find story media" = "‏تعذر العثور على وسائط القصة‏"; -"Could not get audio data. Try again after refreshing the chat." = "‏تعذر الحصول على بيانات الصوت. حاول مجددًا بعد تحديث الدردشة.‏"; -"Could not get video URL" = "‏تعذر الحصول على رابط الفيديو‏"; +"Could not get audio data. Try again after refreshing the chat." = "‏تعذر الحصول على بيانات الصوت. حاول مجددًا بعد تحديث المحادثة.‏"; "Disable read receipts" = "‏تعطيل مؤشرات القراءة‏"; "Disappearing media" = "‏وسائط مختفية‏"; -"Done!" = "‏تم!‏"; "Download audio" = "‏تنزيل الصوت‏"; -"Downloading audio..." = "‏جارِ تنزيل الصوت...‏"; "Enable read receipts" = "‏تفعيل مؤشرات القراءة‏"; "Error: %@" = "‏خطأ: %@‏"; -"Exclude chat" = "‏استبعاد الدردشة‏"; +"Exclude chat" = "‏استبعاد المحادثة‏"; "Exclude from seen" = "‏استبعاد من المُشاهد‏"; "Exclude story seen" = "‏استبعاد مشاهدة القصة‏"; "Excluded" = "‏مستبعد‏"; -"Extracting audio..." = "‏جارِ استخراج الصوت...‏"; -"Failed to encode GIF" = "‏فشل معالجة صورة جيف (GIF)‏"; +"Extracting audio…" = "‏جارِ استخراج الصوت...‏"; +"FFmpeg conversion failed" = "‏فشل التحويل بواسطة FFmpeg‏"; "File sending not supported" = "‏إرسال الملفات غير مدعوم‏"; "Follow" = "‏متابعة‏"; "Following" = "‏تُتابع‏"; +"Format not supported without FFmpegKit" = "‏الصيغة غير مدعومة بدون FFmpegKit‏"; "Inserts a button on disappearing media overlays" = "‏يُضيف زراً على طبقة الوسائط المختفية‏"; "Inserts a speaker button to mute/unmute disappearing media" = "‏يُضيف زر مكبر صوت لكتم/إلغاء كتم الوسائط المختفية‏"; "Inserts an eye button to mark the current disappearing media as viewed" = "‏يُضيف زر عين لتعليم الوسائط المختفية الحالية كمُشاهدة‏"; +"Link copied" = "تم نسخ الرابط"; "Mark as viewed" = "‏تعليم كمُشاهدة‏"; "Mark messages as seen" = "‏تحديد الرسائل كمقروءة‏"; "Mark seen" = "‏تحديد كمقروءة‏"; -"Marked as seen" = "‏تم التحديد كمقروءة‏"; "Marked as viewed" = "‏تم التحديد كمقروءة‏"; "Marked messages as seen" = "‏تم تحديد الرسائل كمقروءة‏"; "Mentions" = "‏الإشارات‏"; +"Message from %@ was unsent" = "‏تم إلغاء إرسال رسالة من %@‏"; "Message sender not found" = "‏لم يتم العثور على مُرسل الرسالة‏"; "Messages settings" = "‏إعدادات الرسائل‏"; -"Audio URL not available" = "‏رابط الصوت غير متاح‏"; "Mute story audio" = "‏كتم صوت القصة‏"; -"No audio URL found. Try again after refreshing the chat." = "‏لم يتم العثور على رابط للصوت. حاول مجددًا بعد تحديث الدردشة.‏"; +"no audio track could be read" = "‏تعذرت قراءة أي مقطع صوتي‏"; +"No audio URL found. Try again after refreshing the chat." = "‏لم يتم العثور على رابط للصوت. حاول مجددًا بعد تحديث المحادثة.‏"; "No mentions in this story" = "‏لا توجد إشارات في هذه القصة‏"; "No thread key" = "‏لا يوجد مفتاح للمحادثة‏"; +"No video selected" = "لم يتم تحديد فيديو"; "No voice send method found" = "‏لم يتم العثور على طريقة لإرسال الصوت‏"; -"Note not found" = "‏لم يتم العثور على الملاحظة‏"; +"Note has no downloadable content" = "لا تحتوي الملاحظة على محتوى قابل للتنزيل"; "Note text copied" = "‏تم نسخ نص الملاحظة‏"; "Open GitHub" = "‏فتح غيت هاب (GitHub)‏"; +"Pick audio or video" = "اختر صوتًا أو فيديو"; "Read receipts disabled" = "‏تم تعطيل مؤشرات القراءة‏"; "Read receipts enabled" = "‏تم تفعيل مؤشرات القراءة‏"; -"Read receipts will be blocked for this chat." = "‏سيتم حظر مؤشرات القراءة لهذه الدردشة.‏"; -"Read receipts will no longer be blocked for this chat." = "‏لن يتم حظر مؤشرات القراءة لهذه الدردشة بعد الآن.‏"; +"Read receipts will be blocked for this chat." = "‏سيتم حظر مؤشرات القراءة لهذه المحادثة.‏"; +"Read receipts will no longer be blocked for this chat." = "‏لن يتم حظر مؤشرات القراءة لهذه المحادثة بعد الآن.‏"; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "‏تحديث الرسائل سيمسح %lu رسالة محفوظة. لا يمكن التراجع.‏"; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "‏تحديث الرسائل سيمسح %lu رسائل محفوظة. لا يمكن التراجع.‏"; "Remove" = "‏إزالة‏"; "Remove from block list" = "‏إزالة من قائمة الحظر‏"; -"Remove from block list?" = "‏إزالة من قائمة الحظر؟‏"; "Remove from exclude list" = "‏إزالة من قائمة الاستبعاد‏"; "Removed" = "‏تمت الإزالة‏"; "Removed from list" = "‏تمت الإزالة من القائمة‏"; @@ -796,15 +1267,16 @@ "Send anyway" = "‏إرسال على أي حال‏"; "Send Audio" = "‏إرسال صوت‏"; "Send failed: %@" = "‏فشل الإرسال: %@‏"; +"Send File" = "إرسال ملف"; "Send service not found" = "‏لم يتم العثور على خدمة الإرسال‏"; "Show audio toggle" = "‏إظهار زر الصوت‏"; "Show mark-as-viewed button" = "‏إظهار زر علامة كمُشاهدة‏"; "Story read receipts disabled" = "‏تم تعطيل مؤشرات قراءة القصص‏"; "Story read receipts enabled" = "‏تم تفعيل مؤشرات قراءة القصص‏"; -"This chat will resume normal read-receipt behavior." = "‏ستستأنف هذه الدردشة السلوك الطبيعي لمؤشر القراءة.‏"; +"This chat will resume normal read-receipt behavior." = "‏ستستأنف هذه المحادثة السلوك الطبيعي لمؤشر القراءة.‏"; +"This file" = "‏هذا الملف‏"; "Total: %@" = "‏الإجمالي: %@‏"; -"Un-exclude chat" = "‏إلغاء استبعاد الدردشة‏"; -"Un-exclude chat?" = "‏إلغاء استبعاد الدردشة؟‏"; +"Un-exclude chat" = "‏إلغاء استبعاد المحادثة‏"; "Un-exclude story seen" = "‏إلغاء استبعاد مشاهدة القصة‏"; "Un-excluded" = "‏تم إلغاء الاستبعاد‏"; "Unblocked" = "‏تم إلغاء الحظر‏"; @@ -817,7 +1289,58 @@ "Visual messages will expire" = "‏ستنتهي صلاحية الرسائل المرئية‏"; "Visual messages: expiring" = "‏الرسائل المرئية: تنتهي صلاحيتها‏"; "Visual messages: unlimited replay" = "‏الرسائل المرئية: إعادة غير محدودة‏"; -"Will sync when leaving stories" = "‏ستتم المزامنة عند مغادرة القصص‏"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "إضافة خلفية"; +"Add Chat Background" = "إضافة خلفية محادثة"; +"Adds your own image backgrounds to Instagram chats" = "يضيف صورك الخاصة كخلفيات لمحادثات Instagram"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "بعد التفعيل، افتح أي محادثة، واضغط على زر السمة، ثم اضغط على أيقونة الصورة في أعلى اليمين."; +"Blur" = "تمويه"; +"Browse chats" = "تصفّح المحادثات"; +"Browse chats (%ld)" = "تصفّح المحادثات (%ld)"; +"Change Background" = "تغيير الخلفية"; +"Change default" = "تغيير الافتراضي"; +"Chat Backgrounds" = "خلفيات المحادثة"; +"Choose an image used when no chat override exists" = "اختر صورة تُستخدم عند عدم وجود تخصيص للمحادثة"; +"Choose Image" = "اختيار صورة"; +"Clear default" = "مسح الافتراضي"; +"Couldn't import image" = "تعذّر استيراد الصورة"; +"Custom Chat Background" = "خلفية محادثة مخصصة"; +"Default background" = "الخلفية الافتراضية"; +"Delete library images, default background, and chat overrides" = "حذف صور المكتبة والخلفية الافتراضية وتخصيصات المحادثات"; +"Dim in dark mode" = "التعتيم في الوضع الداكن"; +"Edit image settings" = "تعديل إعدادات الصورة"; +"Enable custom backgrounds" = "تفعيل الخلفيات المخصصة"; +"Enter a username, chat name, or thread ID." = "أدخل اسم مستخدم أو اسم محادثة أو معرّف المحادثة."; +"Group" = "مجموعة"; +"Image Settings" = "إعدادات الصورة"; +"Library" = "المكتبة"; +"Library, default, and per-chat overrides will be deleted." = "سيتم حذف المكتبة والافتراضي وتخصيصات كل محادثة."; +"No Custom" = "بلا تخصيص"; +"Opacity" = "العتامة"; +"Photo Library" = "مكتبة الصور"; +"Pick default" = "اختر الافتراضي"; +"Pinch + drag to position" = "اضغط بإصبعين واسحب لتحديد الموضع"; +"Quit and reopen Instagram for the change to take effect." = "أغلق Instagram وأعد فتحه ليصبح التغيير ساري المفعول."; +"Recently set" = "تم التعيين مؤخرًا"; +"Remove the global fallback background" = "إزالة الخلفية الاحتياطية العامة"; +"Replace the default background image" = "استبدال صورة الخلفية الافتراضية"; +"Reset all backgrounds" = "إعادة تعيين كل الخلفيات"; +"Reset all backgrounds?" = "إعادة تعيين كل الخلفيات؟"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "تعيد \"إعادة التعيين\" ضبط العتامة إلى 1.0، والتمويه إلى 0، والتعتيم إلى 0."; +"RyukGram Gallery" = "معرض RyukGram"; +"Search username, name, or thread ID" = "ابحث باسم المستخدم أو الاسم أو معرّف المحادثة"; +"Set as default" = "تعيين كافتراضي"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "اضغط على علامة الزائد للإضافة. اضغط على خلفية لتعديلها أو تعيينها كافتراضية أو حذفها."; +"This Chat Background" = "خلفية هذه المحادثة"; +"Thread ID" = "معرّف المحادثة"; +"Used only when a chat does not have its own custom background." = "يُستخدم فقط عندما لا يكون للمحادثة خلفية مخصصة خاصة بها."; +"View and manage chats with custom backgrounds" = "عرض وإدارة المحادثات ذات الخلفيات المخصصة"; ////////////////////////////////////////////////////////////////////////////// // GENERAL FEATURES // @@ -827,214 +1350,232 @@ "Add location" = "‏إضافة موقع‏"; "Add preset" = "‏إضافة إعداد مسبق‏"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "‏يؤثر على كل ما سبق. عند الإيقاف، تُطبق السمة وتجاوزات الأسطح الخاصة بـ RyukGram فقط عندما يكون iOS في الوضع الداكن — تاركةً الوضع الفاتح دون تغيير.‏"; +"Apply & restart" = "‏تطبيق وإعادة التشغيل‏"; +"Background" = "‏الخلفية‏"; +"Behavior" = "‏السلوك‏"; "Change location" = "‏تغيير الموقع‏"; -"Click the Apply button after this to see the emoji" = "‏انقر على زر تطبيق بعد هذا لرؤية الإيموجي‏"; "Clipboard is not an Instagram URL" = "الحافظة لا تحتوي على رابط إنستغرام"; "Comments hidden" = "‏تم إخفاء التعليقات‏"; "Comments shown" = "‏تم إظهار التعليقات‏"; "Copied text to clipboard" = "‏تم نسخ النص إلى الحافظة‏"; "Copy" = "‏نسخ‏"; -"Copy all" = "‏نسخ الكل‏"; "Copy bio" = "‏نسخ البايو‏"; -"Copy from profile" = "‏نسخ من الملف الشخصي‏"; "Copy name" = "‏نسخ الاسم‏"; "Could not find cover image" = "‏تعذر العثور على صورة الغلاف‏"; "Current: %@" = "‏الحالي: %@‏"; +"Dark" = "‏داكن‏"; "Disable" = "‏تعطيل‏"; "Download GIF" = "‏تنزيل صورة جيف (GIF)‏"; "Dropped pin" = "‏دبوس الموقع‏"; +"Emoji" = "‏إيموجي‏"; "Enable" = "‏تفعيل‏"; "Enable Location Services for Instagram in Settings to use your current location." = "‏فعّل خدمات الموقع لإنستغرام من الإعدادات لاستخدام موقعك الحالي.‏"; -"Enter Emoji Text" = "‏أدخل نص الإيموجي‏"; +"Enter emoji" = "‏أدخل إيموجي‏"; "Fake location" = "‏موقع وهمي‏"; +"Force theme" = "‏فرض السمة‏"; +"Keyboard theme" = "‏سمة لوحة المفاتيح‏"; +"Light" = "‏فاتح‏"; "Location access denied" = "‏تم رفض الوصول إلى الموقع‏"; "Location Services off" = "‏خدمات الموقع متوقفة‏"; "Name" = "‏الاسم‏"; "Nothing to copy" = "‏لا يوجد شيء لنسخه‏"; +"Off, Light, Dark, or OLED" = "‏إيقاف، فاتح، داكن، أو OLED‏"; +"OLED" = "OLED"; +"OLED chat theme" = "‏سمة OLED للمحادثات‏"; "Open Settings" = "‏فتح الإعدادات‏"; +"Optional per-surface overrides. Each one is independent of the theme above." = "‏تجاوزات اختيارية لكل سطح. كل واحدة مستقلة عن السمة أعلاه.‏"; +"Override iOS appearance regardless of system mode" = "‏تجاوز مظهر iOS بغضّ النظر عن وضع النظام‏"; +"Override the keyboard appearance when typing" = "‏تجاوز مظهر لوحة المفاتيح عند الكتابة‏"; "Pick location" = "‏اختر الموقع‏"; +"Pure black DM thread + incoming bubbles" = "‏خلفية سوداء نقية للمحادثات + الفقاعات الواردة‏"; +"Reset theme" = "‏إعادة تعيين السمة‏"; +"Restart Instagram to apply your theme changes" = "‏أعد تشغيل انستغرام لتطبيق تغييرات السمة‏"; "Save" = "‏حفظ‏"; "Save preset" = "‏حفظ الإعداد المسبق‏"; "Saved locations" = "‏المواقع المحفوظة‏"; "Select color" = "‏اختيار اللون‏"; "Set location" = "‏تعيين الموقع‏"; -"Settings…" = "‏الإعدادات…‏"; -"Turn Location Services on in Settings → Privacy to use your current location." = "‏فعّل خدمات الموقع من الإعدادات ← الخصوصية لاستخدام موقعك الحالي.‏"; -"Type emoji..." = "‏اكتب إيموجي...‏"; - +"The theme RyukGram applies to Instagram." = "‏السمة التي يطبقها RyukGram على Instagram.‏"; "Theme" = "‏السمة‏"; -"Appearance" = "‏المظهر‏"; -"Keyboard" = "‏لوحة المفاتيح‏"; -"Force dark mode" = "‏فرض الوضع الداكن‏"; -"Keep Instagram in dark appearance regardless of iOS system setting" = "‏إبقاء انستغرام في الوضع الداكن بغض النظر عن إعدادات النظام‏"; -"Full OLED" = "‏OLED كامل‏"; -"Replace Instagram's dark grays with pure black across the entire app" = "‏استبدال الرمادي الداكن في انستغرام بالأسود النقي في جميع أنحاء التطبيق‏"; -"OLED chat theme" = "‏سمة OLED للمحادثات‏"; -"Pure black DM thread background and incoming message bubbles" = "‏خلفية سوداء نقية لمحادثات الرسائل وفقاعات الرسائل الواردة‏"; -"Keyboard theme" = "‏سمة لوحة المفاتيح‏"; -"Override the keyboard appearance when typing inside Instagram" = "‏تجاوز مظهر لوحة المفاتيح عند الكتابة داخل انستغرام‏"; -"Dark uses the system dark keyboard. OLED forces the keyboard backdrop to pure black." = "‏الداكن يستخدم لوحة المفاتيح الداكنة للنظام. OLED يفرض خلفية لوحة المفاتيح إلى الأسود النقي.‏"; -"Dark" = "‏داكن‏"; -"OLED" = "OLED"; -"Apply & restart" = "‏تطبيق وإعادة التشغيل‏"; -"Restart Instagram to apply your theme changes" = "‏أعد تشغيل انستغرام لتطبيق تغييرات السمة‏"; -"Theme changes only take effect after an app restart. Tap Apply below when you're done choosing." = "‏لا تُطبَّق تغييرات السمة إلا بعد إعادة تشغيل التطبيق. اضغط تطبيق بالأسفل عند الانتهاء من الاختيار.‏"; +"Turn every theme option off and restart" = "‏إيقاف كل خيارات السمة وإعادة التشغيل‏"; +"Turn Location Services on in Settings → Privacy to use your current location." = "‏فعّل خدمات الموقع من الإعدادات ← الخصوصية لاستخدام موقعك الحالي.‏"; +"Type an emoji to use as the note bubble icon." = "‏اكتب إيموجي لاستخدامه كأيقونة لفقاعة الملاحظة.‏"; +"View profile picture" = "عرض صورة الملف الشخصي"; ////////////////////////////////////////////////////////////////////////////// // PROFILE ANALYZER // -// Settings → General → Profile Analyzer // +// Settings → Profile Analyzer // ////////////////////////////////////////////////////////////////////////////// +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "‏%@ %lu حسابًا؟ ستتم معالجة أول %ld لتجنّب حدود المعدل.‏"; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "‏%@ %lu حسابًا؟ ستتم المعالجة بالتتابع مع وقفة قصيرة بين كل طلب.‏"; +"%@ followers · %@ following" = "%@ متابِع · %@ متابَع"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "‏منذ %d ي‏"; +"%dh ago" = "‏منذ %d س‏"; +"%dm ago" = "‏منذ %d د‏"; +"%lu accounts followed" = "‏تمت متابعة %lu حسابًا‏"; +"%lu accounts unfollowed" = "‏تم إلغاء متابعة %lu حسابًا‏"; "%lu followers · %lu following" = "‏%lu متابع · %lu يتابع‏"; "%lu of %lu" = "‏%lu من %lu‏"; +"%lu saved · comparing against %@" = "تم حفظ %lu · المقارنة مع %@"; +"(empty)" = "‏(فارغ)‏"; +"(no analyzer data)" = "‏(لا توجد بيانات محلل)‏"; +"a saved snapshot" = "لقطة محفوظة"; +"About Profile Analyzer" = "‏عن محلل الملف الشخصي‏"; +"All preferences (%lu)" = "‏جميع التفضيلات (%lu)‏"; "Analysis complete" = "‏اكتمل التحليل‏"; "Analysis failed" = "‏فشل التحليل‏"; "Another analysis is already running" = "‏هناك تحليل آخر قيد التشغيل بالفعل‏"; "Available after your next scan" = "‏متاحة بعد التحليل التالي‏"; -"Cancelled" = "‏تم الإلغاء‏"; +"Batch follow" = "‏متابعة جماعية‏"; +"Batch follow finished" = "‏اكتملت المتابعة الجماعية‏"; +"Batch unfollow" = "‏إلغاء متابعة جماعي‏"; +"Batch unfollow finished" = "‏اكتمل إلغاء المتابعة الجماعي‏"; +"Categories" = "‏الفئات‏"; +"Clear visited profiles" = "‏مسح الحسابات المُشاهَدة‏"; +"Compare next scan against" = "قارن الفحص التالي مع"; +"Comparing against %@" = "المقارنة مع %@"; +"Continue" = "‏متابعة‏"; "Couldn't fetch profile information" = "‏تعذّر جلب معلومات الملف الشخصي‏"; +"Delete %lu snapshots? This can't be undone." = "حذف %lu لقطة؟ لا يمكن التراجع عن هذا."; +"Delete (%lu)" = "حذف (%lu)"; +"Delete snapshots" = "حذف اللقطات"; +"Delete this snapshot? This can't be undone." = "حذف هذه اللقطة؟ لا يمكن التراجع عن هذا."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "يحفظ كل فحص نسخة كاملة من متابِعيك ومتابَعيك لتتمكن من المقارنة معها لاحقًا. يبقى كل شيء على هذا الجهاز."; +"Export" = "‏تصدير‏"; "Fetching followers (%lu/%ld)…" = "‏جاري جلب المتابعين (%lu/%ld)…‏"; "Fetching following (%lu/%ld)…" = "‏جاري جلب المتابَعين (%lu/%ld)…‏"; "Fetching profile info…" = "‏جاري جلب معلومات الملف الشخصي…‏"; -"Categories" = "‏الفئات‏"; +"File is not a valid RyukGram backup." = "‏الملف ليس تصديرًا صالحًا من RyukGram.‏"; +"Filter" = "‏تصفية‏"; +"Filter · %lu" = "تصفية · %lu"; "First scan: %@" = "‏أول تحليل: %@‏"; +"First scan: we collect your followers and following lists and save them locally." = "‏أول تحليل: نجمع قوائم المتابعين والمتابَعين ونحفظها محليًا.‏"; +"Follow %lu" = "‏متابعة %lu‏"; "Follower count exceeds %ld — analysis disabled to avoid rate limits." = "‏عدد المتابعين يتجاوز %ld — التحليل معطّل لتجنب حدود المعدل.‏"; +"Followers" = "‏المتابعون‏"; +"Following… %lu / %lu" = "‏جارٍ المتابعة… %lu / %lu‏"; "Gained since last scan" = "‏اكتسبتهم منذ آخر تحليل‏"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "‏تنبيه: هذه الميزة تجريبية وتستخدم واجهة Instagram الخاصة. تشغيلها بشكل متتالٍ أو بعد نشاط متابعة/إلغاء متابعة كثيف قد يسبب حدًا مؤقتًا. استخدمها باعتدال وعلى مسؤوليتك.‏"; +"Import complete" = "‏اكتمل الاستيراد‏"; +"Include" = "‏تضمين‏"; +"Keep newest" = "الاحتفاظ بالأحدث"; +"Keep newest snapshots" = "الاحتفاظ بأحدث اللقطات"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "‏الحسابات الكبيرة محظورة: يتم تعطيل التحليل فوق 13,000 متابع لتجنّب قيام Instagram بتحديد معدل التطبيق بأكمله.‏"; "Last scan: %@" = "‏آخر تحليل: %@‏"; +"Logs every profile you open. Stays on-device." = "‏يسجّل كل حساب تفتحه. يبقى على الجهاز فقط.‏"; "Lost followers" = "‏متابعون مفقودون‏"; +"Most visited" = "‏الأكثر مشاهدة‏"; "Mutual followers" = "‏متابعون متبادلون‏"; "Name: %@ → %@" = "‏الاسم: %@ ← %@‏"; "New followers" = "‏متابعون جدد‏"; -"No results" = "‏لا توجد نتائج‏"; "No active Instagram session found" = "‏لا توجد جلسة Instagram نشطة‏"; +"No results" = "‏لا توجد نتائج‏"; "No scan yet" = "‏لا يوجد تحليل بعد‏"; "Not following you back" = "‏لا يتابعونك بالمقابل‏"; -"OK" = "‏حسنًا‏"; +"Not verified only" = "‏غير الموثقة فقط‏"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "‏لا يتم رفع أي شيء — كل البيانات تبقى على هذا الجهاز ويمكن مسحها من أيقونة سلة المهملات.‏"; +"Nothing was applied." = "‏لم يتم تطبيق شيء.‏"; +"OK" = "‏حسناً‏"; +"Older snapshots beyond the limit are removed automatically" = "تُزال اللقطات الأقدم التي تتجاوز الحد تلقائيًا"; +"Older snapshots beyond this limit are deleted on the next scan." = "تُحذف اللقطات الأقدم التي تتجاوز هذا الحد في الفحص التالي."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "اختر ما تريد إزالته. \"اللقطات\" تمسح فروقات الفحص وكل لقطة مسجلة؛ \"الملفات الشخصية المزارة\" تمسح سجل الزيارات."; +"Posts" = "‏المنشورات‏"; +"Preferences" = "‏التفضيلات‏"; +"Previous scan" = "الفحص السابق"; "Private account" = "‏حساب خاص‏"; +"Private only" = "‏الخاصة فقط‏"; "Profile Analyzer" = "‏محلل الملف الشخصي‏"; +"Profile Analyzer data" = "‏بيانات محلل الملف الشخصي‏"; "Profile picture changed" = "‏تم تغيير صورة الملف الشخصي‏"; "Profile updates" = "‏تحديثات الملف الشخصي‏"; -"Removes cached snapshots for this account. You'll lose since-last-scan diffs." = "‏يزيل اللقطات المحفوظة لهذا الحساب. ستفقد الفروق منذ آخر تحليل.‏"; +"Profiles you've opened recently" = "‏الحسابات التي فتحتها مؤخرًا‏"; +"Raw" = "‏خام‏"; +"Raw JSON" = "‏JSON الخام‏"; +"Record snapshots" = "تسجيل اللقطات"; +"Recording" = "التسجيل"; "Request failed" = "‏فشل الطلب‏"; -"Reset analyzer data?" = "‏إعادة تعيين بيانات المحلل؟‏"; +"Reset analyzer data" = "‏إعادة تعيين بيانات المحلل‏"; +"Reset complete" = "‏اكتملت إعادة التعيين‏"; +"Reset everything" = "‏إعادة تعيين كل شيء‏"; +"Reset selected data?" = "‏إعادة تعيين البيانات المحددة؟‏"; +"Reset snapshots" = "‏إعادة تعيين اللقطات‏"; +"Rolling — always your last run" = "متجدد — دائمًا آخر فحص لك"; "Run analysis" = "‏تشغيل التحليل‏"; "Run your first analysis" = "‏شغّل أول تحليل لك‏"; -"Search username or name" = "‏ابحث باسم المستخدم أو الاسم‏"; +"Save a dated entry on every scan" = "احفظ إدخالاً مؤرخًا في كل فحص"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "‏من التحليل الثاني فصاعدًا: يقارن كل تحليل بما قبله، لتظهر المتابعين الجدد والمفقودين وإجراءاتك من متابعة/إلغاء متابعة وتحديثات الملف الشخصي.‏"; +"Settings" = "‏الإعدادات‏"; "Since last scan" = "‏منذ آخر تحليل‏"; +"Snapshot" = "لقطة"; +"Snapshots" = "اللقطات"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "تتيح لك اللقطات أرشفة كل فحص واختيار اللقطة التي تقارن معها الفحوصات الجديدة. يسجّل \"تتبّع الزيارات\" كل ملف شخصي تفتحه لتتمكن من مراجعته هنا."; +"Sort" = "‏ترتيب‏"; "Starting…" = "‏يبدأ…‏"; "They follow you, you don't follow back" = "‏يتابعونك، لكنك لا تتابعهم‏"; +"This can't be undone." = "‏لا يمكن التراجع عن هذا الإجراء.‏"; +"Ticked data will be cleared. Tap a row to see what's stored." = "‏سيتم مسح البيانات المحددة. انقر على أي صف لرؤية ما هو مخزّن.‏"; +"Today" = "‏اليوم‏"; "Too many followers" = "‏عدد متابعين كبير جدًا‏"; "Too many followers to analyze" = "‏عدد المتابعين أكبر من أن يُحلَّل‏"; +"Track visited profiles" = "‏تتبّع الحسابات المُشاهَدة‏"; +"Tracking" = "‏التتبّع‏"; +"Tracking off — enable below to log visits" = "‏التتبّع متوقّف — فعّله أدناه لتسجيل الزيارات‏"; "Unfollow" = "‏إلغاء المتابعة‏"; +"Unfollow %lu" = "‏إلغاء متابعة %lu‏"; "Unfollow @%@?" = "‏إلغاء متابعة @%@؟‏"; "Unfollowed you since last scan" = "‏ألغوا متابعتك منذ آخر تحليل‏"; +"Unfollowing… %lu / %lu" = "‏جارٍ إلغاء المتابعة… %lu / %lu‏"; +"Unlimited" = "غير محدود"; +"Username A → Z" = "‏اسم المستخدم أ ← ي‏"; +"Username Z → A" = "‏اسم المستخدم ي ← أ‏"; "Username, name or picture changes" = "‏تغييرات اسم المستخدم أو الاسم أو الصورة‏"; "Username: @%@ → @%@" = "‏اسم المستخدم: @%@ ← @%@‏"; +"Using %@ across %lu snapshots." = "استخدام %@ عبر %lu لقطة."; +"Verified only" = "‏الموثقة فقط‏"; +"Visited" = "‏المُشاهَد‏"; +"Visited profiles" = "‏الحسابات المُشاهَدة‏"; "We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "‏لا نشغّل التحليل عندما يتجاوز عدد المتابعين %ld لتجنب حدود Instagram.‏"; "You both follow each other" = "‏تتابعان بعضكما البعض‏"; "You don't follow back" = "‏لا تتابعهم بالمقابل‏"; "You follow them, they don't follow back" = "‏تتابعهم، لكنهم لا يتابعونك‏"; "You started following" = "‏بدأت تتابعهم‏"; "You unfollowed" = "‏ألغيت متابعتهم‏"; - -"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "‏%@ %lu حسابًا؟ ستتم معالجة أول %ld لتجنّب حدود المعدل.‏"; -"%@ %lu accounts? This runs sequentially with a short pause between each." = "‏%@ %lu حسابًا؟ ستتم المعالجة بالتتابع مع وقفة قصيرة بين كل طلب.‏"; -"%lu account(s) · %lu snapshot(s) · tap to inspect" = "‏%lu حساب · %lu لقطة · انقر للفحص‏"; -"%lu accounts followed" = "‏تمت متابعة %lu حسابًا‏"; -"%lu accounts unfollowed" = "‏تم إلغاء متابعة %lu حسابًا‏"; -"%lu entries across %lu lists · tap to inspect" = "‏%lu إدخال عبر %lu قائمة · انقر للفحص‏"; -"%lu preferences · tap to inspect" = "‏%lu تفضيلات · انقر للفحص‏"; -"(empty)" = "‏(فارغ)‏"; -"(no analyzer data)" = "‏(لا توجد بيانات محلل)‏"; -"(no lists)" = "‏(لا توجد قوائم)‏"; -"About Profile Analyzer" = "‏عن محلل الملف الشخصي‏"; -"All preferences (%lu)" = "‏جميع التفضيلات (%lu)‏"; -"Apply imported data?" = "‏تطبيق البيانات المستوردة؟‏"; -"Batch follow" = "‏متابعة جماعية‏"; -"Batch follow finished" = "‏اكتملت المتابعة الجماعية‏"; -"Batch unfollow" = "‏إلغاء متابعة جماعي‏"; -"Batch unfollow finished" = "‏اكتمل إلغاء المتابعة الجماعي‏"; -"Continue" = "‏متابعة‏"; -"Current snapshot" = "‏اللقطة الحالية‏"; -"Embed domains" = "‏نطاقات التضمين‏"; -"Excluded lists" = "‏القوائم المستبعدة‏"; -"Excluded story users" = "‏مستخدمو القصص المستبعدون‏"; -"Existing values for the selected scope will be replaced. The app may need to restart for some changes to take effect." = "‏سيتم استبدال القيم الحالية للنطاق المحدد. قد يحتاج التطبيق إلى إعادة التشغيل ليسري مفعول بعض التغييرات.‏"; -"Export" = "‏تصدير‏"; -"File has no importable sections." = "‏لا يحتوي الملف على أقسام قابلة للاستيراد.‏"; -"File is not a valid RyukGram export." = "‏الملف ليس تصديرًا صالحًا من RyukGram.‏"; -"Filter" = "‏تصفية‏"; -"First scan: we collect your followers and following lists and save them locally." = "‏أول تحليل: نجمع قوائم المتابعين والمتابَعين ونحفظها محليًا.‏"; -"Follow %lu" = "‏متابعة %lu‏"; -"Followers" = "‏المتابعون‏"; -"Following… %lu / %lu" = "‏جارٍ المتابعة… %lu / %lu‏"; -"Full name" = "‏الاسم الكامل‏"; -"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "‏تنبيه: هذه الميزة تجريبية وتستخدم واجهة Instagram الخاصة. تشغيلها بشكل متتالٍ أو بعد نشاط متابعة/إلغاء متابعة كثيف قد يسبب حدًا مؤقتًا. استخدمها باعتدال وعلى مسؤوليتك.‏"; -"Import complete" = "‏اكتمل الاستيراد‏"; -"Include" = "‏تضمين‏"; -"Included story users" = "‏مستخدمو القصص المدرجون‏"; -"Inspect the full payload" = "‏افحص البيانات الكاملة‏"; -"Keep scan history" = "‏الاحتفاظ بسجل التحليلات‏"; -"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "‏الحسابات الكبيرة محظورة: يتم تعطيل التحليل فوق 13,000 متابع لتجنّب قيام Instagram بتحديد معدل التطبيق بأكمله.‏"; -"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "‏لا يتم رفع أي شيء — كل البيانات تبقى على هذا الجهاز ويمكن مسحها من أيقونة سلة المهملات.‏"; -"Not verified only" = "‏غير الموثقة فقط‏"; -"Nothing was applied." = "‏لم يتم تطبيق شيء.‏"; -"Posts" = "‏المنشورات‏"; -"Preferences" = "‏التفضيلات‏"; -"Previous snapshot" = "‏اللقطة السابقة‏"; -"Private only" = "‏الخاصة فقط‏"; -"Profile Analyzer data" = "‏بيانات محلل الملف الشخصي‏"; -"Raw" = "‏خام‏"; -"Raw JSON" = "‏JSON الخام‏"; -"Reset analyzer data" = "‏إعادة تعيين بيانات المحلل‏"; -"Reset complete" = "‏اكتملت إعادة التعيين‏"; -"Reset selected data?" = "‏إعادة تعيين البيانات المحددة؟‏"; -"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "‏من التحليل الثاني فصاعدًا: يقارن كل تحليل بما قبله، لتظهر المتابعين الجدد والمفقودين وإجراءاتك من متابعة/إلغاء متابعة وتحديثات الملف الشخصي.‏"; -"Select all" = "‏تحديد الكل‏"; -"Selected data will be cleared. Tap any row to see what's stored." = "‏سيتم مسح البيانات المحددة. انقر على أي صف لرؤية ما هو مخزّن.‏"; -"Settings" = "‏الإعدادات‏"; -"Sort" = "‏ترتيب‏"; -"This can't be undone." = "‏لا يمكن التراجع عن هذا الإجراء.‏"; -"Tick what to apply. Tap any row to inspect. Sections not in the file are disabled." = "‏حدّد ما تريد تطبيقه. انقر على أي صف للفحص. الأقسام غير الموجودة في الملف معطّلة.‏"; -"Tick what to include. Tap any row to inspect its contents." = "‏حدّد ما تريد تضمينه. انقر على أي صف لفحص محتوياته.‏"; -"Unfollow %lu" = "‏إلغاء متابعة %lu‏"; -"Unfollowing… %lu / %lu" = "‏جارٍ إلغاء المتابعة… %lu / %lu‏"; -"Username A → Z" = "‏اسم المستخدم أ ← ي‏"; -"Username Z → A" = "‏اسم المستخدم ي ← أ‏"; -"Verified only" = "‏الموثقة فقط‏"; -"When on, scans compare against your first scan so new/lost followers and profile updates don't disappear between scans." = "‏عند التفعيل، تُقارن التحليلات بتحليلك الأول فلا يختفي المتابعون الجدد/المفقودون وتحديثات الملفات الشخصية بين التحليلات.‏"; +"your previous scan" = "فحصك السابق"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "يقيس \"الفحص السابق\" دائمًا مقارنةً بآخر فحص لك. اختر لقطة محفوظة للمقارنة مع نقطة زمنية ثابتة بدلاً من ذلك."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ يتزايد الحجم — قلّل الحد أو احذف اللقطات الأقدم لتحرير مساحة."; ////////////////////////////////////////////////////////////////////////////// // SETTINGS VIEWS & DIALOGS // // Excluded-lists managers, backup/restore flows, in-picker labels. // ////////////////////////////////////////////////////////////////////////////// -"Add chat" = "‏إضافة دردشة‏"; +"Absolute format" = "تنسيق مطلق"; +"Add chat" = "‏إضافة محادثة‏"; "Add custom domain" = "‏إضافة نطاق مخصص‏"; -"Add preset…" = "‏إضافة إعداد مسبق…‏"; "Add to list?" = "‏إضافة للقائمة؟‏"; "Add user" = "‏إضافة مستخدم‏"; "Apply" = "‏تطبيق‏"; "Apply to" = "‏تطبيق على‏"; -"Chats" = "‏الدردشات‏"; +"Chats" = "‏المحادثات‏"; +"Colored" = "‏ملوّن‏"; "Could not read file." = "‏تعذرت قراءة الملف.‏"; "Could not resolve user ID" = "‏تعذر تحليل معرف المستخدم‏"; -"Could not write temporary file." = "‏تعذرت كتابة الملف المؤقت.‏"; "Current location" = "‏الموقع الحالي‏"; "Custom" = "‏مخصص‏"; -"Date Format" = "‏تنسيق التاريخ‏"; "Delete" = "‏حذف‏"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "كل واجهة في IG تستخدم منسّق NSDate مختلف. فعّل الواجهات التي تريد تطبيق هذا التنسيق عليها."; "Enable fake location" = "‏تفعيل الموقع الوهمي‏"; -"Enter username" = "‏أدخل اسم المستخدم‏"; -"Enter username of the DM thread" = "‏أدخل اسم المستخدم لمحادثة الرسائل الخاصة‏"; -"Excluded chats" = "‏الدردشات المستبعدة‏"; +"Excluded chats" = "‏المحادثات المستبعدة‏"; "Excluded users" = "‏المستخدمون المستبعدون‏"; "Follow default" = "‏اتباع الافتراضي‏"; "Force OFF (allow unsends)" = "‏إيقاف إجباري (السماح بإلغاء الإرسال)‏"; "Force ON (preserve unsends)" = "‏تشغيل إجباري (الاحتفاظ بالرسائل الملغاة)‏"; -"Format" = "‏التنسيق‏"; -"Import failed" = "‏فشل الاستيراد‏"; -"Included chats" = "‏الدردشات المشمولة‏"; +"Include seconds when the format already shows time." = "تضمين الثواني عندما يعرض التنسيق الوقت."; +"Included chats" = "‏المحادثات المشمولة‏"; "Included users" = "‏المستخدمون المشمولون‏"; "KD: default" = "‏الاحتفاظ: الافتراضي‏"; "KD: ON" = "‏الاحتفاظ: تشغيل‏"; @@ -1042,41 +1583,38 @@ "Keep-deleted override" = "‏تجاوز الاحتفاظ بالمحذوف‏"; "Name (A–Z)" = "‏الاسم (أ–ي)‏"; "No DM thread found with @%@" = "‏لم يتم العثور على محادثة رسائل مع @%@‏"; -"Off" = "‏إيقاف‏"; "Presets" = "‏الإعدادات المسبقة‏"; "Recently added" = "‏المُضاف مؤخراً‏"; +"Relative time" = "الوقت النسبي"; +"Relative within" = "نسبي خلال"; "Remove from list" = "‏إزالة من القائمة‏"; -"Remove Selected" = "‏إزالة المحدد‏"; "Reset" = "‏إعادة تعيين‏"; -"Saved presets are reusable. Tap a preset to make it the active location." = "‏الإعدادات المسبقة المحفوظة قابلة لإعادة الاستخدام. انقر على الإعداد لجعله الموقع النشط.‏"; "Search" = "‏بحث‏"; "Search address or place" = "‏بحث عن عنوان أو مكان‏"; "Search by name or username" = "‏بحث بالاسم أو اسم المستخدم‏"; "Search by username or name" = "‏البحث باسم المستخدم أو الاسم‏"; -"Select" = "‏تحديد‏"; "Select location on map" = "‏تحديد الموقع على الخريطة‏"; "Set current location" = "‏تعيين الموقع الحالي‏"; "Set keep-deleted override" = "‏تعيين تجاوز الاحتفاظ بالمحذوف‏"; -"Settings exported" = "‏تم تصدير الإعدادات‏"; "Show map button" = "‏إظهار زر الخريطة‏"; +"Show relative time for dates younger than this many days. 0 disables it." = "عرض الوقت النسبي للتواريخ الأحدث من هذا العدد من الأيام. 0 يعطّله."; "Show seconds" = "‏إظهار الثواني‏"; "Sort by" = "‏فرز حسب‏"; -"Story users" = "‏مستخدمي القصص‏"; -"Toggle each NSDate formatter IG uses. Different surfaces (feed, comments, stories, DMs) go through different methods — enable the ones you want the custom format applied to." = "‏بدّل كل أداة تنسيق NSDate يستخدمها إنستغرام. الأقسام المختلفة (اليوميات، التعليقات، القصص، الرسائل الخاصة) لها طرق مختلفة — فعّل ما تريد تطبيق التنسيق المخصص عليه.‏"; +"Thread" = "محادثة"; +"Time" = "الوقت"; "Use this location" = "‏استخدام هذا الموقع‏"; "User '%@' not found" = "‏لم يتم العثور على المستخدم '%@'‏"; "Username (A–Z)" = "‏اسم المستخدم (أ–ي)‏"; -"When on, all CoreLocation requests inside Instagram return the location below. Toggle the map button to show or hide the quick toggle on the Friends Map view." = "‏عند التشغيل، ستعيد كل طلبات الموقع داخل إنستغرام الموقع أدناه. اضغط على زر الخريطة لإظهار أو إخفاء التبديل السريع في خريطة الأصدقاء.‏"; +"Within %ld days" = "خلال %ld أيام"; +"Within 1 day" = "خلال يوم واحد"; ////////////////////////////////////////////////////////////////////////////// // REELS (FEATURES) // // Strings from Reels. // ////////////////////////////////////////////////////////////////////////////// -"Copied!" = "‏تم النسخ!‏"; "No password found" = "‏لم يتم العثور على كلمة مرور‏"; "No text field found" = "‏لم يتم العثور على حقل نص‏"; -"Password" = "‏كلمة المرور‏"; "Refresh Reels?" = "‏تحديث مقاطع ريلز؟‏"; ////////////////////////////////////////////////////////////////////////////// @@ -1084,23 +1622,42 @@ // Strings from Profile. // ////////////////////////////////////////////////////////////////////////////// +"%lu accounts" = "%lu حساب"; +"%lu loaded" = "تم تحميل %lu"; +"%lu loaded · all loaded" = "تم تحميل %lu · تم تحميل الكل"; "Doesn't follow you" = "‏لا يتابعك‏"; +"Everyone is already loaded." = "تم تحميل الجميع بالفعل."; +"Filter & sort" = "تصفية وترتيب"; +"Follows me" = "يتابِعني"; +"Follows me first" = "يتابِعني أولاً"; "Follows you" = "‏يتابعك‏"; +"Hides everyone who doesn't match all picked filters." = "يخفي كل من لا يطابق جميع المرشحات المحددة."; +"Jump to bottom" = "الانتقال إلى الأسفل"; +"Jump to top" = "الانتقال إلى الأعلى"; +"List" = "قائمة"; +"List fully loaded" = "تم تحميل القائمة بالكامل"; +"Load more" = "تحميل المزيد"; +"Loaded more" = "تم تحميل المزيد"; +"Mutuals" = "متابعة متبادلة"; +"Mutuals first" = "المتابعة المتبادلة أولاً"; "Note copied" = "‏تم نسخ الملاحظة‏"; - -////////////////////////////////////////////////////////////////////////////// -// CONFIRM DIALOGS (IN-FEATURE) // -// Strings from Confirm dialogs. // -////////////////////////////////////////////////////////////////////////////// - -"Unfollow?" = "‏إلغاء المتابعة؟‏"; +"People I follow" = "الأشخاص الذين أتابعهم"; +"People I follow first" = "الأشخاص الذين أتابعهم أولاً"; +"Reverse order" = "عكس الترتيب"; +"Show only" = "إظهار فقط"; +"Verified" = "موثّق"; +"Verified first" = "الموثّقون أولاً"; ////////////////////////////////////////////////////////////////////////////// // MISC // // Anything that didn't fit a named section. Usually short labels. // ////////////////////////////////////////////////////////////////////////////// +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "‏(غير محدد)‏"; "720p • progressive • fastest" = "‏720p • تدريجي • الأسرع‏"; +"Add language" = "‏إضافة لغة‏"; +"Album name" = "اسم الألبوم"; "Are you sure?" = "‏هل أنت متأكد؟‏"; "Bundle" = "‏الحزمة‏"; "Copy audio URL" = "‏نسخ رابط الصوت‏"; @@ -1108,21 +1665,41 @@ "Copy video URL" = "‏نسخ رابط الفيديو‏"; "Could not access reel media" = "‏تعذر الوصول إلى وسائط ريلز‏"; "Could not access reel photo" = "‏تعذر الوصول إلى صورة مقطع ريلز‏"; -"Could not extract photo url from post" = "‏تعذر استخراج رابط الصورة من المنشور‏"; -"Could not extract photo url from reel" = "‏تعذر استخراج رابط الصورة من مقطع ريلز‏"; -"Could not extract photo url from story" = "‏تعذر استخراج رابط الصورة من القصة‏"; -"Could not extract video url from post" = "‏تعذر استخراج رابط الفيديو من المنشور‏"; -"Could not extract video url from reel" = "‏تعذر استخراج رابط الفيديو من مقطع ريلز‏"; -"Could not extract video url from story" = "‏تعذر استخراج رابط الفيديو من القصة‏"; +"Could not write file." = "تعذر كتابة الملف."; +"Download all and share?" = "‏تنزيل الكل ومشاركته؟‏"; "Download Quality" = "‏جودة التنزيل‏"; -"Extras" = "Extras"; +"Downloading %d%%" = "‏جارِ التنزيل %d%%‏"; +"e.g. 1000000" = "مثال: 1000000"; +"Localization file not found" = "لم يتم العثور على ملف الترجمة"; +"Enter the language code (e.g. fr, de, ja)" = "‏أدخل رمز اللغة (مثل fr، de، ja)‏"; +"Error" = "خطأ"; +"Extras" = "إضافات"; "FFmpegKit Debug" = "‏تصحيح أخطاء FFmpegKit‏"; +"File is empty or not a valid .strings file." = "الملف فارغ أو ليس ملف .strings صالح."; +"KD: OFF" = "‏الاحتفاظ: إيقاف‏"; +"Keep-deleted: OFF" = "‏ • الاحتفاظ بالمحذوف: إيقاف‏"; +"Keep-deleted: ON" = "‏ • الاحتفاظ بالمحذوف: تشغيل‏"; "Later" = "‏لاحقًا‏"; +"Loading" = "‫جارٍ التحميل‬"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "اسم ألبوم الصور الذي يحفظ فيه RyukGram. اتركه فارغًا لاستعادة الافتراضي."; +"Next" = "‏التالي‏"; +"No results found." = "لم يتم العثور على نتائج."; "No!" = "‏لا!‏"; -"OK" = "‏حسناً‏"; +"Pick a language to update, or add a new one" = "‫اختر لغة لتحديثها، أو أضف لغة جديدة‬"; +"Preset" = "‏إعداد مسبق‏"; "Restart" = "‏إعادة تشغيل‏"; +"Restart now" = "إعادة التشغيل الآن"; "Restart required" = "‏إعادة التشغيل مطلوبة‏"; -"username" = "‏اسم المستخدم‏"; +"Saved preset \"%@\"" = "تم حفظ الإعداد المسبق \"%@\""; +"selected" = "محدد"; +"Shared icon, or override per button" = "أيقونة مشتركة، أو تجاوز لكل زر"; +"Speed" = "السرعة"; +"Unset" = "غير محدد"; +"Update localization" = "‫تحديث الترجمة‬"; +"Updated %@ (%ld keys). Restart to apply." = "‏تم تحديث %@ (%ld مفاتيح). أعد التشغيل للتطبيق."; +"Use default" = "استخدام الافتراضي"; +"Username or PK" = "اسم المستخدم أو PK"; +"Username or raw user PK" = "اسم المستخدم أو PK الخام للمستخدم"; "Yes" = "‏نعم‏"; "You must restart the app to apply this change" = "‏يجب عليك إعادة تشغيل التطبيق لتطبيق هذا التغيير‏"; @@ -1131,15 +1708,21 @@ // Strings from the About / Credits footer of Settings. // ////////////////////////////////////////////////////////////////////////////// -"%@ — GitHub & Telegram" = "‏%@ — جيت هاب وتيليجرام‏"; +"%@ — GitHub, Telegram, Donate" = "‏%@ — جيت هاب، تيليجرام، تبرع‏"; "About" = "‏حول‏"; "Arabic translation" = "‏الترجمة العربية‏"; -"Chinese (Traditional) translation" = "الترجمة الصينية (التقليدية)"; +"Chinese (Traditional and Simplified) translation" = "ترجمة الصينية (التقليدية والمبسطة)"; "Credits" = "‏شكر وتقدير‏"; "Developers" = "‏المطوّرون‏"; "Donate to SoCuul" = "‏تبرع إلى SoCuul‏"; "installed" = "‏مُثبّت‏"; "Korean translation" = "‏الترجمة الكورية‏"; +"Portuguese (Brazil) translation" = "الترجمة البرتغالية (البرازيل)"; +"Turkish translation" = "الترجمة التركية"; +"Vietnamese translation" = "الترجمة الفيتنامية"; +"French translation" = "الترجمة الفرنسية"; +"Code contributions" = "مساهمات في الكود"; +"Following feed mode (from InstaSane)" = "‏وضع يوميات المتابَعين (من InstaSane)‏"; "latest" = "‏الأحدث‏"; "Links" = "‏الروابط‏"; "No releases" = "‏لا توجد إصدارات‏"; @@ -1153,10 +1736,21 @@ "Source code" = "‏الكود المصدري‏"; "View on GitHub" = "‏عرض على جيت هاب‏"; "Spanish translation" = "‏الترجمة الإسبانية‏"; -"Support the original developer" = "‏ادعم المطور الأصلي‏"; +"Support the original SCInsta developer" = "‏ادعم مطور SCInsta الأصلي‏"; +"Inspirations" = "‏مصادر الإلهام‏"; +"Inspirations, contributors, translators" = "‏مصادر الإلهام، المساهمون، المترجمون‏"; +"Code and research" = "‏الكود والبحث‏"; +"Translators" = "‏المترجمون‏"; +"Original BHInstagram developer" = "‏مطور BHInstagram الأصلي‏"; +"OLED theme inspiration" = "‏إلهام مظهر OLED‏"; +"Donate to Ryuk" = "‏ادعم Ryuk‏"; +"Support RyukGram development" = "‏ادعم تطوير RyukGram‏"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "‏RyukGram هو نسخة مُعاد تطويرها بشكل كبير من SCInsta — دعم المطور الأصلي موضع تقدير.‏"; +"Browse changes from previous releases" = "‏تصفح التغييرات من الإصدارات السابقة‏"; +"Code inspiration" = "‏إلهام برمجي‏"; +"zxPluginsInject sideload compatibility shim" = "‏واجهة توافق التحميل الجانبي zxPluginsInject‏"; "Telegram channel" = "‏قناة تيليجرام‏"; "Testing and feature suggestions" = "‏الاختبار واقتراحات الميزات‏"; -"Tweak settings" = "‏إعدادات التعديل‏"; "Version" = "‏الإصدار‏"; "Version, credits, and links" = "‏الإصدار والاعتمادات والروابط‏"; "What's new in RyukGram" = "‏جديد RyukGram‏"; @@ -1167,7 +1761,6 @@ ////////////////////////////////////////////////////////////////////////////// "720p • progressive • silent" = "‏720p • تدريجي • صامت‏"; -"Audio extract failed" = "‏فشل استخراج الصوت‏"; "Audio only" = "‏الصوت فقط‏"; "Audio ready" = "‏الصوت جاهز‏"; "Download video at the highest available quality" = "‏تنزيل الفيديو بأعلى جودة متاحة‏"; @@ -1177,12 +1770,433 @@ "Faster = lower quality" = "‏أسرع = جودة أقل‏"; "FFmpeg not available" = "‏FFmpeg غير متاح‏"; "FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "‏حزمة FFmpegKit غير متوفرة. قم بتثبيت تطبيق IPA المُحمّل جانبياً أو نسخة _ffmpeg .deb للتفعيل.‏"; -"No audio stream available" = "‏لا يتوفر مسار صوتي‏"; "No audio track found" = "‏لم يتم العثور على مسار صوتي‏"; "Photo" = "‏صورة‏"; "Photo quality" = "‏جودة الصورة‏"; -"Raw image (no audio, no video)" = "‏صورة خام (بدون صوت أو فيديو)‏"; "silent" = "‏صامت‏"; "Use highest resolution available" = "‏استخدام أعلى دقة متاحة‏"; "Video quality" = "‏جودة الفيديو‏"; "Which quality to download" = "‏الجودة المراد تنزيلها‏"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "'%@' غير متوفر في إصدار FFmpegKit هذا — يتم استخدام h264 العتادي بدلاً منه."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-bit 4:2:0. أبطأ بنحو الضعف، تدرّجات أنعم."; +"10-bit colour. Slower, smoother gradients. Software only." = "ألوان 10-bit. أبطأ، تدرّجات أنعم. برمجي فقط."; +"1080p30 baseline." = "أساس 1080p30."; +"4K30 baseline." = "أساس 4K30."; +"8-bit 4:2:0. Universal default." = "8-bit 4:2:0. الافتراضي العام."; +"8-bit 4:2:2 chroma. Niche playback." = "كروما 8-bit 4:2:2. تشغيل محدود."; +"8-bit 4:2:2 chroma. Software only." = "كروما 8-bit 4:2:2. برمجي فقط."; +"8-bit 4:4:4 chroma. Software only." = "كروما 8-bit 4:4:4. برمجي فقط."; +"8-bit 4:4:4 full chroma. Niche playback." = "كروما كاملة 8-bit 4:4:4. تشغيل محدود."; +"8-bit. Best for modern devices." = "8-bit. الأفضل للأجهزة الحديثة."; +"Advanced encoding" = "الترميز المتقدم"; +"Advanced encoding settings" = "إعدادات الترميز المتقدم"; +"Archival quality." = "جودة أرشيفية."; +"Audio bitrate" = "معدل بِت الصوت"; +"Audio channels" = "قنوات الصوت"; +"Audio codec" = "ترميز الصوت"; +"Audio conversion failed" = "فشل تحويل الصوت"; +"Audio sample rate" = "معدل أخذ عينات الصوت"; +"Balanced. libx264 default." = "متوازن. الافتراضي لـ libx264."; +"Best practical quality per bit." = "أفضل جودة عملية لكل بِت."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "ينطبق معدل البِت والقنوات ومعدل العينات فقط عندما يكون الترميز AAC (إعادة الترميز)."; +"Cartoons / anime." = "رسوم متحركة / أنمي."; +"Cinematic. Smaller files." = "سينمائي. ملفات أصغر."; +"Codec" = "الترميز"; +"Container" = "الحاوية"; +"Copy (passthrough)" = "نسخ (تمرير)"; +"CRF quality" = "جودة CRF"; +"Downloading video…" = "جارٍ تنزيل الفيديو…"; +"Easier to play back on weak devices." = "أسهل في التشغيل على الأجهزة الضعيفة."; +"Encoder unavailable" = "المُرمِّز غير متوفر"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "أمثلة: 8M، 12M، 25M، 4500k. اتركه فارغًا للوضع التلقائي."; +"Failed to download video" = "فشل تنزيل الفيديو"; +"Fast, fixed-bitrate, GPU-accelerated." = "سريع، معدل بِت ثابت، مُسرَّع بالـ GPU."; +"Fastest, worst compression." = "الأسرع، أسوأ ضغط."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "ينقل Faststart فهرس MP4 إلى البداية ليبدأ التشغيل قبل اكتمال تخزين الملف مؤقتًا. تزيل \"إزالة البيانات الوصفية\" وسوم المصدر (تاريخ الإنشاء، المعالِج، المُرمِّز) من الملف."; +"FFmpeg documentation" = "وثائق FFmpeg"; +"FFmpeg mux failed" = "فشل دمج FFmpeg"; +"Frame rate" = "معدل الإطارات"; +"H.264 level" = "مستوى H.264"; +"H.264 profile" = "ملف تعريف H.264"; +"Hardware (VideoToolbox)" = "العتاد (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "يدعم العتاد (VideoToolbox) yuv420p فقط — تم تجاهل '%@'. بدّل إلى البرمجي (libx264) لاستخدامه."; +"Keep original audio. Fast." = "الاحتفاظ بالصوت الأصلي. سريع."; +"Keep the source frame rate." = "الاحتفاظ بمعدل إطارات المصدر."; +"Let the encoder pick." = "اترك المُرمِّز يختار."; +"Live-action video." = "فيديو واقعي."; +"Lossless. Huge files." = "بلا فقدان. ملفات ضخمة."; +"Low-latency streaming." = "بث منخفض الكمون."; +"Manual ffmpeg controls in place of Encoding speed." = "أدوات تحكم ffmpeg يدوية بدلاً من سرعة الترميز."; +"Marginal gain, huge time cost." = "مكسب هامشي، تكلفة وقت ضخمة."; +"Max resolution" = "أقصى دقة"; +"Mono" = "أحادي"; +"No tuning. Default." = "بلا ضبط. الافتراضي."; +"None" = "لا شيء"; +"Pixel format" = "تنسيق البكسل"; +"Pixel format ignored" = "تم تجاهل تنسيق البكسل"; +"Preserve film grain." = "الحفاظ على حبيبات الفيلم."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "ينطبق الإعداد المسبق والضبط على البرمجي (libx264) فقط. اقرن ملف التعريف بتنسيق البكسل: high↔yuv420p، high10↔yuv420p10le، high422↔yuv422p، high444↔yuv444p. عدم التطابق يُحوَّل إلى أدنى بصمت. يستخدم العتاد yuv420p دائمًا."; +"Re-encode. Use when source is opus or unsupported." = "إعادة الترميز. استخدمه عندما يكون المصدر opus أو غير مدعوم."; +"Reset advanced encoding" = "إعادة تعيين الترميز المتقدم"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "تعيين معدل بِت للفيديو يبدّل البرمجي إلى معدل بِت ثابت ويتجاهل CRF. اتركه فارغًا لاستخدام CRF. يستخدم العتاد معدل البِت."; +"Slideshow-like content." = "محتوى يشبه عرض الشرائح."; +"Slower, better compression per bit." = "أبطأ، ضغط أفضل لكل بِت."; +"Smaller, visible artefacts." = "أصغر، تشوهات مرئية."; +"Software (libx264)" = "البرمجي (libx264)"; +"Standard 8-bit." = "8-bit قياسي."; +"Stereo" = "ستيريو"; +"Streaming default." = "الافتراضي للبث."; +"Strip metadata" = "إزالة البيانات الوصفية"; +"Top of AAC." = "أعلى مستوى لـ AAC."; +"Tune" = "ضبط"; +"Unknown error" = "خطأ غير معروف"; +"Very high quality." = "جودة عالية جدًا."; +"Video bitrate" = "معدل بِت الفيديو"; +"Video codec" = "ترميز الفيديو"; +"Visually lossless. RyukGram default." = "بلا فقدان مرئي. الافتراضي لـ RyukGram."; +"Widest compatibility, no B-frames." = "أوسع توافق، بلا إطارات B."; +"Worst quality." = "أسوأ جودة."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "‏إيماءات الضغط المطول‏"; +"Inserts a button in the profile navigation header" = "‏يدرج زرًا في رأس التنقل بالملف الشخصي‏"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "‏يضيف زر إجراء ريوك غرام إلى رأس الملف الشخصي مع خيارات نسخ وعرض الصورة ومشاركة وحفظ ومعلومات الملف. يؤدي النقر إلى فتح القائمة افتراضيًا؛ يمكنك تغيير سلوك النقر من قائمة التهيئة.‏"; +"Configure menu" = "‏تهيئة القائمة‏"; +"Reorder, enable/disable, set default tap, show date" = "‏إعادة الترتيب، تفعيل/تعطيل، ضبط النقر الافتراضي، إظهار التاريخ‏"; +"Reorder, enable/disable, set default tap" = "‏إعادة الترتيب، تفعيل/تعطيل، ضبط النقر الافتراضي‏"; +"RyukGram profile actions" = "‏إجراءات ريوك غرام للملف الشخصي‏"; +"Reorder sections" = "‏إعادة ترتيب الأقسام‏"; +"Drag the ≡ handle to reorder sections." = "‏اسحب مقبض ≡ لإعادة ترتيب الأقسام.‏"; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "‏اسحب مقبض ≡ لإعادة الترتيب. أوقف الصف لإخفائه من القائمة. حدّد قسمًا كقائمة فرعية لطي إجراءاته خلف خيار واحد.‏"; +"Show as submenu" = "‏إظهار كقائمة فرعية‏"; +"Collapse this section's actions behind a single entry" = "‏طي إجراءات هذا القسم خلف خيار واحد‏"; +"Configure: %@" = "‏تهيئة: %@‏"; +"What happens on a single tap. Long-press always opens the full menu." = "‏ما الذي يحدث عند النقر المفرد. الضغط المطول يفتح القائمة الكاملة دائمًا.‏"; +"Reset to defaults" = "‏إعادة التعيين إلى الافتراضي‏"; +"This will restore the default sections, order, and toggles for this menu." = "‏سيؤدي هذا إلى استعادة الأقسام والترتيب والمفاتيح الافتراضية لهذه القائمة.‏"; +"Audio & visibility" = "‏الصوت والرؤية‏"; +"DM disappearing media" = "‏الوسائط المختفية في الرسائل الخاصة‏"; +"Bulk download" = "‏تنزيل جماعي‏"; +"Feed settings" = "‏إعدادات اليوميات‏"; +"Reels settings" = "‏إعدادات ريلز‏"; +"Profile settings" = "‏إعدادات الملف الشخصي‏"; +"Stories settings" = "‏إعدادات القصص‏"; +"Copy ID" = "‏نسخ المعرف‏"; +"Copy Info" = "‏نسخ المعلومات‏"; +"Copy all info" = "‫نسخ كل المعلومات‬"; +"Copy media URL" = "‏نسخ رابط الوسائط‏"; +"Copy profile link" = "‏نسخ رابط الملف الشخصي‏"; +"Copy username" = "‏نسخ اسم المستخدم‏"; +"Download" = "‏تنزيل‏"; +"Download to Gallery" = "‏تنزيل إلى المعرض‏"; +"Download all to Gallery" = "‏تنزيل الكل إلى المعرض‏"; +"Exclude/include user" = "‏استبعاد/تضمين المستخدم‏"; +"Mute / unmute audio" = "‏كتم / إلغاء كتم الصوت‏"; +"Save picture to Gallery" = "‏حفظ الصورة في المعرض‏"; +"Share picture" = "‏مشاركة الصورة‏"; +"View picture" = "‏عرض الصورة‏"; +"Bio" = "‏البايو‏"; +"ID" = "‏المعرف‏"; +"Info" = "‏المعلومات‏"; +"Profile info" = "‫معلومات الملف الشخصي‬"; +"Profile link" = "‏رابط الملف الشخصي‏"; +"Picture not found" = "‏الصورة غير موجودة‏"; +"Private profile" = "‏ملف شخصي خاص‏"; +"Profile unavailable" = "‏الملف الشخصي غير متاح‏"; +"Public profile" = "‏ملف شخصي عام‏"; +"Username" = "‏اسم المستخدم‏"; +"Followers: %@" = "‏المتابِعون: %@‏"; +"Following: %@" = "‏المتابَعون: %@‏"; +"Copied %@" = "‏تم نسخ %@‏"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "‏(غير معروف)‏"; +"All files deleted" = "‏تم حذف جميع الملفات‏"; +"Browsing" = "‏التصفح‏"; +"By source" = "‏حسب المصدر‏"; +"By type" = "‏حسب النوع‏"; +"By user" = "‏حسب المستخدم‏"; +"Clear filters" = "‏مسح المرشحات‏"; +"Comment" = "‏تعليق‏"; +"Create" = "‏إنشاء‏"; +"Create & Move" = "‏إنشاء ونقل‏"; +"Delete %@?" = "‏حذف %@؟‏"; +"Delete all files" = "‏حذف جميع الملفات‏"; +"Delete all images" = "‏حذف جميع الصور‏"; +"Delete all videos" = "‏حذف جميع الفيديوهات‏"; +"Delete by user" = "‏حذف حسب المستخدم‏"; +"Delete DM media" = "‏حذف وسائط الرسائل الخاصة‏"; +"Delete feed posts" = "‏حذف منشورات اليوميات‏"; +"Delete files" = "‏حذف الملفات‏"; +"Delete Folder" = "‏حذف المجلد‏"; +"Delete from Gallery?" = "‏حذف من المعرض؟‏"; +"Delete profile pictures" = "‏حذف صور الملف الشخصي‏"; +"Delete reels" = "‏حذف ريلز‏"; +"Delete selected" = "‏حذف المحدد‏"; +"Delete Selected Files?" = "‏حذف الملفات المحددة؟‏"; +"Delete stories" = "‏حذف القصص‏"; +"Delete thumbnails" = "‏حذف الصور المصغّرة‏"; +"Deleted from Gallery" = "‏تم الحذف من المعرض‏"; +"Deleted selected files" = "‫تم حذف الملفات المحددة‬"; +"Deselect All" = "‫إلغاء تحديد الكل‬"; +"DM media deleted" = "‏تم حذف وسائط الرسائل الخاصة‏"; +"DMs" = "‏الرسائل‏"; +"Each user appears as a folder next to your real folders." = "‏كل مستخدم يظهر كمجلد بجانب مجلداتك الحقيقية.‏"; +"Each user gets a labelled section in the grid/list." = "‏كل مستخدم يحصل على قسم باسمه في الشبكة/القائمة.‏"; +"Enable gallery" = "‏تفعيل المعرض‏"; +"Failed" = "‏فشل‏"; +"Failed to delete" = "‏فشل الحذف‏"; +"Favorite" = "‏تفضيل‏"; +"Favorite selected" = "‏تفضيل المحدد‏"; +"Favorites only" = "‏المفضلة فقط‏"; +"Feed posts deleted" = "‏تم حذف منشورات اليوميات‏"; +"Files deleted" = "‏تم حذف الملفات‏"; +"Flat list. No grouping." = "‏قائمة مسطحة. بدون تجميع.‏"; +"Folder name" = "‏اسم المجلد‏"; +"Folders" = "‏مجلدات‏"; +"From RyukGram Gallery" = "‏صوت من معرض ريوك غرام‏"; +"Gallery" = "‏المعرض‏"; +"Gallery only" = "‏المعرض فقط‏"; +"Gallery save mode" = "‏وضع الحفظ في المعرض‏"; +"Gallery Settings" = "‏إعدادات المعرض‏"; +"GIFs" = "‏صور جيف (GIFs)‏"; +"Grid view" = "‏عرض شبكي‏"; +"Group by user" = "‏تجميع حسب المستخدم‏"; +"Hold DM tab to open gallery" = "‫اضغط على تبويب الرسائل لفتح المعرض‬"; +"Images" = "‏الصور‏"; +"Images deleted" = "‏تم حذف الصور‏"; +"Images first" = "‏الصور أولاً‏"; +"item" = "‏عنصر‏"; +"items" = "‏عناصر‏"; +"Largest first" = "‏الأكبر أولاً‏"; +"List view" = "‏عرض قائمة‏"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "‫اضغط مطولاً على زر الرسائل في شريط التبويب السفلي لفتح معرض ريوك غرام‬"; +"Manage" = "‏إدارة‏"; +"More" = "‏المزيد‏"; +"Move selected" = "‏نقل المحدد‏"; +"Move to Folder" = "‏نقل إلى مجلد‏"; +"Name A-Z" = "‏الاسم أ-ي‏"; +"Name Z-A" = "‏الاسم ي-أ‏"; +"New Folder" = "‏مجلد جديد‏"; +"New folder…" = "‏مجلد جديد…‏"; +"Newest first" = "‏الأحدث أولاً‏"; +"No files in Gallery" = "‏لا توجد ملفات في المعرض‏"; +"No files to delete" = "‏لا توجد ملفات للحذف‏"; +"No matching files" = "‏لا توجد ملفات مطابقة‏"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "‏مكتبة على الجهاز للوسائط التي تم تنزيلها عبر ريوك غرام. يحدد وضع الحفظ المكان الذي يكتب فيه 'تنزيل إلى الصور' فعليًا.‏"; +"Open" = "‏فتح‏"; +"Open Original Post" = "‏فتح المنشور الأصلي‏"; +"Options" = "‏الخيارات‏"; +"Other" = "‏أخرى‏"; +"Photos + Gallery" = "‏الصور + المعرض‏"; +"Photos only" = "‏الصور فقط‏"; +"Profile pictures deleted" = "‏تم حذف صور الملف الشخصي‏"; +"Reels deleted" = "‏تم حذف ريلز‏"; +"Rename" = "‏إعادة تسمية‏"; +"Rename Folder" = "‏إعادة تسمية المجلد‏"; +"Root" = "‏الجذر‏"; +"Save media from the preview screen\nto see it here." = "‏احفظ الوسائط من شاشة المعاينة\nلتظهر هنا.‏"; +"Saved %lu items to Gallery" = "‏تم حفظ %lu من العناصر في المعرض‏"; +"Saved to Gallery" = "‏تم الحفظ في المعرض‏"; +"Saving to Gallery" = "‏جارِ الحفظ في المعرض...‏"; +"Search users" = "‏بحث عن المستخدمين‏"; +"Sections" = "‏أقسام‏"; +"Select All" = "‫تحديد الكل‬"; +"Share" = "‏مشاركة‏"; +"Share selected" = "‏مشاركة المحدد‏"; +"Show favorites at top" = "‏إظهار المفضلة في الأعلى‏"; +"Show gallery entries in download menus and unlock the gallery button" = "‏إظهار خيارات المعرض في قوائم التنزيل وفتح زر المعرض‏"; +"Smallest first" = "‏الأصغر أولاً‏"; +"Source" = "‏المصدر‏"; +"Source user" = "‏المستخدم المصدر‏"; +"Storage" = "‏التخزين‏"; +"Stories deleted" = "‏تم حذف القصص‏"; +"Story" = "‏القصة‏"; +"The original content may no longer exist." = "‫قد لا يكون المحتوى الأصلي موجوداً بعد الآن.‬"; +"This folder contains %ld file(s). They will be moved to the parent folder." = "‏يحتوي هذا المجلد على %ld من الملفات. سيتم نقلها إلى المجلد الأصلي.‏"; +"This folder is empty." = "‏هذا المجلد فارغ.‏"; +"This will permanently remove %ld file%@ from the gallery." = "‏سيؤدي هذا إلى إزالة %ld %@ نهائيًا من المعرض.‏"; +"This will permanently remove %ld file(s)." = "‏سيؤدي هذا إلى إزالة %ld من الملفات نهائيًا.‏"; +"This will permanently remove this file from the gallery." = "‏سيؤدي هذا إلى إزالة هذا الملف نهائيًا من المعرض.‏"; +"Thumb" = "‏مصغّرة‏"; +"Thumbnails deleted" = "‏تم حذف الصور المصغّرة‏"; +"to Gallery" = "‏إلى المعرض‏"; +"Total files" = "‏إجمالي الملفات‏"; +"Total size" = "‏الحجم الإجمالي‏"; +"Type" = "‏النوع‏"; +"Unable to open original post" = "‏تعذر فتح المنشور الأصلي‏"; +"Unable to open profile" = "‏تعذر فتح الملف الشخصي‏"; +"Unfavorite" = "‏إلغاء التفضيل‏"; +"Unknown user" = "‏مستخدم غير معروف‏"; +"User files deleted" = "‏تم حذف ملفات المستخدم‏"; +"Videos" = "‏الفيديوهات‏"; +"Videos deleted" = "‏تم حذف الفيديوهات‏"; +"Videos first" = "‏الفيديوهات أولاً‏"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "‏عند التفعيل، يتم تثبيت المفضلة فوق الملفات الأخرى ضمن سياق الفرز والمجلد الحالي.‏"; +"Where 'Download to Photos' actually writes when gallery is on" = "‏المكان الذي يكتب فيه 'تنزيل إلى الصور' فعليًا عند تفعيل المعرض‏"; +"Yesterday" = "‏أمس‏"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "‫زر اختصار الصفحة الرئيسية‬"; +"Show the extra button on the home top bar" = "‫اضبط الزر الإضافي في الشريط العلوي للصفحة الرئيسية‬"; +"Auto" = "‫تلقائي‬"; +"Icon" = "‫الأيقونة‬"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "‫اسحب مقبض ≡ لإعادة الترتيب. أوقف صفًا لإخفاء تلك الوجهة. عند تفعيل إجراء واحد ينفذه الضغط؛ عند تفعيل اثنين أو أكثر يعرض الضغط قائمة.‬"; +"Changelog" = "‫سجل التغييرات‬"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "يضيف زر اختصار إضافيًا بجوار زر + لإنشاء منشور في الشريط العلوي للصفحة الرئيسية."; +"All buttons" = "كل الأزرار"; +"Choose icon, reorder actions, and enable menu items" = "اختر الأيقونة، وأعد ترتيب الإجراءات، وفعّل عناصر القائمة"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "اختر الأيقونة المعروضة في الشريط العلوي للصفحة الرئيسية. يستخدم \"تلقائي\" أيقونة الإجراء المحدد عند تفعيل إجراء واحد فقط."; +"Configure button" = "تكوين الزر"; +"Global Action Icons" = "أيقونات الإجراءات العامة"; +"Interface" = "الواجهة"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "تجاوز الأيقونة لزر محدد. تتبع الأزرار المتروكة على \"افتراضي\" الأيقونة المشتركة أعلاه."; +"Per button" = "لكل زر"; +"Show home shortcut button" = "إظهار زر اختصار الصفحة الرئيسية"; +"Tab bar" = "شريط التبويبات"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "إشعارات داخل التطبيق موحدة. اختر النمط والموضع والتوجيه لكل إجراء (كبسولة / إنستغرام أصلي / إيقاف)."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "الإشعارات"; +"Appearance" = "المظهر"; +"Routing" = "التوجيه"; +"Style" = "النمط"; +"Position" = "الموضع"; +"Stack size" = "حجم الكومة"; +"Duration" = "المدة"; +"Default surface" = "السطح الافتراضي"; +"Enable notifications" = "تمكين الإشعارات"; +"Haptic feedback" = "استجابة لمسية"; +"Preview pill" = "معاينة الكبسولة"; +"Preview download pill" = "معاينة كبسولة التنزيل"; +"Preview loading pill" = "معاينة كبسولة التحميل"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "المفتاح الرئيسي. عند الإيقاف، لا تظهر أي إشعارات."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "إشعارات داخل التطبيق موحدة. كل ملاحظات RyukGram (التنزيلات، النسخ، الأخطاء، رسائل النجاح) تمر من هنا."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal: ضبابية مسطحة. Colorful: ملونة بالنبرة. Glow: هالة ملونة. Island: كبسولة الجزيرة الديناميكية."; +"Top slides down, bottom slides up." = "الأعلى ينزلق للأسفل، الأسفل ينزلق للأعلى."; +"How many pills can show at once before queueing." = "عدد الكبسولات التي يمكن عرضها معًا قبل الانتظار."; +"Multiplies how long toasts stay on screen." = "يضاعف مدة بقاء الإشعارات على الشاشة."; +"Vibration on success/error pills." = "اهتزاز عند كبسولات النجاح/الخطأ."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "للإجراءات بنمط الإشعار يمكنك الاختيار بين كبسولتنا وإشعار إنستغرام الأصلي. التجاوزات لكل إجراء أدناه."; +"What to use when an action doesn't have its own override." = "ما يُستخدم عندما لا يحتوي إجراء على تجاوز خاص."; +"Tap to cycle: info → success → warning → error" = "اضغط للتنقل: معلومات ← نجاح ← تحذير ← خطأ"; +"Tap to cycle between success and failure" = "اضغط للتبديل بين النجاح والفشل"; +"Progress UI — pill or off only." = "واجهة التقدم — كبسولة أو إيقاف فقط."; +"Minimal" = "بسيط"; +"Colorful" = "ملوّن"; +"Glow" = "توهّج"; +"Island" = "جزيرة"; +"Top" = "أعلى"; +"Bottom" = "أسفل"; +"Custom pill" = "كبسولة مخصصة"; +"IG native toast" = "إشعار إنستغرام الأصلي"; +"Short" = "قصير"; +"Normal" = "عادي"; +"Long" = "طويل"; +"Very long" = "طويل جدًا"; +"Downloads & saving" = "التنزيلات والحفظ"; +"Copy to clipboard" = "نسخ إلى الحافظة"; +"Read receipts & seen" = "إيصالات القراءة والمشاهدة"; +"Block, exclude & pin" = "حظر واستثناء وتثبيت"; +"Stories & messages" = "القصص والرسائل"; +"Voice & audio" = "الصوت والمقاطع"; +"Errors" = "الأخطاء"; +"Download progress" = "تقدم التنزيل"; +"Bulk download progress" = "تقدم التنزيل المجمع"; +"Copied post / reel URL" = "تم نسخ رابط المنشور/الريل"; +"Copied comment text" = "تم نسخ نص التعليق"; +"Copied note text" = "تم نسخ نص الملاحظة"; +"Copied profile info" = "تم نسخ معلومات الملف الشخصي"; +"Copied audio URL" = "تم نسخ رابط الصوت"; +"Copied quality picker URL" = "تم نسخ رابط منتقي الجودة"; +"Copied unlocked password" = "تم نسخ كلمة المرور المفتوحة"; +"Copied description text" = "تم نسخ نص الوصف"; +"DM seen / read receipts" = "إيصالات قراءة الرسائل المباشرة"; +"Story seen / read receipts" = "إيصالات قراءة القصص"; +"User blocked / unblocked" = "تم حظر / إلغاء حظر المستخدم"; +"Chat added / removed from exclude" = "تم إضافة / إزالة المحادثة من الاستثناءات"; +"Story user added / removed from exclude" = "تم إضافة / إزالة مستخدم القصة من الاستثناءات"; +"Share-sheet recipient pinned" = "تم تثبيت المستلم في ورقة المشاركة"; +"Unsent message detected" = "تم اكتشاف رسالة غير مرسلة"; +"Live comments toggled" = "تم تبديل تعليقات البث المباشر"; +"Custom GIF sent" = "تم إرسال GIF مخصص"; +"Voice DM sent" = "تم إرسال رسالة صوتية"; +"Audio extraction status" = "حالة استخراج الصوت"; +"Profile Analyzer complete" = "اكتمل محلل الملف الشخصي"; +"Media extraction failed" = "فشل استخراج الوسائط"; +"Permission denied" = "تم رفض الإذن"; +"Validation error" = "خطأ في التحقق"; +"Network / API error" = "خطأ في الشبكة / API"; +"Action error fallback" = "احتياطي خطأ الإجراء"; +"Invalid clipboard link" = "رابط الحافظة غير صالح"; +"Experimental flag warning" = "تحذير العلامة التجريبية"; +"Settings action confirmed" = "تم تأكيد إجراء الإعدادات"; +"Cache clearing progress" = "تقدم مسح الذاكرة المؤقتة"; +"Other / uncategorized" = "أخرى / غير مصنفة"; +"Comment copied" = "تم نسخ التعليق"; +"FFmpeg log copied" = "تم نسخ سجل FFmpeg"; +"GIF inserted" = "تم إدراج GIF"; +"Story marked as seen" = "تم تعليم القصة كمشاهدة"; +"Saved" = "تم الحفظ"; +"Tap to retry" = "اضغط لإعادة المحاولة"; +"Looks great" = "يبدو رائعًا"; +"Something broke" = "حدث خطأ ما"; +"Just so you know" = "للعلم فقط"; +"Success preview" = "معاينة النجاح"; +"Error preview" = "معاينة الخطأ"; +"Warning preview" = "معاينة التحذير"; +"Info preview" = "معاينة المعلومات"; +"Preview download…" = "معاينة التنزيل…"; +"Colors" = "‏الألوان‏"; +"+ Add new language" = "‏+ إضافة لغة جديدة‏"; +"Each chat can override this in the list" = "‏يمكن لكل محادثة تجاوز هذا في القائمة‏"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "عند التشغيل، طلبات موقع Instagram تُرجع موقعك الوهمي المحدد. زر الخريطة يضيف اختصارًا سريعًا داخل خريطة الأصدقاء."; +"Tap a preset to make it active. Swipe left to delete." = "اضغط على إعداد مسبق لتفعيله. اسحب لليسار للحذف."; +"Override Instagram location reads." = "تجاوز قراءات موقع Instagram."; +"Show the quick button in Friends Map." = "إظهار الزر السريع في خريطة الأصدقاء."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "اختر كيف تُكتب التواريخ المطلقة. \"افتراضي\" يترك تنسيق IG الخاص دون تغيير."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "التواريخ الأحدث من العتبة تظهر كوقت نسبي. التواريخ الأقدم تعود إلى التنسيق المطلق. “دمج مع التاريخ” يعرض كليهما — “5 يناير 2026 (2س)” أو “2س – 5 يناير 2026”."; +"Compact style" = "نمط مدمج"; +"Example: “1h” instead of “1 hour ago”" = "مثال: “1h” بدلًا من “mنذ ساعة”"; +"Example: “Jan 5, 2026 (2h)”" = "مثال: “Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "واجهات صوت iOS لم تستطع معالجة هذا الملف%@%@\n\nيمكنك محاولة إرساله إلى Instagram كما هو، أو فتح مشكلة دعم."; +"Combine with date" = "دمج مع التاريخ"; +"Absolute then relative" = "مطلق ثم نسبي"; +"Relative – absolute" = "نسبي – مطلق"; +"Relative when young, absolute when older." = "نسبي للحديث، مطلق للقديم."; +"Example: “2h – Jan 5, 2026”" = "مثال: “2س – 5 يناير 2026”"; diff --git a/src/Localization/Resources/en.lproj/Localizable.strings b/src/Localization/Resources/en.lproj/Localizable.strings index 7b3ca0f..2cf7a77 100644 --- a/src/Localization/Resources/en.lproj/Localizable.strings +++ b/src/Localization/Resources/en.lproj/Localizable.strings @@ -55,7 +55,6 @@ * - Keys and values are both quoted; every line ends with a semicolon. */ - ////////////////////////////////////////////////////////////////////////////// // CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // // Shown on the root Settings screen: title, search bar, the globe language // @@ -68,11 +67,12 @@ "settings.firstrun.title" = "RyukGram Settings Info"; "settings.language.english_only" = "RyukGram currently ships with English only. Other languages are wired up and waiting for translations — help translate into your language by following the short guide in the README."; "settings.language.help_translate" = "Help translate"; -"settings.language.ok" = "OK"; "settings.language.system" = "System default"; "settings.language.title" = "Language"; +"settings.language.restart.message" = "Settings updated. Restart Instagram so menus, buttons, and toasts elsewhere in the app pick up the new language too."; +"settings.language.restart.title" = "Restart to apply everywhere"; +"settings.language.available" = "Available"; "settings.results.many" = "%lu results"; -"settings.results.none" = "No results"; "settings.results.one" = "%lu result"; "settings.search.placeholder" = "Search settings"; "settings.title" = "RyukGram Settings"; @@ -82,20 +82,33 @@ // Settings → General tab // ////////////////////////////////////////////////////////////////////////////// +"Action button icon" = "Action button icon"; "Adds a copy option to the comment long-press menu" = "Adds a copy option to the comment long-press menu"; -"Adds a download option for GIF comments" = "Adds a download option for GIF comments"; +"Adds a download button next to share/save on the reels audio page" = "Adds a download button next to share/save on the reels audio page"; +"Adds download, copy and expand options to GIF and image comments" = "Adds download, copy and expand options to GIF and image comments"; +"Allow video in photo sticker" = "Allow video in photo sticker"; +"Alternate icons are not supported" = "Alternate icons are not supported"; "Anonymous live viewing" = "Anonymous live viewing"; +"App Icon" = "App Icon"; +"Audio page" = "Audio page"; +"Auto-reveals sensitive media" = "Auto-reveals sensitive media"; "Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count"; "Browser" = "Browser"; +"Change the app icon from the bundled icons" = "Change the app icon from the bundled icons"; +"Choose Icon" = "Choose Icon"; +"Choose which surfaces hide ads" = "Choose which surfaces hide ads"; "Comments" = "Comments"; +"Commerce carousels in comments and shoppable CTAs on reels" = "Commerce carousels in comments and shoppable CTAs on reels"; "Copy comment text" = "Copy comment text"; "Copy description" = "Copy description"; "Copy description text fields by long-pressing on them" = "Copy description text fields by long-pressing on them"; +"Custom music sticker color" = "Custom music sticker color"; "Date format" = "Date format"; "Disable app haptics" = "Disable app haptics"; "Disables haptics/vibrations within the app" = "Disables haptics/vibrations within the app"; "Do not save recent searches" = "Do not save recent searches"; -"Download GIF comments" = "Download GIF comments"; +"Download GIF & image comments" = "Download GIF & image comments"; +"Download image" = "Download image"; "Embed domain" = "Embed domain"; "Embed domain: %@" = "Embed domain: %@"; "Enable liquid glass buttons" = "Enable liquid glass buttons"; @@ -103,15 +116,23 @@ "Enable teen app icons" = "Enable teen app icons"; "Enables experimental liquid glass buttons" = "Enables experimental liquid glass buttons"; "Enables liquid glass tab bar, floating navigation, and other UI elements" = "Enables liquid glass tab bar, floating navigation, and other UI elements"; +"End" = "End"; "Experimental features" = "Experimental features"; +"Explore & search" = "Explore & search"; +"Failed to change icon" = "Failed to change icon"; +"Fixed" = "Fixed"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "Fixed prevents shrinking. Hide makes it disappear when scrolling down"; "Focus/distractions" = "Focus/distractions"; "General" = "General"; +"Gradient color" = "Gradient color"; "Hide ads" = "Hide ads"; "Hide explore posts grid" = "Hide explore posts grid"; "Hide friends map" = "Hide friends map"; "Hide Meta AI" = "Hide Meta AI"; "Hide metrics" = "Hide metrics"; "Hide notes tray" = "Hide notes tray"; +"Hide on scroll" = "Hide on scroll"; +"Hide TestFlight popup" = "Hide TestFlight popup"; "Hide trending searches" = "Hide trending searches"; "Hide UI on capture" = "Hide UI on capture"; "Hides all suggested users for you to follow, outside your feed" = "Hides all suggested users for you to follow, outside your feed"; @@ -123,10 +144,14 @@ "Hides the suggested broadcast channels in direct messages" = "Hides the suggested broadcast channels in direct messages"; "Hides the trending searches under the explore search bar" = "Hides the trending searches under the explore search bar"; "Hold down on the Instagram logo to change the app icon" = "Hold down on the Instagram logo to change the app icon"; +"Lets the photo sticker picker show videos too, not just photos" = "Lets the photo sticker picker show videos too, not just photos"; +"Liquid glass tab bar" = "Liquid glass tab bar"; "Live" = "Live"; "Long press on the eyedropper tool in stories to customize the text color more precisely" = "Long press on the eyedropper tool in stories to customize the text color more precisely"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color"; "Long-press the heart button in a live to hide or show the comments" = "Long-press the heart button in a live to hide or show the comments"; "Long-press the search tab to open a copied Instagram link" = "Long-press the search tab to open a copied Instagram link"; +"Master switch. When off, all per-surface toggles below are ignored." = "Master switch. When off, all per-surface toggles below are ignored."; "No suggested chats" = "No suggested chats"; "No suggested users" = "No suggested users"; "Notes" = "Notes"; @@ -135,25 +160,49 @@ "Open links in external browser" = "Open links in external browser"; "Opens links in Safari instead of Instagram's in-app browser" = "Opens links in Safari instead of Instagram's in-app browser"; "Privacy" = "Privacy"; -"Redacts RyukGram buttons from screenshots, screen recordings, and mirroring" = "Redacts RyukGram buttons from screenshots, screen recordings, and mirroring"; -"Removes all ads from the Instagram app" = "Removes all ads from the Instagram app"; +"Removes ads across enabled surfaces" = "Removes ads across enabled surfaces"; "Removes igsh, utm_source, and other tracking parameters from shared links" = "Removes igsh, utm_source, and other tracking parameters from shared links"; "Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs"; "Replace domain in shared links" = "Replace domain in shared links"; "Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker."; "Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc."; "Search bars will no longer save your recent searches" = "Search bars will no longer save your recent searches"; +"Selected" = "Selected"; "Sharing" = "Sharing"; +"Shopping" = "Shopping"; +"Skip sensitive content covers" = "Skip sensitive content covers"; +"Solid color" = "Solid color"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "Sponsored posts in main, contextual, video, and chaining feeds"; +"Sponsored posts on the explore grid" = "Sponsored posts on the explore grid"; +"Sponsored reels in the sundial feed" = "Sponsored reels in the sundial feed"; +"Start" = "Start"; +"Story ads and sponsored entries in the story tray" = "Story ads and sponsored entries in the story tray"; "Strip tracking from links" = "Strip tracking from links"; "Strip tracking params" = "Strip tracking params"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "Suppresses the \"It's time to update Instagram Beta\" nag"; +"Tap to apply" = "Tap to apply"; +"The selected icon will be saved and shown here the next time you open this page." = "The selected icon will be saved and shown here the next time you open this page."; "Toggle live comments" = "Toggle live comments"; "Use detailed color picker" = "Use detailed color picker"; +"Used across feed, stories, reels, and DMs." = "Used across feed, stories, reels, and DMs."; ////////////////////////////////////////////////////////////////////////////// // DATE FORMAT // // Settings → Date format tab // ////////////////////////////////////////////////////////////////////////////// +"%ld day ago" = "%ld day ago"; +"%ld days ago" = "%ld days ago"; +"%ld hour ago" = "%ld hour ago"; +"%ld hours ago" = "%ld hours ago"; +"%ld minute ago" = "%ld minute ago"; +"%ld minutes ago" = "%ld minutes ago"; +"%ld week ago" = "%ld week ago"; +"%ld weeks ago" = "%ld weeks ago"; +"%ldd" = "%ldd"; +"%ldh" = "%ldh"; +"%ldm" = "%ldm"; +"%ldw" = "%ldw"; "Alternate" = "Alternate"; "Always ask" = "Always ask"; "Balanced" = "Balanced"; @@ -171,12 +220,16 @@ "Explore" = "Explore"; "Fast" = "Fast"; "Feed" = "Feed"; +"Feed posts" = "Feed posts"; "High" = "High"; "Inbox" = "Inbox"; +"just now" = "just now"; "Low" = "Low"; "Max" = "Max"; "Medium" = "Medium"; "Mute/Unmute" = "Mute/Unmute"; +"Notes, comments, stories" = "Notes, comments, stories"; +"now" = "now"; "Open menu" = "Open menu"; "Pause/Play" = "Pause/Play"; "Profile" = "Profile"; @@ -196,6 +249,8 @@ "Action button" = "Action button"; "Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "Adds 'View profile picture' and 'View cover' to story tray long-press menus"; "Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below."; +"Choose Instagram's default feed or force the Following feed" = "Choose Instagram's default feed or force the Following feed"; +"Main feed" = "Main feed"; "Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it."; "Default tap action" = "Default tap action"; "Disable background refresh" = "Disable background refresh"; @@ -214,6 +269,11 @@ "Hides the story tray at the top" = "Hides the story tray at the top"; "Inserts a button row below like/comment/share on each post" = "Inserts a button row below like/comment/share on each post"; "Long press on media to expand in full-screen viewer" = "Long press on media to expand in full-screen viewer"; +"Start media muted" = "Start media muted"; +"Expanded videos open with sound off" = "Expanded videos open with sound off"; +"Enhanced media resolution" = "Enhanced media resolution"; +"Media saving" = "Media saving"; +"Spoof device profile so IG serves higher-quality images" = "Spoof device profile so IG serves higher-quality images"; "Media" = "Media"; "Media zoom" = "Media zoom"; "No suggested for you" = "No suggested for you"; @@ -228,10 +288,23 @@ "Removes suggested posts" = "Removes suggested posts"; "Scroll to top without refreshing when tapping Home" = "Scroll to top without refreshing when tapping Home"; "Show action button" = "Show action button"; +"Show date" = "Show date"; "Stories tray" = "Stories tray"; "Tapping Home does nothing when already on feed" = "Tapping Home does nothing when already on feed"; "Tray long-press actions" = "Tray long-press actions"; -"What happens on a single tap. Long-press always opens the full menu" = "What happens on a single tap. Long-press always opens the full menu"; +"Composer doesn't accept GIFs" = "Composer doesn't accept GIFs"; +"Copy GIF link" = "Copy GIF link"; +"Copy image link" = "Copy image link"; +"Custom GIF in comments" = "Custom GIF in comments"; +"Failed to build GIF model" = "Failed to build GIF model"; +"GIF link copied" = "GIF link copied"; +"Image" = "Image"; +"Image link copied" = "Image link copied"; +"Invalid Giphy URL" = "Invalid Giphy URL"; +"Long-press the GIF button to paste any Giphy URL" = "Long-press the GIF button to paste any Giphy URL"; +"Paste Giphy Link" = "Paste Giphy Link"; +"Paste a giphy.com URL or media ID" = "Paste a giphy.com URL or media ID"; +"Send" = "Send"; ////////////////////////////////////////////////////////////////////////////// // REELS // @@ -243,27 +316,40 @@ "Auto-scroll reels" = "Auto-scroll reels"; "Change what happens when you tap on a reel" = "Change what happens when you tap on a reel"; "Confirm reel refresh" = "Confirm reel refresh"; +"Custom speed" = "Custom speed"; "Disable auto-unmuting reels" = "Disable auto-unmuting reels"; "Disable scrolling reels" = "Disable scrolling reels"; "Disable tab button refresh" = "Disable tab button refresh"; "Doom scrolling limit" = "Doom scrolling limit"; +"e.g. 1.75" = "e.g. 1.75"; +"Enter a value between 0.5 and 2.0" = "Enter a value between 0.5 and 2.0"; "Forces the progress bar to appear on every reel" = "Forces the progress bar to appear on every reel"; +"Hide \"Made with Edits\" badge" = "Hide \"Made with Edits\" badge"; +"Hide friends avatars" = "Hide friends avatars"; "Hide reels header" = "Hide reels header"; +"Hide social context overlay" = "Hide social context overlay"; +"Hides the avatar bubbles next to the Friends tab in reels" = "Hides the avatar bubbles next to the Friends tab in reels"; +"Hides the Edits app promo pill on reels" = "Hides the Edits app promo pill on reels"; +"Hides the floating overlay showing who reposted or commented on reels" = "Hides the floating overlay showing who reposted or commented on reels"; "Hides the repost button on the reels sidebar" = "Hides the repost button on the reels sidebar"; "Hides the top navigation bar when watching reels" = "Hides the top navigation bar when watching reels"; "Hiding" = "Hiding"; +"Hold the 3-dot on any reel to open speed picker" = "Hold the 3-dot on any reel to open speed picker"; "IG default" = "IG default"; "IG default: native behavior. RyukGram: re-advances after swiping back." = "IG default: native behavior. RyukGram: re-advances after swiping back."; "Limits" = "Limits"; "Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "Limits the amount of reels available to scroll at any given time, and prevents refreshing"; "Only loads %@ %@" = "Only loads %@ %@"; "Places a button above the like/comment/share column on each reel" = "Places a button above the like/comment/share column on each reel"; +"Playback speed" = "Playback speed"; "Prevent doom scrolling" = "Prevent doom scrolling"; "Prevents reels from being scrolled to the next video" = "Prevents reels from being scrolled to the next video"; "Prevents reels from unmuting when the volume/silent button is pressed" = "Prevents reels from unmuting when the volume/silent button is pressed"; "RyukGram" = "RyukGram"; "Shows an alert when you trigger a reels refresh" = "Shows an alert when you trigger a reels refresh"; "Shows buttons to reveal and auto-fill the password on locked reels" = "Shows buttons to reveal and auto-fill the password on locked reels"; +"Swipe a reel left to open the author's profile" = "Swipe a reel left to open the author's profile"; +"Swipe left to profile" = "Swipe left to profile"; "Tap Controls" = "Tap Controls"; "Tap to mute on photo reels" = "Tap to mute on photo reels"; "Tapping the Reels tab while on reels does nothing" = "Tapping the Reels tab while on reels does nothing"; @@ -275,15 +361,19 @@ // Settings → Profile tab // ////////////////////////////////////////////////////////////////////////////// -"Adds a button next to the burger menu on profiles to copy username, name or bio" = "Adds a button next to the burger menu on profiles to copy username, name or bio"; +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "Adds a button to filter & sort any followers/following list. Resets when you leave."; "Adds a view option to the highlight long-press menu to open the cover in full-screen" = "Adds a view option to the highlight long-press menu to open the cover in full-screen"; "Copy note on long press" = "Copy note on long press"; +"Extra stats shown on each post and reel card in profile grids." = "Extra stats shown on each post and reel card in profile grids."; "Fake follower count" = "Fake follower count"; "Fake following count" = "Fake following count"; "Fake post count" = "Fake post count"; "Fake profile stats" = "Fake profile stats"; "Fake verified badge" = "Fake verified badge"; +"Fetch missing counts" = "Fetch missing counts"; +"Filter & sort lists" = "Filter & sort lists"; "Follow indicator" = "Follow indicator"; +"Follower & following lists" = "Follower & following lists"; "Follower count" = "Follower count"; "Following count" = "Following count"; "Long press a profile picture to open it in full-screen with zoom, share, and save" = "Long press a profile picture to open it in full-screen with zoom, share, and save"; @@ -291,12 +381,21 @@ "Long press to download directly (ignored when zoom is on)" = "Long press to download directly (ignored when zoom is on)"; "Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "Long-press gestures on profile elements — kept separate from the per-feature action buttons."; "Only affects your own profile header. Other users see the real numbers." = "Only affects your own profile header. Other users see the real numbers."; +"Override view count" = "Override view count"; "Post count" = "Post count"; -"Profile copy button" = "Profile copy button"; +"Profile card details" = "Profile card details"; +"Profile stats" = "Profile stats"; +"Render counts in shortened format." = "Render counts in shortened format."; "Save profile picture" = "Save profile picture"; +"Short numbers" = "Short numbers"; "Show a checkmark next to your name on your own profile" = "Show a checkmark next to your name on your own profile"; +"Show full follower count" = "Show full follower count"; +"Show full post count" = "Show full post count"; +"Show like count" = "Show like count"; +"Show upload date" = "Show upload date"; "Shows whether the profile user follows you" = "Shows whether the profile user follows you"; "Tap to set" = "Tap to set"; +"Uses Instagram's API. May hit rate limits." = "Uses Instagram's API. May hit rate limits."; "View highlight cover" = "View highlight cover"; "Zoom profile photo" = "Zoom profile photo"; @@ -305,23 +404,62 @@ // Settings → Saving tab // ////////////////////////////////////////////////////////////////////////////// +"Active, queued, and finished downloads" = "Active, queued, and finished downloads"; +"Auto-retry attempts" = "Auto-retry attempts"; +"Auto-retry failed downloads" = "Auto-retry failed downloads"; "Confirm before download" = "Confirm before download"; "Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media."; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "Don't pause downloads, encoding, or profile scans when you leave the app"; +"Download queue" = "Download queue"; "Downloads" = "Downloads"; "Downloads with %@ %@" = "Downloads with %@ %@"; "Enable long-press gesture" = "Enable long-press gesture"; "Finger count for long-press" = "Finger count for long-press"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads."; +"Keep running in background" = "Keep running in background"; "Legacy long-press gesture" = "Legacy long-press gesture"; "Long-press hold time" = "Long-press hold time"; "Master toggle for the deprecated gesture workflow (off by default)" = "Master toggle for the deprecated gesture workflow (off by default)"; +"Max simultaneous downloads" = "Max simultaneous downloads"; +"Open download manager" = "Open download manager"; "Press finger(s) for %@ %@" = "Press finger(s) for %@ %@"; -"Route saves into a dedicated album in Photos instead of the camera roll root" = "Route saves into a dedicated album in Photos instead of the camera roll root"; +"Retry automatically when a download drops on a network error" = "Retry automatically when a download drops on a network error"; +"Route saves into a custom album in Photos instead of the camera roll root" = "Route saves into a custom album in Photos instead of the camera roll root"; +"Run up to %@ %@ at once" = "Run up to %@ %@ at once"; "Save action" = "Save action"; -"Save to RyukGram album" = "Save to RyukGram album"; -"Saving" = "Saving"; +"Save to dedicated album" = "Save to dedicated album"; "Show a confirmation dialog before starting a download" = "Show a confirmation dialog before starting a download"; +"Try %@ more %@ before giving up" = "Try %@ more %@ before giving up"; "What happens after the gesture downloads" = "What happens after the gesture downloads"; -"When \"Save to RyukGram album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a dedicated \"RyukGram\" album in your Photos library." = "When \"Save to RyukGram album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a dedicated \"RyukGram\" album in your Photos library."; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu failed"; +"%lu of %lu done" = "%lu of %lu done"; +"%lu saved, %lu failed" = "%lu saved, %lu failed"; +"Active" = "Active"; +"Auto-retry" = "Auto-retry"; +"Clear completed" = "Clear completed"; +"Completed" = "Completed"; +"Download settings" = "Download settings"; +"Downloading %lu items" = "Downloading %lu items"; +"Downloading…" = "Downloading…"; +"Encoding %d%%" = "Encoding %d%%"; +"Encoding…" = "Encoding…"; +"Extra downloads wait in line and start as slots free up." = "Extra downloads wait in line and start as slots free up."; +"No downloads yet" = "No downloads yet"; +"Preview" = "Preview"; +"Queued" = "Queued"; +"Redownload" = "Redownload"; +"Retry" = "Retry"; +"Retrying…" = "Retrying…"; +"Waiting for connection…" = "Waiting for connection…"; +"Waiting…" = "Waiting…"; ////////////////////////////////////////////////////////////////////////////// // STORIES // @@ -354,19 +492,24 @@ "Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on"; "Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server"; "Master toggle. When off, the list is ignored" = "Master toggle. When off, the list is ignored"; -"Other" = "Other"; "Playback" = "Playback"; -"Quick list button in stories" = "Quick list button in stories"; "Search, sort, swipe to remove" = "Search, sort, swipe to remove"; "Seen receipts" = "Seen receipts"; "Sending a reply or emoji reaction automatically advances to the next story" = "Sending a reply or emoji reaction automatically advances to the next story"; -"Show mentioned users in eye button and story menu" = "Show mentioned users in eye button and story menu"; -"Shows an eye button on stories to add/remove users from the list. Off = use the 3-dot menu or long-press only" = "Shows an eye button on stories to add/remove users from the list. Off = use the 3-dot menu or long-press only"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "Adds a 'View mentions' entry to the action button menu and story 3-dot menu"; +"Mentions overlay button" = "Mentions overlay button"; +"Mentions count badge" = "Mentions count badge"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "Shows the number of unique mentioned accounts as a red badge on the overlay button"; +"Hide stories midcards" = "Hide stories midcards"; +"Removes the Trending and Music promo cards from the stories tray" = "Removes the Trending and Music promo cards from the stories tray"; "Stickers" = "Stickers"; -"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force Quiz brings the legacy Quiz sticker back into the story composer tray." = "Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force Quiz brings the legacy Quiz sticker back into the story composer tray."; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer."; "Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally."; -"Force Quiz sticker in tray" = "Force Quiz sticker in tray"; -"Adds Quiz back to the story sticker picker" = "Adds Quiz back to the story sticker picker"; +"Force legacy stickers in tray" = "Force legacy stickers in tray"; +"Adds Quiz and Reveal stickers back to the picker" = "Adds Quiz and Reveal stickers back to the picker"; +"Bypass Reveal sticker" = "Bypass Reveal sticker"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "Skip the DM-to-reveal step on stories with a Reveal sticker"; "Show quiz answer" = "Show quiz answer"; "Circle the correct option on quiz stickers, or the leading option on polls" = "Circle the correct option on quiz stickers, or the leading option on polls"; "Show poll vote counts" = "Show poll vote counts"; @@ -403,20 +546,21 @@ "Activity" = "Activity"; "Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio"; +"Allows typing and sending DMs longer than Instagram's limit" = "Allows typing and sending DMs longer than Instagram's limit"; "Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram"; "Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages"; "Adds copy text, download GIF/audio to the note long-press menu" = "Adds copy text, download GIF/audio to the note long-press menu"; "Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove."; "Block keep-deleted for excluded chats" = "Block keep-deleted for excluded chats"; "Block keep-deleted for unlisted chats" = "Block keep-deleted for unlisted chats"; +"Bypass DM character limit" = "Bypass DM character limit"; "Chat list" = "Chat list"; "Confirmation dialog before clearing preserved messages" = "Confirmation dialog before clearing preserved messages"; "Copies note text directly on long press without opening the menu" = "Copies note text directly on long press without opening the menu"; "Copy text on hold" = "Copy text on hold"; -"Custom emojis and background/text colors" = "Custom emojis and background/text colors"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "Adds a paintbrush button and long-press shortcut to pick custom background and text colors"; "Custom note themes" = "Custom note themes"; "Disable vanish mode swipe" = "Disable vanish mode swipe"; -"Disable screenshot detection" = "Disable screenshot detection"; "Disable typing status" = "Disable typing status"; "Disable view-once limitations" = "Disable view-once limitations"; "Download voice messages" = "Download voice messages"; @@ -426,20 +570,26 @@ "Files" = "Files"; "Full last active date" = "Full last active date"; "Hide reels blend button" = "Hide reels blend button"; +"Hide send to group chat" = "Hide send to group chat"; +"Pin recipients on long-press" = "Pin recipients on long-press"; +"Long-press in the share sheet to pin a chat/user to the top" = "Long-press in the share sheet to pin a chat/user to the top"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "Long-press a recipient to pin or unpin. Pinned recipients render at the top."; +"Recipient pinned" = "Recipient pinned"; +"Recipient unpinned" = "Recipient unpinned"; +"Couldn't resolve recipient id" = "Couldn't resolve recipient id"; "Hide video call button" = "Hide video call button"; "Hide voice call button" = "Hide voice call button"; "Hides the blend button in DMs" = "Hides the blend button in DMs"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "Removes the create/send to group chat row when sharing to multiple recipients"; "Hides typing indicator from others" = "Hides typing indicator from others"; "Indicate unsent messages" = "Indicate unsent messages"; "Keep deleted messages" = "Keep deleted messages"; "Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "Makes view-once messages behave like normal visual messages (loopable/pauseable)"; "Note actions" = "Note actions"; -"Preserve messages that others unsend" = "Preserve messages that others unsend"; "Preserves messages that others unsend" = "Preserves messages that others unsend"; "Prevents accidental swipe-up activation of vanish mode" = "Prevents accidental swipe-up activation of vanish mode"; "Quick list button in chats" = "Quick list button in chats"; "Removes the audio call button from DM thread header" = "Removes the audio call button from DM thread header"; -"Removes the screenshot-prevention features for visual messages in DMs" = "Removes the screenshot-prevention features for visual messages in DMs"; "Removes the video call button from DM thread header" = "Removes the video call button from DM thread header"; "Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled"; "Search, sort, swipe to remove or toggle keep-deleted" = "Search, sort, swipe to remove or toggle keep-deleted"; @@ -456,13 +606,127 @@ "Which chats get read-receipt blocking" = "Which chats get read-receipt blocking"; "⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog."; +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu deleted"; +"%lu messages from %lu users" = "%lu messages from %lu users"; +"%lu selected" = "%lu selected"; +"Absolute date + time" = "Absolute date + time"; +"Adjust the filters or clear the search to see more." = "Adjust the filters or clear the search to see more."; +"All time" = "All time"; +"Browse, filter and search recorded messages" = "Browse, filter and search recorded messages"; +"Captures unsent messages with their text or media" = "Captures unsent messages with their text or media"; +"Clear deleted-message log?" = "Clear deleted-message log?"; +"Clear from this user" = "Clear from this user"; +"Clear log" = "Clear log"; +"Clear log for this account" = "Clear log for this account"; +"Clear log for this user?" = "Clear log for this user?"; +"Clear media files" = "Clear media files"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account."; +"Close" = "Close"; +"Content unavailable" = "Content unavailable"; +"Copied" = "Copied"; +"Copy URL" = "Copy URL"; +"Date range" = "Date range"; +"Deleted messages" = "Deleted messages"; +"Deleted messages log" = "Deleted messages log"; +"Deleted: %@\n" = "Deleted: %@\n"; +"Edit %lu" = "Edit %lu"; +"Edit history" = "Edit history"; +"Edited" = "Edited"; +"Empty" = "Empty"; +"Enable deleted messages log" = "Enable deleted messages log"; +"Enable Settings → Messages → Deleted messages log to start recording." = "Enable Settings → Messages → Deleted messages log to start recording."; +"GIF" = "GIF"; +"Hashtag" = "Hashtag"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "Kind: %@\n"; +"Last 30 days" = "Last 30 days"; +"Last 7 days" = "Last 7 days"; +"Link" = "Link"; +"Live location" = "Live location"; +"Location" = "Location"; +"Logging is off" = "Logging is off"; +"Media on disk" = "Media on disk"; +"Most messages" = "Most messages"; +"Most recent" = "Most recent"; +"No deleted messages yet" = "No deleted messages yet"; +"No matches" = "No matches"; +"Nothing to save" = "Nothing to save"; +"Oldest first" = "Oldest first"; +"Open log" = "Open log"; +"Open profile" = "Open profile"; +"Original" = "Original"; +"Play" = "Play"; +"Post" = "Post"; +"Records every message someone unsends, grouped by sender" = "Records every message someone unsends, grouped by sender"; +"Reel" = "Reel"; +"Relative (1m / 3h / 3d ago)" = "Relative (1m / 3h / 3d ago)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "Removes every preserved deleted message and its captured media for the current account. This cannot be undone."; +"Removes every preserved deleted message and its captured media for this account." = "Removes every preserved deleted message and its captured media for this account."; +"Removes every preserved deleted message from this sender." = "Removes every preserved deleted message from this sender."; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "Removes every saved photo, video and voice clip. Records keep their text and sender info."; +"Search messages" = "Search messages"; +"Search senders or messages" = "Search senders or messages"; +"Select" = "Select"; +"Show edit history" = "Show edit history"; +"Source URL recorded but media not stored.\n" = "Source URL recorded but media not stored.\n"; +"Sticker" = "Sticker"; +"Tap to open in Instagram" = "Tap to open in Instagram"; +"Tap to open in Maps" = "Tap to open in Maps"; +"Tap to play" = "Tap to play"; +"Tap to play · %@" = "Tap to play · %@"; +"Text" = "Text"; +"This account" = "This account"; +"Unknown" = "Unknown"; +"Video" = "Video"; +"View" = "View"; +"Voice" = "Voice"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history."; +"When someone unsends a message, it will appear here grouped by sender." = "When someone unsends a message, it will appear here grouped by sender."; + ////////////////////////////////////////////////////////////////////////////// // MESSAGES // // Settings → Messages tab // ////////////////////////////////////////////////////////////////////////////// +"Custom chat background" = "Custom chat background"; +"Incoming calls stay silent — no ring, no screen, no notification" = "Incoming calls stay silent — no ring, no screen, no notification"; "Messages" = "Messages"; +"Silence incoming calls" = "Silence incoming calls"; "Threads" = "Threads"; +"Use your own images as chat backgrounds" = "Use your own images as chat backgrounds"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "Adds a gallery button to the instants camera so you can send a photo from your album"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries"; +"All loaded instants" = "All loaded instants"; +"Bypasses the Instants screenshot block" = "Bypasses the Instants screenshot block"; +"Could not locate the instant on screen" = "Could not locate the instant on screen"; +"Current instant" = "Current instant"; +"In-app Gallery" = "In-app Gallery"; +"Instant" = "Instant"; +"Instants" = "Instants"; +"Instants action button" = "Instants action button"; +"No instants currently loaded" = "No instants currently loaded"; +"No media available to save" = "No media available to save"; +"Photos library" = "Photos library"; +"Pick from" = "Pick from"; +"Queued %lu instants" = "Queued %lu instants"; +"Save all to Gallery" = "Save all to Gallery"; +"Save all to Photos" = "Save all to Photos"; +"Save to Gallery" = "Save to Gallery"; +"Send from gallery" = "Send from gallery"; +"Tweaks for the QuickSnap / Instants camera surface." = "Tweaks for the QuickSnap / Instants camera surface."; +"Use" = "Use"; ////////////////////////////////////////////////////////////////////////////// // NAVIGATION // @@ -499,46 +763,236 @@ // Settings → Confirm actions tab // ////////////////////////////////////////////////////////////////////////////// +"All" = "All"; +"Calls" = "Calls"; +"Comments & posts" = "Comments & posts"; "Confirm actions" = "Confirm actions"; -"Confirm video call" = "Confirm video call"; -"Confirm voice call" = "Confirm voice call"; "Confirm changing theme" = "Confirm changing theme"; "Confirm follow" = "Confirm follow"; "Confirm follow requests" = "Confirm follow requests"; +"Confirm Instants capture" = "Confirm Instants capture"; +"Confirm Instants emoji reaction" = "Confirm Instants emoji reaction"; "Confirm like: Posts" = "Confirm like: Posts"; "Confirm like: Reels" = "Confirm like: Reels"; +"Confirm note emoji reaction" = "Confirm note emoji reaction"; +"Confirm note like" = "Confirm note like"; "Confirm posting comment" = "Confirm posting comment"; "Confirm repost" = "Confirm repost"; -"Confirm vanish mode" = "Confirm vanish mode"; -"Confirm sticker interaction (stories)" = "Confirm sticker interaction (stories)"; +"Confirm send to group chat" = "Confirm send to group chat"; "Confirm sticker interaction (highlights)" = "Confirm sticker interaction (highlights)"; +"Confirm sticker interaction (stories)" = "Confirm sticker interaction (stories)"; "Confirm story emoji reaction" = "Confirm story emoji reaction"; "Confirm story like" = "Confirm story like"; +"Confirm switching Instant" = "Confirm switching Instant"; "Confirm unfollow" = "Confirm unfollow"; +"Confirm vanish mode" = "Confirm vanish mode"; +"Confirm video call" = "Confirm video call"; +"Confirm voice call" = "Confirm voice call"; "Confirm voice messages" = "Confirm voice messages"; +"Follows" = "Follows"; +"Likes" = "Likes"; +"Messaging" = "Messaging"; +"Reaction stickers only" = "Reaction stickers only"; +"Reactions" = "Reactions"; +"Send to group chat?" = "Send to group chat?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "Shows an alert before creating/sending to a group chat from the share sheet"; +"Shows an alert before sending an emoji reaction on a note" = "Shows an alert before sending an emoji reaction on a note"; "Shows an alert before sending an emoji reaction on a story" = "Shows an alert before sending an emoji reaction on a story"; +"Shows an alert before sending an emoji reaction on an Instant" = "Shows an alert before sending an emoji reaction on an Instant"; +"Shows an alert before taking a photo with the Instants camera" = "Shows an alert before taking a photo with the Instants camera"; +"Shows an alert before tapping to switch to the next/previous Instant" = "Shows an alert before tapping to switch to the next/previous Instant"; "Shows an alert to confirm before sending a voice message" = "Shows an alert to confirm before sending a voice message"; "Shows an alert to confirm before toggling vanish mode" = "Shows an alert to confirm before toggling vanish mode"; "Shows an alert when you accept/decline a follow request" = "Shows an alert when you accept/decline a follow request"; "Shows an alert when you change a chat theme to confirm" = "Shows an alert when you change a chat theme to confirm"; -"Shows an alert when you tap a sticker on someone's story" = "Shows an alert when you tap a sticker on someone's story"; -"Shows an alert when you tap a sticker inside a highlight" = "Shows an alert when you tap a sticker inside a highlight"; -"Shows an alert when you click the video call button to confirm before calling" = "Shows an alert when you click the video call button to confirm before calling"; -"Shows an alert when you click the voice call button to confirm before calling" = "Shows an alert when you click the voice call button to confirm before calling"; "Shows an alert when you click the follow button to confirm the follow" = "Shows an alert when you click the follow button to confirm the follow"; +"Shows an alert when you click the like button on notes to confirm the like" = "Shows an alert when you click the like button on notes to confirm the like"; "Shows an alert when you click the like button on posts to confirm the like" = "Shows an alert when you click the like button on posts to confirm the like"; "Shows an alert when you click the like button on reels to confirm the like" = "Shows an alert when you click the like button on reels to confirm the like"; "Shows an alert when you click the like button on stories to confirm the like" = "Shows an alert when you click the like button on stories to confirm the like"; "Shows an alert when you click the post comment button to confirm" = "Shows an alert when you click the post comment button to confirm"; -"Shows an alert when you click the repost button to confirm before resposting" = "Shows an alert when you click the repost button to confirm before resposting"; +"Shows an alert when you click the repost button to confirm before reposting" = "Shows an alert when you click the repost button to confirm before resposting"; "Shows an alert when you click the unfollow button to confirm" = "Shows an alert when you click the unfollow button to confirm"; +"Shows an alert when you click the video call button to confirm before calling" = "Shows an alert when you click the video call button to confirm before calling"; +"Shows an alert when you click the voice call button to confirm before calling" = "Shows an alert when you click the voice call button to confirm before calling"; +"Shows an alert when you tap a sticker inside a highlight" = "Shows an alert when you tap a sticker inside a highlight"; +"Shows an alert when you tap a sticker on someone's story" = "Shows an alert when you tap a sticker on someone's story"; +"Stories & highlights" = "Stories & highlights"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld h"; +"%ld locked" = "%ld locked"; +"%ld min" = "%ld min"; +"%ldh idle" = "%ldh idle"; +"%ldm idle" = "%ldm idle"; +"%lds" = "%lds"; +"%lds idle" = "%lds idle"; +"%lu hidden" = "%lu hidden"; +"4 digits" = "4 digits"; +"6 digits" = "6 digits"; +"Add hidden chat" = "Add hidden chat"; +"Add locked chat" = "Add locked chat"; +"Allow Instants screenshots" = "Allow Instants screenshots"; +"Always ask when opening again" = "Always ask when opening again"; +"Ask again after Instagram returns" = "Ask again after Instagram returns"; +"Auto-relock after idle" = "Auto-relock after idle"; +"Balanced default" = "Balanced default"; +"Best for sensitive sections" = "Best for sensitive sections"; +"Biometric" = "Biometric"; +"Change passcode" = "Change passcode"; +"Chat hidden" = "Chat hidden"; +"Chat locked" = "Chat locked"; +"Chat unlocked" = "Chat unlocked"; +"Choose a code you'll remember." = "Choose a code you'll remember."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background."; +"Confirm current passcode" = "Confirm current passcode"; +"Confirm passcode" = "Confirm passcode"; +"Could not save passcode" = "Could not save passcode"; +"Create passcode" = "Create passcode"; +"Derivation failed" = "Derivation failed"; +"DM inbox" = "DM inbox"; +"Don't share unlock" = "Don't share unlock"; +"Each target has its own enable, timeout, and re-lock configuration." = "Each target has its own enable, timeout, and re-lock configuration."; +"Enable lock" = "Enable lock"; +"Enter passcode" = "Enter passcode"; +"Enter value" = "Enter value"; +"Enter your current passcode to change it" = "Enter your current passcode to change it"; +"Enter your current passcode to reset it" = "Enter your current passcode to reset it"; +"Enter your passcode to continue" = "Enter your passcode to continue"; +"every use" = "every use"; +"Every use" = "Every use"; +"Hidden chats" = "Hidden chats"; +"Hide chat" = "Hide chat"; +"Hide message preview" = "Hide message preview"; +"Hide this chat?" = "Hide this chat?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts."; +"Idle timeout" = "Idle timeout"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "Keep this target locked separately"; +"Less frequent prompts" = "Less frequent prompts"; +"Lock" = "Lock"; +"Lock chat" = "Lock chat"; +"Lock every time" = "Lock every time"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "Lock every time overrides idle timeout. Don't share unlock keeps this target separate."; +"Lock targets" = "Lock targets"; +"Lock the tweak" = "Lock the tweak"; +"Lock this chat" = "Lock this chat"; +"Lock this chat?" = "Lock this chat?"; +"Lock with passcode" = "Lock with passcode"; +"Locked chats" = "Locked chats"; +"Long-press a chat to lock it individually" = "Long-press a chat to lock it individually"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list."; +"Long-press a DM to add" = "Long-press a DM to add"; +"Longest idle window" = "Longest idle window"; +"Manage locked chats" = "Manage locked chats"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "Master switch. Turn off to disable every lock target without losing per-target configuration."; +"Never" = "Never"; +"No passcode set" = "No passcode set"; +"Nothing here yet." = "Nothing here yet."; +"Off" = "Off"; +"On" = "On"; +"On — %@" = "On — %@"; +"On — %@ + %ld more" = "On — %@ + %ld more"; +"On — no targets enabled" = "On — no targets enabled"; +"Passcode" = "Passcode"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app."; +"Passcode changed" = "Passcode changed"; +"Passcode reset" = "Passcode reset"; +"Passcode set" = "Passcode set"; +"Passcode too short" = "Passcode too short"; +"Passcodes did not match — try again" = "Passcodes did not match — try again"; +"Per-chat locks" = "Per-chat locks"; +"Prompt before Instagram opens" = "Prompt before Instagram opens"; +"Prompt before Profile Analyzer opens" = "Prompt before Profile Analyzer opens"; +"Prompt before the deleted-messages log opens" = "Prompt before the deleted-messages log opens"; +"Prompt before the gallery opens" = "Prompt before the gallery opens"; +"Prompt before tweak settings open" = "Prompt before tweak settings open"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "Prompt on every entry to the DM inbox, including launch-to-messages"; +"Re-enter the same passcode" = "Re-enter the same passcode"; +"Re-lock on background" = "Re-lock on background"; +"re-lock on bg" = "re-lock on bg"; +"Recently hidden" = "Recently hidden"; +"Recently locked" = "Recently locked"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "Redact RyukGram buttons from screenshots, screen recordings, and mirroring"; +"Remove screenshot alert" = "Remove screenshot alert"; +"Replace inbox preview with • • •" = "Replace inbox preview with • • •"; +"Require passcode for this section" = "Require passcode for this section"; +"Requires your current passcode" = "Requires your current passcode"; +"Reset passcode" = "Reset passcode"; +"Reset passcode?" = "Reset passcode?"; +"Screenshots & capture" = "Screenshots & capture"; +"Security & Privacy" = "Security & Privacy"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself."; +"Set passcode" = "Set passcode"; +"Short idle window" = "Short idle window"; +"Stay unlocked until app close or background" = "Stay unlocked until app close or background"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media"; +"Tap Unlock" = "Tap Unlock"; +"Tap Unlock or enter your passcode" = "Tap Unlock or enter your passcode"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched."; +"Thread %@" = "Thread %@"; +"Tweak settings" = "Tweak settings"; +"Unlock" = "Unlock"; +"Unlock %@" = "Unlock %@"; +"Unlock chat" = "Unlock chat"; +"Unlock Instagram" = "Unlock Instagram"; +"Unlock this chat" = "Unlock this chat"; +"Use %@" = "Use %@"; +"Username (looks up the DM thread) or raw thread ID" = "Username (looks up the DM thread) or raw thread ID"; +"Username or thread ID" = "Username or thread ID"; +"Wrong passcode" = "Wrong passcode"; +"Wrong passcode • %ld attempts" = "Wrong passcode • %ld attempts"; ////////////////////////////////////////////////////////////////////////////// // BACKUP & RESTORE // // Settings → Backup & Restore tab // ////////////////////////////////////////////////////////////////////////////// +"%lu account(s)" = "%lu account(s)"; +"%lu account(s) · %lu image(s) · %@" = "%lu account(s) · %lu image(s) · %@"; +"%lu file(s) · %@" = "%lu file(s) · %@"; +"%lu preferences" = "%lu preferences"; +"(none)" = "(none)"; +"Apply backup?" = "Apply backup?"; +"Applying backup…" = "Applying backup…"; +"archive error" = "archive error"; +"Archived snapshots" = "Archived snapshots"; "Backup & Restore" = "Backup & Restore"; +"Backup exported" = "Backup exported"; +"Backup failed" = "Backup failed"; +"Backup has no importable sections." = "Backup has no importable sections."; +"Chat & story filters" = "Chat & story filters"; +"Chat backgrounds" = "Chat backgrounds"; +"Clear selected data" = "Clear selected data"; +"Corrupt entry path." = "Corrupt entry path."; +"Could not decompress archive." = "Could not decompress archive."; +"Could not open archive." = "Could not open archive."; +"Could not open staging file." = "Could not open staging file."; +"Could not read the backup archive." = "Could not read the backup archive."; +"Could not write archive." = "Could not write archive."; +"Could not write backup file." = "Could not write backup file."; +"Could not write extracted file." = "Could not write extracted file."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak."; +"Hidden & locked chats" = "Hidden & locked chats"; +"Import" = "Import"; +"Inspect the full manifest" = "Inspect the full manifest"; +"Load a .json or .ryukbak backup" = "Load a .json or .ryukbak backup"; +"Not a RyukGram backup archive." = "Not a RyukGram backup archive."; +"PK %@" = "PK %@"; +"Preparing backup…" = "Preparing backup…"; +"Reading backup…" = "Reading backup…"; +"Save settings or a full backup" = "Save settings or a full backup"; +"Tick what to apply. Rows not in this backup are hidden." = "Tick what to apply. Rows not in this backup are hidden."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle."; +"Truncated entry data." = "Truncated entry data."; +"Truncated entry length." = "Truncated entry length."; +"Truncated entry path." = "Truncated entry path."; +"Unsafe entry path." = "Unsafe entry path."; ////////////////////////////////////////////////////////////////////////////// // ADVANCED // @@ -554,27 +1008,32 @@ "Clear" = "Clear"; "Clear cache" = "Clear cache"; "Clear cache (%@)" = "Clear cache (%@)"; -"Clear cache?" = "Clear cache?"; "Clearing cache…" = "Clearing cache…"; "Clearing still scans on demand." = "Clearing still scans on demand."; "Daily" = "Daily"; "Disable safe mode" = "Disable safe mode"; "Enable tweak settings quick-access" = "Enable tweak settings quick-access"; -"Free %@ of Instagram cache. A restart is recommended." = "Free %@ of Instagram cache. A restart is recommended."; -"Freed %@. Restart to apply." = "Freed %@. Restart to apply."; +"Fix duplicate notifications" = "Fix duplicate notifications"; +"Free %@ of Instagram cache." = "Free %@ of Instagram cache."; +"Freed %@" = "Freed %@"; "Hold on the home tab to open RyukGram settings" = "Hold on the home tab to open RyukGram settings"; -"Instagram" = "Instagram"; "Monthly" = "Monthly"; "Nothing to clear" = "Nothing to clear"; "Off skips the size scan when Advanced opens." = "Off skips the size scan when Advanced opens."; "Pause playback when opening settings" = "Pause playback when opening settings"; +"Always show what's new" = "Always show what's new"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "Keep the blue dot on every new feature instead of clearing it once viewed"; +"Preserve messages database" = "Preserve messages database"; "Pauses any playing video/audio when settings opens" = "Pauses any playing video/audio when settings opens"; "Prevents Instagram from resetting settings after crashes (at your own risk)" = "Prevents Instagram from resetting settings after crashes (at your own risk)"; +"Prevents two banners for the same message when IG is in the foreground" = "Prevents two banners for the same message when IG is in the foreground"; "Remove Instagram's cached images, videos, and temporary files." = "Remove Instagram's cached images, videos, and temporary files."; "Reset onboarding state" = "Reset onboarding state"; "Run a silent cache clear on launch when the interval has elapsed." = "Run a silent cache clear on launch when the interval has elapsed."; "Show cache size" = "Show cache size"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "Skip the messages database when clearing — keeps DMs, drafts, and saved messages."; "Show tweak settings on app launch" = "Show tweak settings on app launch"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it."; "Weekly" = "Weekly"; ////////////////////////////////////////////////////////////////////////////// @@ -629,7 +1088,7 @@ "Delete an imported override and fall back to the shipped strings" = "Delete an imported override and fall back to the shipped strings"; "Deleted %@ override. Restart to apply." = "Deleted %@ override. Restart to apply."; "Enable FLEX gesture" = "Enable FLEX gesture"; -"Export English strings" = "Export English strings"; +"Export strings" = "Export strings"; "Hold 5 fingers on the screen to open FLEX" = "Hold 5 fingers on the screen to open FLEX"; "I have %@%@" = "I have %@%@"; "Import a .strings file for a language" = "Import a .strings file for a language"; @@ -644,9 +1103,10 @@ "Open FLEX on app launch" = "Open FLEX on app launch"; "Opens FLEX when the app is focused" = "Opens FLEX when the app is focused"; "Opens FLEX when the app launches" = "Opens FLEX when the app launches"; +"Pick a language and share its .strings file" = "Pick a language and share its .strings file"; "Pick a language to delete the imported file" = "Pick a language to delete the imported file"; +"Pick a language to export" = "Pick a language to export"; "Reset localization" = "Reset localization"; -"Share the base English .strings file for translating" = "Share the base English .strings file for translating"; "Static Cell" = "Static Cell"; "Stepper cell" = "Stepper cell"; "Switch Cell" = "Switch Cell"; @@ -663,34 +1123,39 @@ ////////////////////////////////////////////////////////////////////////////// "%@ settings" = "%@ settings"; +"%lu items" = "%lu items"; "Cancelled" = "Cancelled"; +"Carousel" = "Carousel"; +"Carousel · %lu items" = "Carousel · %lu items"; "Copied %lu URLs" = "Copied %lu URLs"; "Copied caption" = "Copied caption"; "Copied download URL" = "Copied download URL"; +"Copied quality info" = "Copied quality info"; +"Copied video URL" = "Copied video URL"; "Copy all URLs" = "Copy all URLs"; "Copy caption" = "Copy caption"; "Copy download URL" = "Copy download URL"; "Could not extract any URLs" = "Could not extract any URLs"; +"Could not extract audio URL" = "Could not extract audio URL"; "Could not extract media URL" = "Could not extract media URL"; "Could not extract photo URL" = "Could not extract photo URL"; "Could not extract video URL" = "Could not extract video URL"; "Done" = "Done"; -"Download all (%lu)" = "Download all (%lu)"; "Download all stories and share?" = "Download all stories and share?"; "Download all to Photos" = "Download all to Photos"; "Download and share all" = "Download and share all"; -"Download and share?" = "Download and share?"; "Download failed" = "Download failed"; "Downloaded %lu items" = "Downloaded %lu items"; -"Downloading %@..." = "Downloading %@..."; -"Downloading..." = "Downloading..."; +"Downloading audio…" = "Downloading audio…"; "Failed to save" = "Failed to save"; +"File" = "File"; +"HD" = "HD"; "HD download complete" = "HD download complete"; +"HD video" = "HD video"; "Mute audio" = "Mute audio"; "No caption on this post" = "No caption on this post"; "No carousel children" = "No carousel children"; "No cover image" = "No cover image"; -"No files downloaded" = "No files downloaded"; "No media" = "No media"; "No media to expand" = "No media to expand"; "No media to show" = "No media to show"; @@ -699,22 +1164,22 @@ "No URLs found" = "No URLs found"; "No video URL" = "No video URL"; "Not a carousel" = "Not a carousel"; -"Nothing to save" = "Nothing to save"; "Nothing to share" = "Nothing to share"; -"Opening creator..." = "Opening creator..."; +"Opening creator…" = "Opening creator…"; "Photo library access denied" = "Photo library access denied"; "Photos access denied" = "Photos access denied"; -"Preparing repost..." = "Preparing repost..."; +"Preparing repost…" = "Preparing repost…"; +"Raw image" = "Raw image"; "Repost" = "Repost"; "Repost unavailable" = "Repost unavailable"; -"Save all stories to Photos?" = "Save all stories to Photos?"; "Save failed" = "Save failed"; -"Save to Photos?" = "Save to Photos?"; "Saved %lu items" = "Saved %lu items"; "Saved to Photos" = "Saved to Photos"; "Saved to RyukGram" = "Saved to RyukGram"; -"Tap to cancel" = "Tap to cancel"; +"Saving to Photos" = "Saving to Photos"; +"Saving…" = "Saving…"; "Unmute audio" = "Unmute audio"; +"Video · %@" = "Video · %@"; "View cover" = "View cover"; "View mentions" = "View mentions"; @@ -724,68 +1189,76 @@ // inside DM threads. // ////////////////////////////////////////////////////////////////////////////// +" %lu votes · avg %.0f%% " = " %lu votes · avg %.0f%% "; +"%@ can't be converted" = "%@ can't be converted"; +"%@ unsent a message" = "%@ unsent a message"; +"%@ unsent a message from %@" = "%@ unsent a message from %@"; "A message was unsent" = "A message was unsent"; "Add" = "Add"; "Add to block list" = "Add to block list"; -"Add to block list?" = "Add to block list?"; "Added to block list" = "Added to block list"; "Added to exclude list" = "Added to exclude list"; "Audio not loaded yet. Play the message first and try again." = "Audio not loaded yet. Play the message first and try again."; "Audio sent" = "Audio sent"; +"Audio URL not available" = "Audio URL not available"; "Audio/Video from Files" = "Audio/Video from Files"; "Blocked" = "Blocked"; "Cancel" = "Cancel"; "Clear preserved messages?" = "Clear preserved messages?"; -"Converting..." = "Converting..."; +"Converting…" = "Converting…"; +"Copy link" = "Copy link"; "Copy text" = "Copy text"; +"Could not copy selected video" = "Could not copy selected video"; "Could not find media" = "Could not find media"; "Could not find story media" = "Could not find story media"; "Could not get audio data. Try again after refreshing the chat." = "Could not get audio data. Try again after refreshing the chat."; -"Could not get video URL" = "Could not get video URL"; "Disable read receipts" = "Disable read receipts"; "Disappearing media" = "Disappearing media"; -"Done!" = "Done!"; "Download audio" = "Download audio"; -"Downloading audio..." = "Downloading audio..."; "Enable read receipts" = "Enable read receipts"; "Error: %@" = "Error: %@"; "Exclude chat" = "Exclude chat"; "Exclude from seen" = "Exclude from seen"; "Exclude story seen" = "Exclude story seen"; "Excluded" = "Excluded"; -"Extracting audio..." = "Extracting audio..."; -"Failed to encode GIF" = "Failed to encode GIF"; +"Extracting audio…" = "Extracting audio…"; +"FFmpeg conversion failed" = "FFmpeg conversion failed"; "File sending not supported" = "File sending not supported"; "Follow" = "Follow"; "Following" = "Following"; +"Format not supported without FFmpegKit" = "Format not supported without FFmpegKit"; "Inserts a button on disappearing media overlays" = "Inserts a button on disappearing media overlays"; "Inserts a speaker button to mute/unmute disappearing media" = "Inserts a speaker button to mute/unmute disappearing media"; "Inserts an eye button to mark the current disappearing media as viewed" = "Inserts an eye button to mark the current disappearing media as viewed"; +"Link copied" = "Link copied"; "Mark as viewed" = "Mark as viewed"; "Mark messages as seen" = "Mark messages as seen"; "Mark seen" = "Mark seen"; -"Marked as seen" = "Marked as seen"; "Marked as viewed" = "Marked as viewed"; "Marked messages as seen" = "Marked messages as seen"; "Mentions" = "Mentions"; +"Message from %@ was unsent" = "Message from %@ was unsent"; "Message sender not found" = "Message sender not found"; "Messages settings" = "Messages settings"; -"Audio URL not available" = "Audio URL not available"; "Mute story audio" = "Mute story audio"; +"no audio track could be read" = "no audio track could be read"; "No audio URL found. Try again after refreshing the chat." = "No audio URL found. Try again after refreshing the chat."; "No mentions in this story" = "No mentions in this story"; "No thread key" = "No thread key"; +"No video selected" = "No video selected"; "No voice send method found" = "No voice send method found"; -"Note not found" = "Note not found"; +"Note has no downloadable content" = "Note has no downloadable content"; "Note text copied" = "Note text copied"; "Open GitHub" = "Open GitHub"; +"Pick audio or video" = "Pick audio or video"; "Read receipts disabled" = "Read receipts disabled"; "Read receipts enabled" = "Read receipts enabled"; "Read receipts will be blocked for this chat." = "Read receipts will be blocked for this chat."; "Read receipts will no longer be blocked for this chat." = "Read receipts will no longer be blocked for this chat."; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone."; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone."; "Remove" = "Remove"; "Remove from block list" = "Remove from block list"; -"Remove from block list?" = "Remove from block list?"; "Remove from exclude list" = "Remove from exclude list"; "Removed" = "Removed"; "Removed from list" = "Removed from list"; @@ -794,15 +1267,16 @@ "Send anyway" = "Send anyway"; "Send Audio" = "Send Audio"; "Send failed: %@" = "Send failed: %@"; +"Send File" = "Send File"; "Send service not found" = "Send service not found"; "Show audio toggle" = "Show audio toggle"; "Show mark-as-viewed button" = "Show mark-as-viewed button"; "Story read receipts disabled" = "Story read receipts disabled"; "Story read receipts enabled" = "Story read receipts enabled"; "This chat will resume normal read-receipt behavior." = "This chat will resume normal read-receipt behavior."; +"This file" = "This file"; "Total: %@" = "Total: %@"; "Un-exclude chat" = "Un-exclude chat"; -"Un-exclude chat?" = "Un-exclude chat?"; "Un-exclude story seen" = "Un-exclude story seen"; "Un-excluded" = "Un-excluded"; "Unblocked" = "Unblocked"; @@ -815,7 +1289,58 @@ "Visual messages will expire" = "Visual messages will expire"; "Visual messages: expiring" = "Visual messages: expiring"; "Visual messages: unlimited replay" = "Visual messages: unlimited replay"; -"Will sync when leaving stories" = "Will sync when leaving stories"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "Add Background"; +"Add Chat Background" = "Add Chat Background"; +"Adds your own image backgrounds to Instagram chats" = "Adds your own image backgrounds to Instagram chats"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right."; +"Blur" = "Blur"; +"Browse chats" = "Browse chats"; +"Browse chats (%ld)" = "Browse chats (%ld)"; +"Change Background" = "Change Background"; +"Change default" = "Change default"; +"Chat Backgrounds" = "Chat Backgrounds"; +"Choose an image used when no chat override exists" = "Choose an image used when no chat override exists"; +"Choose Image" = "Choose Image"; +"Clear default" = "Clear default"; +"Couldn't import image" = "Couldn't import image"; +"Custom Chat Background" = "Custom Chat Background"; +"Default background" = "Default background"; +"Delete library images, default background, and chat overrides" = "Delete library images, default background, and chat overrides"; +"Dim in dark mode" = "Dim in dark mode"; +"Edit image settings" = "Edit image settings"; +"Enable custom backgrounds" = "Enable custom backgrounds"; +"Enter a username, chat name, or thread ID." = "Enter a username, chat name, or thread ID."; +"Group" = "Group"; +"Image Settings" = "Image Settings"; +"Library" = "Library"; +"Library, default, and per-chat overrides will be deleted." = "Library, default, and per-chat overrides will be deleted."; +"No Custom" = "No Custom"; +"Opacity" = "Opacity"; +"Photo Library" = "Photo Library"; +"Pick default" = "Pick default"; +"Pinch + drag to position" = "Pinch + drag to position"; +"Quit and reopen Instagram for the change to take effect." = "Quit and reopen Instagram for the change to take effect."; +"Recently set" = "Recently set"; +"Remove the global fallback background" = "Remove the global fallback background"; +"Replace the default background image" = "Replace the default background image"; +"Reset all backgrounds" = "Reset all backgrounds"; +"Reset all backgrounds?" = "Reset all backgrounds?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "Reset sets opacity to 1.0, blur to 0, dim to 0."; +"RyukGram Gallery" = "RyukGram Gallery"; +"Search username, name, or thread ID" = "Search username, name, or thread ID"; +"Set as default" = "Set as default"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "Tap plus to add. Tap a background to edit, set as default, or delete."; +"This Chat Background" = "This Chat Background"; +"Thread ID" = "Thread ID"; +"Used only when a chat does not have its own custom background." = "Used only when a chat does not have its own custom background."; +"View and manage chats with custom backgrounds" = "View and manage chats with custom backgrounds"; ////////////////////////////////////////////////////////////////////////////// // GENERAL FEATURES // @@ -825,213 +1350,231 @@ "Add location" = "Add location"; "Add preset" = "Add preset"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched."; +"Apply & restart" = "Apply & restart"; +"Background" = "Background"; +"Behavior" = "Behavior"; "Change location" = "Change location"; -"Click the Apply button after this to see the emoji" = "Click the Apply button after this to see the emoji"; "Clipboard is not an Instagram URL" = "Clipboard is not an Instagram URL"; "Comments hidden" = "Comments hidden"; "Comments shown" = "Comments shown"; "Copied text to clipboard" = "Copied text to clipboard"; "Copy" = "Copy"; -"Copy all" = "Copy all"; "Copy bio" = "Copy bio"; -"Copy from profile" = "Copy from profile"; "Copy name" = "Copy name"; "Could not find cover image" = "Could not find cover image"; "Current: %@" = "Current: %@"; +"Dark" = "Dark"; "Disable" = "Disable"; "Download GIF" = "Download GIF"; "Dropped pin" = "Dropped pin"; +"Emoji" = "Emoji"; "Enable" = "Enable"; "Enable Location Services for Instagram in Settings to use your current location." = "Enable Location Services for Instagram in Settings to use your current location."; -"Enter Emoji Text" = "Enter Emoji Text"; +"Enter emoji" = "Enter emoji"; "Fake location" = "Fake location"; +"Force theme" = "Force theme"; +"Keyboard theme" = "Keyboard theme"; +"Light" = "Light"; "Location access denied" = "Location access denied"; "Location Services off" = "Location Services off"; "Name" = "Name"; "Nothing to copy" = "Nothing to copy"; +"Off, Light, Dark, or OLED" = "Off, Light, Dark, or OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "OLED chat theme"; "Open Settings" = "Open Settings"; +"Optional per-surface overrides. Each one is independent of the theme above." = "Optional per-surface overrides. Each one is independent of the theme above."; +"Override iOS appearance regardless of system mode" = "Override iOS appearance regardless of system mode"; +"Override the keyboard appearance when typing" = "Override the keyboard appearance when typing"; "Pick location" = "Pick location"; +"Pure black DM thread + incoming bubbles" = "Pure black DM thread + incoming bubbles"; +"Reset theme" = "Reset theme"; +"Restart Instagram to apply your theme changes" = "Restart Instagram to apply your theme changes"; "Save" = "Save"; "Save preset" = "Save preset"; "Saved locations" = "Saved locations"; "Select color" = "Select color"; "Set location" = "Set location"; -"Settings…" = "Settings…"; -"Turn Location Services on in Settings → Privacy to use your current location." = "Turn Location Services on in Settings → Privacy to use your current location."; -"Type emoji..." = "Type emoji..."; - +"The theme RyukGram applies to Instagram." = "The theme RyukGram applies to Instagram."; "Theme" = "Theme"; -"Appearance" = "Appearance"; -"Keyboard" = "Keyboard"; -"Force dark mode" = "Force dark mode"; -"Keep Instagram in dark appearance regardless of iOS system setting" = "Keep Instagram in dark appearance regardless of iOS system setting"; -"Full OLED" = "Full OLED"; -"Replace Instagram's dark grays with pure black across the entire app" = "Replace Instagram's dark grays with pure black across the entire app"; -"OLED chat theme" = "OLED chat theme"; -"Pure black DM thread background and incoming message bubbles" = "Pure black DM thread background and incoming message bubbles"; -"Keyboard theme" = "Keyboard theme"; -"Override the keyboard appearance when typing inside Instagram" = "Override the keyboard appearance when typing inside Instagram"; -"Dark uses the system dark keyboard. OLED forces the keyboard backdrop to pure black." = "Dark uses the system dark keyboard. OLED forces the keyboard backdrop to pure black."; -"Dark" = "Dark"; -"OLED" = "OLED"; -"Apply & restart" = "Apply & restart"; -"Restart Instagram to apply your theme changes" = "Restart Instagram to apply your theme changes"; -"Theme changes only take effect after an app restart. Tap Apply below when you're done choosing." = "Theme changes only take effect after an app restart. Tap Apply below when you're done choosing."; +"Turn every theme option off and restart" = "Turn every theme option off and restart"; +"Turn Location Services on in Settings → Privacy to use your current location." = "Turn Location Services on in Settings → Privacy to use your current location."; +"Type an emoji to use as the note bubble icon." = "Type an emoji to use as the note bubble icon."; +"View profile picture" = "View profile picture"; ////////////////////////////////////////////////////////////////////////////// // PROFILE ANALYZER // // Settings → Profile Analyzer // ////////////////////////////////////////////////////////////////////////////// +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu accounts? The first %ld will be processed to avoid rate limits."; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu accounts? This runs sequentially with a short pause between each."; +"%@ followers · %@ following" = "%@ followers · %@ following"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "%dd ago"; +"%dh ago" = "%dh ago"; +"%dm ago" = "%dm ago"; +"%lu accounts followed" = "%lu accounts followed"; +"%lu accounts unfollowed" = "%lu accounts unfollowed"; "%lu followers · %lu following" = "%lu followers · %lu following"; "%lu of %lu" = "%lu of %lu"; +"%lu saved · comparing against %@" = "%lu saved · comparing against %@"; +"(empty)" = "(empty)"; +"(no analyzer data)" = "(no analyzer data)"; +"a saved snapshot" = "a saved snapshot"; +"About Profile Analyzer" = "About Profile Analyzer"; +"All preferences (%lu)" = "All preferences (%lu)"; "Analysis complete" = "Analysis complete"; "Analysis failed" = "Analysis failed"; "Another analysis is already running" = "Another analysis is already running"; "Available after your next scan" = "Available after your next scan"; -"Cancelled" = "Cancelled"; +"Batch follow" = "Batch follow"; +"Batch follow finished" = "Batch follow finished"; +"Batch unfollow" = "Batch unfollow"; +"Batch unfollow finished" = "Batch unfollow finished"; "Categories" = "Categories"; +"Clear visited profiles" = "Clear visited profiles"; +"Compare next scan against" = "Compare next scan against"; +"Comparing against %@" = "Comparing against %@"; +"Continue" = "Continue"; "Couldn't fetch profile information" = "Couldn't fetch profile information"; +"Delete %lu snapshots? This can't be undone." = "Delete %lu snapshots? This can't be undone."; +"Delete (%lu)" = "Delete (%lu)"; +"Delete snapshots" = "Delete snapshots"; +"Delete this snapshot? This can't be undone." = "Delete this snapshot? This can't be undone."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device."; +"Export" = "Export"; "Fetching followers (%lu/%ld)…" = "Fetching followers (%lu/%ld)…"; "Fetching following (%lu/%ld)…" = "Fetching following (%lu/%ld)…"; "Fetching profile info…" = "Fetching profile info…"; +"File is not a valid RyukGram backup." = "File is not a valid RyukGram backup."; +"Filter" = "Filter"; +"Filter · %lu" = "Filter · %lu"; "First scan: %@" = "First scan: %@"; +"First scan: we collect your followers and following lists and save them locally." = "First scan: we collect your followers and following lists and save them locally."; +"Follow %lu" = "Follow %lu"; "Follower count exceeds %ld — analysis disabled to avoid rate limits." = "Follower count exceeds %ld — analysis disabled to avoid rate limits."; +"Followers" = "Followers"; +"Following… %lu / %lu" = "Following… %lu / %lu"; "Gained since last scan" = "Gained since last scan"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk."; +"Import complete" = "Import complete"; +"Include" = "Include"; +"Keep newest" = "Keep newest"; +"Keep newest snapshots" = "Keep newest snapshots"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app."; "Last scan: %@" = "Last scan: %@"; +"Logs every profile you open. Stays on-device." = "Logs every profile you open. Stays on-device."; "Lost followers" = "Lost followers"; +"Most visited" = "Most visited"; "Mutual followers" = "Mutual followers"; "Name: %@ → %@" = "Name: %@ → %@"; "New followers" = "New followers"; -"No results" = "No results"; "No active Instagram session found" = "No active Instagram session found"; +"No results" = "No results"; "No scan yet" = "No scan yet"; "Not following you back" = "Not following you back"; +"Not verified only" = "Not verified only"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "Nothing is uploaded — everything stays on this device and can be wiped from the trash icon."; +"Nothing was applied." = "Nothing was applied."; "OK" = "OK"; +"Older snapshots beyond the limit are removed automatically" = "Older snapshots beyond the limit are removed automatically"; +"Older snapshots beyond this limit are deleted on the next scan." = "Older snapshots beyond this limit are deleted on the next scan."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history."; +"Posts" = "Posts"; +"Preferences" = "Preferences"; +"Previous scan" = "Previous scan"; "Private account" = "Private account"; +"Private only" = "Private only"; "Profile Analyzer" = "Profile Analyzer"; +"Profile Analyzer data" = "Profile Analyzer data"; "Profile picture changed" = "Profile picture changed"; "Profile updates" = "Profile updates"; -"Removes cached snapshots for this account. You'll lose since-last-scan diffs." = "Removes cached snapshots for this account. You'll lose since-last-scan diffs."; +"Profiles you've opened recently" = "Profiles you've opened recently"; +"Raw" = "Raw"; +"Raw JSON" = "Raw JSON"; +"Record snapshots" = "Record snapshots"; +"Recording" = "Recording"; "Request failed" = "Request failed"; -"Reset analyzer data?" = "Reset analyzer data?"; +"Reset analyzer data" = "Reset analyzer data"; +"Reset complete" = "Reset complete"; +"Reset everything" = "Reset everything"; +"Reset selected data?" = "Reset selected data?"; +"Reset snapshots" = "Reset snapshots"; +"Rolling — always your last run" = "Rolling — always your last run"; "Run analysis" = "Run analysis"; "Run your first analysis" = "Run your first analysis"; -"Search username or name" = "Search username or name"; +"Save a dated entry on every scan" = "Save a dated entry on every scan"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates."; +"Settings" = "Settings"; "Since last scan" = "Since last scan"; +"Snapshot" = "Snapshot"; +"Snapshots" = "Snapshots"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here."; +"Sort" = "Sort"; "Starting…" = "Starting…"; "They follow you, you don't follow back" = "They follow you, you don't follow back"; +"This can't be undone." = "This can't be undone."; +"Ticked data will be cleared. Tap a row to see what's stored." = "Ticked data will be cleared. Tap a row to see what's stored."; +"Today" = "Today"; "Too many followers" = "Too many followers"; "Too many followers to analyze" = "Too many followers to analyze"; +"Track visited profiles" = "Track visited profiles"; +"Tracking" = "Tracking"; +"Tracking off — enable below to log visits" = "Tracking off — enable below to log visits"; "Unfollow" = "Unfollow"; +"Unfollow %lu" = "Unfollow %lu"; "Unfollow @%@?" = "Unfollow @%@?"; "Unfollowed you since last scan" = "Unfollowed you since last scan"; +"Unfollowing… %lu / %lu" = "Unfollowing… %lu / %lu"; +"Unlimited" = "Unlimited"; +"Username A → Z" = "Username A → Z"; +"Username Z → A" = "Username Z → A"; "Username, name or picture changes" = "Username, name or picture changes"; "Username: @%@ → @%@" = "Username: @%@ → @%@"; +"Using %@ across %lu snapshots." = "Using %@ across %lu snapshots."; +"Verified only" = "Verified only"; +"Visited" = "Visited"; +"Visited profiles" = "Visited profiles"; "We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits."; "You both follow each other" = "You both follow each other"; "You don't follow back" = "You don't follow back"; "You follow them, they don't follow back" = "You follow them, they don't follow back"; "You started following" = "You started following"; "You unfollowed" = "You unfollowed"; - -"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu accounts? The first %ld will be processed to avoid rate limits."; -"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu accounts? This runs sequentially with a short pause between each."; -"%lu account(s) · %lu snapshot(s) · tap to inspect" = "%lu account(s) · %lu snapshot(s) · tap to inspect"; -"%lu accounts followed" = "%lu accounts followed"; -"%lu accounts unfollowed" = "%lu accounts unfollowed"; -"%lu entries across %lu lists · tap to inspect" = "%lu entries across %lu lists · tap to inspect"; -"%lu preferences · tap to inspect" = "%lu preferences · tap to inspect"; -"(empty)" = "(empty)"; -"(no analyzer data)" = "(no analyzer data)"; -"(no lists)" = "(no lists)"; -"About Profile Analyzer" = "About Profile Analyzer"; -"All preferences (%lu)" = "All preferences (%lu)"; -"Apply imported data?" = "Apply imported data?"; -"Batch follow" = "Batch follow"; -"Batch follow finished" = "Batch follow finished"; -"Batch unfollow" = "Batch unfollow"; -"Batch unfollow finished" = "Batch unfollow finished"; -"Continue" = "Continue"; -"Current snapshot" = "Current snapshot"; -"Embed domains" = "Embed domains"; -"Excluded lists" = "Excluded lists"; -"Excluded story users" = "Excluded story users"; -"Existing values for the selected scope will be replaced. The app may need to restart for some changes to take effect." = "Existing values for the selected scope will be replaced. The app may need to restart for some changes to take effect."; -"Export" = "Export"; -"File has no importable sections." = "File has no importable sections."; -"File is not a valid RyukGram export." = "File is not a valid RyukGram export."; -"Filter" = "Filter"; -"First scan: we collect your followers and following lists and save them locally." = "First scan: we collect your followers and following lists and save them locally."; -"Follow %lu" = "Follow %lu"; -"Followers" = "Followers"; -"Following… %lu / %lu" = "Following… %lu / %lu"; -"Full name" = "Full name"; -"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk."; -"Import complete" = "Import complete"; -"Include" = "Include"; -"Included story users" = "Included story users"; -"Inspect the full payload" = "Inspect the full payload"; -"Keep scan history" = "Keep scan history"; -"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app."; -"Not verified only" = "Not verified only"; -"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "Nothing is uploaded — everything stays on this device and can be wiped from the trash icon."; -"Nothing was applied." = "Nothing was applied."; -"Posts" = "Posts"; -"Preferences" = "Preferences"; -"Previous snapshot" = "Previous snapshot"; -"Private only" = "Private only"; -"Profile Analyzer data" = "Profile Analyzer data"; -"Raw" = "Raw"; -"Raw JSON" = "Raw JSON"; -"Reset analyzer data" = "Reset analyzer data"; -"Reset complete" = "Reset complete"; -"Reset selected data?" = "Reset selected data?"; -"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates."; -"Select all" = "Select all"; -"Selected data will be cleared. Tap any row to see what's stored." = "Selected data will be cleared. Tap any row to see what's stored."; -"Settings" = "Settings"; -"Sort" = "Sort"; -"This can't be undone." = "This can't be undone."; -"Tick what to apply. Tap any row to inspect. Sections not in the file are disabled." = "Tick what to apply. Tap any row to inspect. Sections not in the file are disabled."; -"Tick what to include. Tap any row to inspect its contents." = "Tick what to include. Tap any row to inspect its contents."; -"Unfollow %lu" = "Unfollow %lu"; -"Unfollowing… %lu / %lu" = "Unfollowing… %lu / %lu"; -"Username A → Z" = "Username A → Z"; -"Username Z → A" = "Username Z → A"; -"Verified only" = "Verified only"; -"When on, scans compare against your first scan so new/lost followers and profile updates don't disappear between scans." = "When on, scans compare against your first scan so new/lost followers and profile updates don't disappear between scans."; +"your previous scan" = "your previous scan"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ This is getting large — lower the limit or delete older snapshots to free space."; ////////////////////////////////////////////////////////////////////////////// // SETTINGS VIEWS & DIALOGS // // Excluded-lists managers, backup/restore flows, in-picker labels. // ////////////////////////////////////////////////////////////////////////////// +"Absolute format" = "Absolute format"; "Add chat" = "Add chat"; "Add custom domain" = "Add custom domain"; -"Add preset…" = "Add preset…"; "Add to list?" = "Add to list?"; "Add user" = "Add user"; "Apply" = "Apply"; "Apply to" = "Apply to"; "Chats" = "Chats"; +"Colored" = "Colored"; "Could not read file." = "Could not read file."; "Could not resolve user ID" = "Could not resolve user ID"; -"Could not write temporary file." = "Could not write temporary file."; "Current location" = "Current location"; "Custom" = "Custom"; -"Date Format" = "Date Format"; "Delete" = "Delete"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to."; "Enable fake location" = "Enable fake location"; -"Enter username" = "Enter username"; -"Enter username of the DM thread" = "Enter username of the DM thread"; "Excluded chats" = "Excluded chats"; "Excluded users" = "Excluded users"; "Follow default" = "Follow default"; "Force OFF (allow unsends)" = "Force OFF (allow unsends)"; "Force ON (preserve unsends)" = "Force ON (preserve unsends)"; -"Format" = "Format"; -"Import failed" = "Import failed"; +"Include seconds when the format already shows time." = "Include seconds when the format already shows time."; "Included chats" = "Included chats"; "Included users" = "Included users"; "KD: default" = "KD: default"; @@ -1040,41 +1583,38 @@ "Keep-deleted override" = "Keep-deleted override"; "Name (A–Z)" = "Name (A–Z)"; "No DM thread found with @%@" = "No DM thread found with @%@"; -"Off" = "Off"; "Presets" = "Presets"; "Recently added" = "Recently added"; +"Relative time" = "Relative time"; +"Relative within" = "Relative within"; "Remove from list" = "Remove from list"; -"Remove Selected" = "Remove Selected"; "Reset" = "Reset"; -"Saved presets are reusable. Tap a preset to make it the active location." = "Saved presets are reusable. Tap a preset to make it the active location."; "Search" = "Search"; "Search address or place" = "Search address or place"; "Search by name or username" = "Search by name or username"; "Search by username or name" = "Search by username or name"; -"Select" = "Select"; "Select location on map" = "Select location on map"; "Set current location" = "Set current location"; "Set keep-deleted override" = "Set keep-deleted override"; -"Settings exported" = "Settings exported"; "Show map button" = "Show map button"; +"Show relative time for dates younger than this many days. 0 disables it." = "Show relative time for dates younger than this many days. 0 disables it."; "Show seconds" = "Show seconds"; "Sort by" = "Sort by"; -"Story users" = "Story users"; -"Toggle each NSDate formatter IG uses. Different surfaces (feed, comments, stories, DMs) go through different methods — enable the ones you want the custom format applied to." = "Toggle each NSDate formatter IG uses. Different surfaces (feed, comments, stories, DMs) go through different methods — enable the ones you want the custom format applied to."; +"Thread" = "Thread"; +"Time" = "Time"; "Use this location" = "Use this location"; "User '%@' not found" = "User '%@' not found"; "Username (A–Z)" = "Username (A–Z)"; -"When on, all CoreLocation requests inside Instagram return the location below. Toggle the map button to show or hide the quick toggle on the Friends Map view." = "When on, all CoreLocation requests inside Instagram return the location below. Toggle the map button to show or hide the quick toggle on the Friends Map view."; +"Within %ld days" = "Within %ld days"; +"Within 1 day" = "Within 1 day"; ////////////////////////////////////////////////////////////////////////////// // REELS (FEATURES) // // Strings from Reels. // ////////////////////////////////////////////////////////////////////////////// -"Copied!" = "Copied!"; "No password found" = "No password found"; "No text field found" = "No text field found"; -"Password" = "Password"; "Refresh Reels?" = "Refresh Reels?"; ////////////////////////////////////////////////////////////////////////////// @@ -1082,23 +1622,42 @@ // Strings from Profile. // ////////////////////////////////////////////////////////////////////////////// +"%lu accounts" = "%lu accounts"; +"%lu loaded" = "%lu loaded"; +"%lu loaded · all loaded" = "%lu loaded · all loaded"; "Doesn't follow you" = "Doesn't follow you"; +"Everyone is already loaded." = "Everyone is already loaded."; +"Filter & sort" = "Filter & sort"; +"Follows me" = "Follows me"; +"Follows me first" = "Follows me first"; "Follows you" = "Follows you"; +"Hides everyone who doesn't match all picked filters." = "Hides everyone who doesn't match all picked filters."; +"Jump to bottom" = "Jump to bottom"; +"Jump to top" = "Jump to top"; +"List" = "List"; +"List fully loaded" = "List fully loaded"; +"Load more" = "Load more"; +"Loaded more" = "Loaded more"; +"Mutuals" = "Mutuals"; +"Mutuals first" = "Mutuals first"; "Note copied" = "Note copied"; - -////////////////////////////////////////////////////////////////////////////// -// CONFIRM DIALOGS (IN-FEATURE) // -// Strings from Confirm dialogs. // -////////////////////////////////////////////////////////////////////////////// - -"Unfollow?" = "Unfollow?"; +"People I follow" = "People I follow"; +"People I follow first" = "People I follow first"; +"Reverse order" = "Reverse order"; +"Show only" = "Show only"; +"Verified" = "Verified"; +"Verified first" = "Verified first"; ////////////////////////////////////////////////////////////////////////////// // MISC // // Anything that didn't fit a named section. Usually short labels. // ////////////////////////////////////////////////////////////////////////////// +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(unset)"; "720p • progressive • fastest" = "720p • progressive • fastest"; +"Add language" = "Add language"; +"Album name" = "Album name"; "Are you sure?" = "Are you sure?"; "Bundle" = "Bundle"; "Copy audio URL" = "Copy audio URL"; @@ -1106,21 +1665,41 @@ "Copy video URL" = "Copy video URL"; "Could not access reel media" = "Could not access reel media"; "Could not access reel photo" = "Could not access reel photo"; -"Could not extract photo url from post" = "Could not extract photo url from post"; -"Could not extract photo url from reel" = "Could not extract photo url from reel"; -"Could not extract photo url from story" = "Could not extract photo url from story"; -"Could not extract video url from post" = "Could not extract video url from post"; -"Could not extract video url from reel" = "Could not extract video url from reel"; -"Could not extract video url from story" = "Could not extract video url from story"; +"Could not write file." = "Could not write file."; +"Download all and share?" = "Download all and share?"; "Download Quality" = "Download Quality"; +"Downloading %d%%" = "Downloading %d%%"; +"e.g. 1000000" = "e.g. 1000000"; +"Localization file not found" = "Localization file not found"; +"Enter the language code (e.g. fr, de, ja)" = "Enter the language code (e.g. fr, de, ja)"; +"Error" = "Error"; "Extras" = "Extras"; "FFmpegKit Debug" = "FFmpegKit Debug"; +"File is empty or not a valid .strings file." = "File is empty or not a valid .strings file."; +"KD: OFF" = "KD: OFF"; +"Keep-deleted: OFF" = "Keep-deleted: OFF"; +"Keep-deleted: ON" = "Keep-deleted: ON"; "Later" = "Later"; +"Loading" = "Loading"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "Name of the Photos album RyukGram saves into. Leave empty to restore the default."; +"Next" = "Next"; +"No results found." = "No results found."; "No!" = "No!"; -"OK" = "OK"; +"Pick a language to update, or add a new one" = "Pick a language to update, or add a new one"; +"Preset" = "Preset"; "Restart" = "Restart"; +"Restart now" = "Restart now"; "Restart required" = "Restart required"; -"username" = "username"; +"Saved preset \"%@\"" = "Saved preset \"%@\""; +"selected" = "selected"; +"Shared icon, or override per button" = "Shared icon, or override per button"; +"Speed" = "Speed"; +"Unset" = "Unset"; +"Update localization" = "Update localization"; +"Updated %@ (%ld keys). Restart to apply." = "Updated %@ (%ld keys). Restart to apply."; +"Use default" = "Use default"; +"Username or PK" = "Username or PK"; +"Username or raw user PK" = "Username or raw user PK"; "Yes" = "Yes"; "You must restart the app to apply this change" = "You must restart the app to apply this change"; @@ -1129,15 +1708,21 @@ // Strings from the About / Credits footer of Settings. // ////////////////////////////////////////////////////////////////////////////// -"%@ — GitHub & Telegram" = "%@ — GitHub & Telegram"; +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub, Telegram, Donate"; "About" = "About"; "Arabic translation" = "Arabic translation"; -"Chinese (Traditional) translation" = "Chinese (Traditional) translation"; +"Chinese (Traditional and Simplified) translation" = "Chinese (Traditional and Simplified) translation"; "Credits" = "Credits"; "Developers" = "Developers"; "Donate to SoCuul" = "Donate to SoCuul"; "installed" = "installed"; "Korean translation" = "Korean translation"; +"Portuguese (Brazil) translation" = "Portuguese (Brazil) translation"; +"Turkish translation" = "Turkish translation"; +"Vietnamese translation" = "Vietnamese translation"; +"French translation" = "French translation"; +"Code contributions" = "Code contributions"; +"Following feed mode (from InstaSane)" = "Following feed mode (from InstaSane)"; "latest" = "latest"; "Links" = "Links"; "No releases" = "No releases"; @@ -1151,10 +1736,21 @@ "Source code" = "Source code"; "View on GitHub" = "View on GitHub"; "Spanish translation" = "Spanish translation"; -"Support the original developer" = "Support the original developer"; +"Support the original SCInsta developer" = "Support the original SCInsta developer"; +"Inspirations" = "Inspirations"; +"Inspirations, contributors, translators" = "Inspirations, contributors, translators"; +"Code and research" = "Code and research"; +"Translators" = "Translators"; +"Original BHInstagram developer" = "Original BHInstagram developer"; +"OLED theme inspiration" = "OLED theme inspiration"; +"Donate to Ryuk" = "Donate to Ryuk"; +"Support RyukGram development" = "Support RyukGram development"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated."; +"Browse changes from previous releases" = "Browse changes from previous releases"; +"Code inspiration" = "Code inspiration"; +"zxPluginsInject sideload compatibility shim" = "zxPluginsInject sideload compatibility shim"; "Telegram channel" = "Telegram channel"; "Testing and feature suggestions" = "Testing and feature suggestions"; -"Tweak settings" = "Tweak settings"; "Version" = "Version"; "Version, credits, and links" = "Version, credits, and links"; "What's new in RyukGram" = "What's new in RyukGram"; @@ -1165,7 +1761,6 @@ ////////////////////////////////////////////////////////////////////////////// "720p • progressive • silent" = "720p • progressive • silent"; -"Audio extract failed" = "Audio extract failed"; "Audio only" = "Audio only"; "Audio ready" = "Audio ready"; "Download video at the highest available quality" = "Download video at the highest available quality"; @@ -1175,12 +1770,433 @@ "Faster = lower quality" = "Faster = lower quality"; "FFmpeg not available" = "FFmpeg not available"; "FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable."; -"No audio stream available" = "No audio stream available"; "No audio track found" = "No audio track found"; "Photo" = "Photo"; "Photo quality" = "Photo quality"; -"Raw image (no audio, no video)" = "Raw image (no audio, no video)"; "silent" = "silent"; "Use highest resolution available" = "Use highest resolution available"; "Video quality" = "Video quality"; "Which quality to download" = "Which quality to download"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "'%@' is not in this FFmpegKit build — using hardware h264 instead."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-bit 4:2:0. ~2x slower, smoother gradients."; +"10-bit colour. Slower, smoother gradients. Software only." = "10-bit colour. Slower, smoother gradients. Software only."; +"1080p30 baseline." = "1080p30 baseline."; +"4K30 baseline." = "4K30 baseline."; +"8-bit 4:2:0. Universal default." = "8-bit 4:2:0. Universal default."; +"8-bit 4:2:2 chroma. Niche playback." = "8-bit 4:2:2 chroma. Niche playback."; +"8-bit 4:2:2 chroma. Software only." = "8-bit 4:2:2 chroma. Software only."; +"8-bit 4:4:4 chroma. Software only." = "8-bit 4:4:4 chroma. Software only."; +"8-bit 4:4:4 full chroma. Niche playback." = "8-bit 4:4:4 full chroma. Niche playback."; +"8-bit. Best for modern devices." = "8-bit. Best for modern devices."; +"Advanced encoding" = "Advanced encoding"; +"Advanced encoding settings" = "Advanced encoding settings"; +"Archival quality." = "Archival quality."; +"Audio bitrate" = "Audio bitrate"; +"Audio channels" = "Audio channels"; +"Audio codec" = "Audio codec"; +"Audio conversion failed" = "Audio conversion failed"; +"Audio sample rate" = "Audio sample rate"; +"Balanced. libx264 default." = "Balanced. libx264 default."; +"Best practical quality per bit." = "Best practical quality per bit."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)."; +"Cartoons / anime." = "Cartoons / anime."; +"Cinematic. Smaller files." = "Cinematic. Smaller files."; +"Codec" = "Codec"; +"Container" = "Container"; +"Copy (passthrough)" = "Copy (passthrough)"; +"CRF quality" = "CRF quality"; +"Downloading video…" = "Downloading video…"; +"Easier to play back on weak devices." = "Easier to play back on weak devices."; +"Encoder unavailable" = "Encoder unavailable"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "Examples: 8M, 12M, 25M, 4500k. Leave empty for auto."; +"Failed to download video" = "Failed to download video"; +"Fast, fixed-bitrate, GPU-accelerated." = "Fast, fixed-bitrate, GPU-accelerated."; +"Fastest, worst compression." = "Fastest, worst compression."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file."; +"FFmpeg documentation" = "FFmpeg documentation"; +"FFmpeg mux failed" = "FFmpeg mux failed"; +"Frame rate" = "Frame rate"; +"H.264 level" = "H.264 level"; +"H.264 profile" = "H.264 profile"; +"Hardware (VideoToolbox)" = "Hardware (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it."; +"Keep original audio. Fast." = "Keep original audio. Fast."; +"Keep the source frame rate." = "Keep the source frame rate."; +"Let the encoder pick." = "Let the encoder pick."; +"Live-action video." = "Live-action video."; +"Lossless. Huge files." = "Lossless. Huge files."; +"Low-latency streaming." = "Low-latency streaming."; +"Manual ffmpeg controls in place of Encoding speed." = "Manual ffmpeg controls in place of Encoding speed."; +"Marginal gain, huge time cost." = "Marginal gain, huge time cost."; +"Max resolution" = "Max resolution"; +"Mono" = "Mono"; +"No tuning. Default." = "No tuning. Default."; +"None" = "None"; +"Pixel format" = "Pixel format"; +"Pixel format ignored" = "Pixel format ignored"; +"Preserve film grain." = "Preserve film grain."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p."; +"Re-encode. Use when source is opus or unsupported." = "Re-encode. Use when source is opus or unsupported."; +"Reset advanced encoding" = "Reset advanced encoding"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate."; +"Slideshow-like content." = "Slideshow-like content."; +"Slower, better compression per bit." = "Slower, better compression per bit."; +"Smaller, visible artefacts." = "Smaller, visible artefacts."; +"Software (libx264)" = "Software (libx264)"; +"Standard 8-bit." = "Standard 8-bit."; +"Stereo" = "Stereo"; +"Streaming default." = "Streaming default."; +"Strip metadata" = "Strip metadata"; +"Top of AAC." = "Top of AAC."; +"Tune" = "Tune"; +"Unknown error" = "Unknown error"; +"Very high quality." = "Very high quality."; +"Video bitrate" = "Video bitrate"; +"Video codec" = "Video codec"; +"Visually lossless. RyukGram default." = "Visually lossless. RyukGram default."; +"Widest compatibility, no B-frames." = "Widest compatibility, no B-frames."; +"Worst quality." = "Worst quality."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "Long-press gestures"; +"Inserts a button in the profile navigation header" = "Inserts a button in the profile navigation header"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu."; +"Configure menu" = "Configure menu"; +"Reorder, enable/disable, set default tap, show date" = "Reorder, enable/disable, set default tap, show date"; +"Reorder, enable/disable, set default tap" = "Reorder, enable/disable, set default tap"; +"RyukGram profile actions" = "RyukGram profile actions"; +"Reorder sections" = "Reorder sections"; +"Drag the ≡ handle to reorder sections." = "Drag the ≡ handle to reorder sections."; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry."; +"Show as submenu" = "Show as submenu"; +"Collapse this section's actions behind a single entry" = "Collapse this section's actions behind a single entry"; +"Configure: %@" = "Configure: %@"; +"What happens on a single tap. Long-press always opens the full menu." = "What happens on a single tap. Long-press always opens the full menu."; +"Reset to defaults" = "Reset to defaults"; +"This will restore the default sections, order, and toggles for this menu." = "This will restore the default sections, order, and toggles for this menu."; +"Audio & visibility" = "Audio & visibility"; +"DM disappearing media" = "DM disappearing media"; +"Bulk download" = "Bulk download"; +"Feed settings" = "Feed settings"; +"Reels settings" = "Reels settings"; +"Profile settings" = "Profile settings"; +"Stories settings" = "Stories settings"; +"Copy ID" = "Copy ID"; +"Copy Info" = "Copy Info"; +"Copy all info" = "Copy all info"; +"Copy media URL" = "Copy media URL"; +"Copy profile link" = "Copy profile link"; +"Copy username" = "Copy username"; +"Download" = "Download"; +"Download to Gallery" = "Download to Gallery"; +"Download all to Gallery" = "Download all to Gallery"; +"Exclude/include user" = "Exclude/include user"; +"Mute / unmute audio" = "Mute / unmute audio"; +"Save picture to Gallery" = "Save picture to Gallery"; +"Share picture" = "Share picture"; +"View picture" = "View picture"; +"Bio" = "Bio"; +"ID" = "ID"; +"Info" = "Info"; +"Profile info" = "profile info"; +"Profile link" = "Profile link"; +"Picture not found" = "Picture not found"; +"Private profile" = "Private profile"; +"Profile unavailable" = "Profile unavailable"; +"Public profile" = "Public profile"; +"Username" = "Username"; +"Followers: %@" = "Followers: %@"; +"Following: %@" = "Following: %@"; +"Copied %@" = "Copied %@"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(unknown)"; +"All files deleted" = "All files deleted"; +"Browsing" = "Browsing"; +"By source" = "By source"; +"By type" = "By type"; +"By user" = "By user"; +"Clear filters" = "Clear filters"; +"Comment" = "Comment"; +"Create" = "Create"; +"Create & Move" = "Create & Move"; +"Delete %@?" = "Delete %@?"; +"Delete all files" = "Delete all files"; +"Delete all images" = "Delete all images"; +"Delete all videos" = "Delete all videos"; +"Delete by user" = "Delete by user"; +"Delete DM media" = "Delete DM media"; +"Delete feed posts" = "Delete feed posts"; +"Delete files" = "Delete files"; +"Delete Folder" = "Delete Folder"; +"Delete from Gallery?" = "Delete from Gallery?"; +"Delete profile pictures" = "Delete profile pictures"; +"Delete reels" = "Delete reels"; +"Delete selected" = "Delete selected"; +"Delete Selected Files?" = "Delete Selected Files?"; +"Delete stories" = "Delete stories"; +"Delete thumbnails" = "Delete thumbnails"; +"Deleted from Gallery" = "Deleted from Gallery"; +"Deleted selected files" = "Deleted selected files"; +"Deselect All" = "Deselect All"; +"DM media deleted" = "DM media deleted"; +"DMs" = "DMs"; +"Each user appears as a folder next to your real folders." = "Each user appears as a folder next to your real folders."; +"Each user gets a labelled section in the grid/list." = "Each user gets a labelled section in the grid/list."; +"Enable gallery" = "Enable gallery"; +"Failed" = "Failed"; +"Failed to delete" = "Failed to delete"; +"Favorite" = "Favorite"; +"Favorite selected" = "Favorite selected"; +"Favorites only" = "Favorites only"; +"Feed posts deleted" = "Feed posts deleted"; +"Files deleted" = "Files deleted"; +"Flat list. No grouping." = "Flat list. No grouping."; +"Folder name" = "Folder name"; +"Folders" = "Folders"; +"From RyukGram Gallery" = "From RyukGram Gallery"; +"Gallery" = "Gallery"; +"Gallery only" = "Gallery only"; +"Gallery save mode" = "Gallery save mode"; +"Gallery Settings" = "Gallery Settings"; +"GIFs" = "GIFs"; +"Grid view" = "Grid view"; +"Group by user" = "Group by user"; +"Hold DM tab to open gallery" = "Hold DM tab to open gallery"; +"Images" = "Images"; +"Images deleted" = "Images deleted"; +"Images first" = "Images first"; +"item" = "item"; +"items" = "items"; +"Largest first" = "Largest first"; +"List view" = "List view"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "Long-press the inbox button in the bottom tab bar to open RyukGram gallery"; +"Manage" = "Manage"; +"More" = "More"; +"Move selected" = "Move selected"; +"Move to Folder" = "Move to Folder"; +"Name A-Z" = "Name A-Z"; +"Name Z-A" = "Name Z-A"; +"New Folder" = "New Folder"; +"New folder…" = "New folder…"; +"Newest first" = "Newest first"; +"No files in Gallery" = "No files in Gallery"; +"No files to delete" = "No files to delete"; +"No matching files" = "No matching files"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes."; +"Open" = "Open"; +"Open Original Post" = "Open Original Post"; +"Options" = "Options"; +"Other" = "Other"; +"Photos + Gallery" = "Photos + Gallery"; +"Photos only" = "Photos only"; +"Profile pictures deleted" = "Profile pictures deleted"; +"Reels deleted" = "Reels deleted"; +"Rename" = "Rename"; +"Rename Folder" = "Rename Folder"; +"Root" = "Root"; +"Save media from the preview screen\nto see it here." = "Save media from the preview screen\nto see it here."; +"Saved %lu items to Gallery" = "Saved %lu items to Gallery"; +"Saved to Gallery" = "Saved to Gallery"; +"Saving to Gallery" = "Saving to Gallery"; +"Search users" = "Search users"; +"Sections" = "Sections"; +"Select All" = "Select All"; +"Share" = "Share"; +"Share selected" = "Share selected"; +"Show favorites at top" = "Show favorites at top"; +"Show gallery entries in download menus and unlock the gallery button" = "Show gallery entries in download menus and unlock the gallery button"; +"Smallest first" = "Smallest first"; +"Source" = "Source"; +"Source user" = "Source user"; +"Storage" = "Storage"; +"Stories deleted" = "Stories deleted"; +"Story" = "Story"; +"The original content may no longer exist." = "The original content may no longer exist."; +"This folder contains %ld file(s). They will be moved to the parent folder." = "This folder contains %ld file(s). They will be moved to the parent folder."; +"This folder is empty." = "This folder is empty."; +"This will permanently remove %ld file%@ from the gallery." = "This will permanently remove %ld file%@ from the gallery."; +"This will permanently remove %ld file(s)." = "This will permanently remove %ld file(s)."; +"This will permanently remove this file from the gallery." = "This will permanently remove this file from the gallery."; +"Thumb" = "Thumb"; +"Thumbnails deleted" = "Thumbnails deleted"; +"to Gallery" = "to Gallery"; +"Total files" = "Total files"; +"Total size" = "Total size"; +"Type" = "Type"; +"Unable to open original post" = "Unable to open original post"; +"Unable to open profile" = "Unable to open profile"; +"Unfavorite" = "Unfavorite"; +"Unknown user" = "Unknown user"; +"User files deleted" = "User files deleted"; +"Videos" = "Videos"; +"Videos deleted" = "Videos deleted"; +"Videos first" = "Videos first"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "When enabled, favorites are pinned above other files inside the current sort and folder context."; +"Where 'Download to Photos' actually writes when gallery is on" = "Where 'Download to Photos' actually writes when gallery is on"; +"Yesterday" = "Yesterday"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "Home shortcut button"; +"Show the extra button on the home top bar" = "Show the extra button on the home top bar"; +"Auto" = "Auto"; +"Icon" = "Icon"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu."; +"Changelog" = "Changelog"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "Adds an extra shortcut button beside the create-post + button on the home top bar."; +"All buttons" = "All buttons"; +"Choose icon, reorder actions, and enable menu items" = "Choose icon, reorder actions, and enable menu items"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled."; +"Configure button" = "Configure button"; +"Global Action Icons" = "Global Action Icons"; +"Interface" = "Interface"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "Override the icon for a specific button. Buttons left on Default follow the shared icon above."; +"Per button" = "Per button"; +"Show home shortcut button" = "Show home shortcut button"; +"Tab bar" = "Tab bar"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "Notifications"; +"Appearance" = "Appearance"; +"Routing" = "Routing"; +"Style" = "Style"; +"Position" = "Position"; +"Stack size" = "Stack size"; +"Duration" = "Duration"; +"Default surface" = "Default surface"; +"Enable notifications" = "Enable notifications"; +"Haptic feedback" = "Haptic feedback"; +"Preview pill" = "Preview pill"; +"Preview download pill" = "Preview download pill"; +"Preview loading pill" = "Preview loading pill"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "Master switch. When off, no RyukGram pills or IG-native toasts are emitted."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule."; +"Top slides down, bottom slides up." = "Top slides down, bottom slides up."; +"How many pills can show at once before queueing." = "How many pills can show at once before queueing."; +"Multiplies how long toasts stay on screen." = "Multiplies how long toasts stay on screen."; +"Vibration on success/error pills." = "Vibration on success/error pills."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below."; +"What to use when an action doesn't have its own override." = "What to use when an action doesn't have its own override."; +"Tap to cycle: info → success → warning → error" = "Tap to cycle: info → success → warning → error"; +"Tap to cycle between success and failure" = "Tap to cycle between success and failure"; +"Progress UI — pill or off only." = "Progress UI — pill or off only."; +"Minimal" = "Minimal"; +"Colorful" = "Colorful"; +"Glow" = "Glow"; +"Island" = "Island"; +"Top" = "Top"; +"Bottom" = "Bottom"; +"Custom pill" = "Custom pill"; +"IG native toast" = "IG native toast"; +"Short" = "Short"; +"Normal" = "Normal"; +"Long" = "Long"; +"Very long" = "Very long"; +"Downloads & saving" = "Downloads & saving"; +"Copy to clipboard" = "Copy to clipboard"; +"Read receipts & seen" = "Read receipts & seen"; +"Block, exclude & pin" = "Block, exclude & pin"; +"Stories & messages" = "Stories & messages"; +"Voice & audio" = "Voice & audio"; +"Errors" = "Errors"; +"Download progress" = "Download progress"; +"Bulk download progress" = "Bulk download progress"; +"Copied post / reel URL" = "Copied post / reel URL"; +"Copied comment text" = "Copied comment text"; +"Copied note text" = "Copied note text"; +"Copied profile info" = "Copied profile info"; +"Copied audio URL" = "Copied audio URL"; +"Copied quality picker URL" = "Copied quality picker URL"; +"Copied unlocked password" = "Copied unlocked password"; +"Copied description text" = "Copied description text"; +"DM seen / read receipts" = "DM seen / read receipts"; +"Story seen / read receipts" = "Story seen / read receipts"; +"User blocked / unblocked" = "User blocked / unblocked"; +"Chat added / removed from exclude" = "Chat added / removed from exclude"; +"Story user added / removed from exclude" = "Story user added / removed from exclude"; +"Share-sheet recipient pinned" = "Share-sheet recipient pinned"; +"Unsent message detected" = "Unsent message detected"; +"Live comments toggled" = "Live comments toggled"; +"Custom GIF sent" = "Custom GIF sent"; +"Voice DM sent" = "Voice DM sent"; +"Audio extraction status" = "Audio extraction status"; +"Profile Analyzer complete" = "Profile Analyzer complete"; +"Media extraction failed" = "Media extraction failed"; +"Permission denied" = "Permission denied"; +"Validation error" = "Validation error"; +"Network / API error" = "Network / API error"; +"Action error fallback" = "Action error fallback"; +"Invalid clipboard link" = "Invalid clipboard link"; +"Experimental flag warning" = "Experimental flag warning"; +"Settings action confirmed" = "Settings action confirmed"; +"Cache clearing progress" = "Cache clearing progress"; +"Other / uncategorized" = "Other / uncategorized"; +"Comment copied" = "Comment copied"; +"FFmpeg log copied" = "FFmpeg log copied"; +"GIF inserted" = "GIF inserted"; +"Story marked as seen" = "Story marked as seen"; +"Saved" = "Saved"; +"Tap to retry" = "Tap to retry"; +"Looks great" = "Looks great"; +"Something broke" = "Something broke"; +"Just so you know" = "Just so you know"; +"Success preview" = "Success preview"; +"Error preview" = "Error preview"; +"Warning preview" = "Warning preview"; +"Info preview" = "Info preview"; +"Preview download…" = "Preview download…"; +"Colors" = "Colors"; +"+ Add new language" = "+ Add new language"; +"Each chat can override this in the list" = "Each chat can override this in the list"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map."; +"Tap a preset to make it active. Swipe left to delete." = "Tap a preset to make it active. Swipe left to delete."; +"Override Instagram location reads." = "Override Instagram location reads."; +"Show the quick button in Friends Map." = "Show the quick button in Friends Map."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "Pick how absolute dates are written. “Default” leaves IG's own format untouched."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”."; +"Compact style" = "Compact style"; +"Example: “1h” instead of “1 hour ago”" = "Example: “1h” instead of “1 hour ago”"; +"Example: “Jan 5, 2026 (2h)”" = "Example: “Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue."; +"Combine with date" = "Combine with date"; +"Absolute then relative" = "Absolute then relative"; +"Relative – absolute" = "Relative – absolute"; +"Relative when young, absolute when older." = "Relative when young, absolute when older."; +"Example: “2h – Jan 5, 2026”" = "Example: “2h – Jan 5, 2026”"; diff --git a/src/Localization/Resources/es.lproj/Localizable.strings b/src/Localization/Resources/es.lproj/Localizable.strings index e726ae2..6b159b5 100644 --- a/src/Localization/Resources/es.lproj/Localizable.strings +++ b/src/Localization/Resources/es.lproj/Localizable.strings @@ -1,7 +1,5 @@ -// Spanish translation by Furamako (@furamako) -// /* - * RyukGram — Localizable.strings (Spanish) + * RyukGram — Localizable.strings (English source of truth) * ------------------------------------------------------------------------- * * Every user-facing string in RyukGram goes through the macro @@ -57,7 +55,6 @@ * - Keys and values are both quoted; every line ends with a semicolon. */ - ////////////////////////////////////////////////////////////////////////////// // CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // // Shown on the root Settings screen: title, search bar, the globe language // @@ -70,11 +67,12 @@ "settings.firstrun.title" = "Información de configuración de RyukGram"; "settings.language.english_only" = "Por el momento, RyukGram solo está disponible en Inglés. ¡Las traducciones son bienvenidas!"; "settings.language.help_translate" = "Ayudar a traducir"; -"settings.language.ok" = "OK"; "settings.language.system" = "Por defecto del sistema"; "settings.language.title" = "Idioma"; +"settings.language.restart.message" = "Ajustes actualizados. Reinicia Instagram para que los menús, botones y avisos del resto de la app también adopten el nuevo idioma."; +"settings.language.restart.title" = "Reinicia para aplicarlo en todas partes"; +"settings.language.available" = "Disponibles"; "settings.results.many" = "%lu resultados"; -"settings.results.none" = "Sin resultados"; "settings.results.one" = "%lu resultado"; "settings.search.placeholder" = "Configuración de búsqueda"; "settings.title" = "Configuración de RyukGram"; @@ -84,20 +82,33 @@ // Settings → General tab // ////////////////////////////////////////////////////////////////////////////// +"Action button icon" = "Icono del botón de acción"; "Adds a copy option to the comment long-press menu" = "Añade la opción de copiar en el menú que aparece al mantener pulsado un comentario"; -"Adds a download option for GIF comments" = "Añade la opción de descargar los GIF en comentarios"; +"Adds a download button next to share/save on the reels audio page" = "Añade un botón de descarga junto a compartir/guardar en la página de audio de los reels"; +"Adds download, copy and expand options to GIF and image comments" = "Añade opciones de descargar, copiar y ampliar a comentarios GIF e imágenes"; +"Allow video in photo sticker" = "Permitir vídeo en el sticker de foto"; +"Alternate icons are not supported" = "Los iconos alternativos no son compatibles"; "Anonymous live viewing" = "Ver directos de forma anónima"; +"App Icon" = "Icono de la app"; +"Audio page" = "Página de audio"; +"Auto-reveals sensitive media" = "Revela automáticamente el contenido sensible"; "Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "Bloquea el latido del contador de espectadores para que el transmisor no te vea — tampoco verás el contador de espectadores"; "Browser" = "Navegador"; +"Change the app icon from the bundled icons" = "Cambia el icono de la app entre los iconos incluidos"; +"Choose Icon" = "Elegir icono"; +"Choose which surfaces hide ads" = "Elige qué superficies ocultan anuncios"; "Comments" = "Comentarios"; +"Commerce carousels in comments and shoppable CTAs on reels" = "Carruseles comerciales en comentarios y CTA de compra en reels"; "Copy comment text" = "Copiar texto del comentario"; "Copy description" = "Copiar descripción"; "Copy description text fields by long-pressing on them" = "Copia la descripción al mantenerla pulsada"; +"Custom music sticker color" = "Color personalizado para sticker de música"; "Date format" = "Formato de fecha"; "Disable app haptics" = "Deshabilitar respuesta háptica de la aplicación"; "Disables haptics/vibrations within the app" = "Deshabilita la respuesta háptica y vibraciones dentro de la aplicación"; "Do not save recent searches" = "No guardar búsquedas recientes"; -"Download GIF comments" = "Descargar GIF en comentarios"; +"Download GIF & image comments" = "Descargar comentarios GIF e imágenes"; +"Download image" = "Descargar imagen"; "Embed domain" = "Dominio embebido"; "Embed domain: %@" = "Dominio embebido: %@"; "Enable liquid glass buttons" = "Habilitar botones Liquid Glass"; @@ -105,15 +116,23 @@ "Enable teen app icons" = "Habilitar íconos para adolescentes"; "Enables experimental liquid glass buttons" = "Habilita botones experimentales Liquid Glass"; "Enables liquid glass tab bar, floating navigation, and other UI elements" = "Habilita Liquid Glass en la barra de pestañas, navegación flotante y otros elementos de la interfaz"; +"End" = "Fin"; "Experimental features" = "Funciones experimentales"; +"Explore & search" = "Explorar y buscar"; +"Failed to change icon" = "No se pudo cambiar el icono"; +"Fixed" = "Fijo"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "Fijo evita que se reduzca. Ocultar lo hace desaparecer al desplazar hacia abajo"; "Focus/distractions" = "Concentración/Distracciones"; "General" = "General"; +"Gradient color" = "Color en degradado"; "Hide ads" = "Ocultar anuncios"; "Hide explore posts grid" = "Ocultar la cuadrícula de publicaciones"; "Hide friends map" = "Ocultar el mapa de amigos"; "Hide Meta AI" = "Ocultar Meta AI"; "Hide metrics" = "Ocultar métricas"; "Hide notes tray" = "Ocultar bandeja de notas"; +"Hide on scroll" = "Ocultar al desplazar"; +"Hide TestFlight popup" = "Ocultar ventana de TestFlight"; "Hide trending searches" = "Ocultar búsquedas en tendencia"; "Hide UI on capture" = "Ocultar UI al capturar"; "Hides all suggested users for you to follow, outside your feed" = "Oculta 'Sugerencias para ti' en tu Feed (Inicio)"; @@ -125,10 +144,14 @@ "Hides the suggested broadcast channels in direct messages" = "Oculta los canales sugeridos en mensajes"; "Hides the trending searches under the explore search bar" = "Oculta las búsquedas en tendencia debajo de la barra de búsqueda"; "Hold down on the Instagram logo to change the app icon" = "Mantén pulsado el logo de Instagram para cambiar el ícono de la aplicación"; +"Lets the photo sticker picker show videos too, not just photos" = "Permite que el selector de stickers de foto también muestre vídeos, no solo fotos"; +"Liquid glass tab bar" = "Barra de pestañas Liquid Glass"; "Live" = "En vivo"; "Long press on the eyedropper tool in stories to customize the text color more precisely" = "Mantener pulsada la herramienta de selección de color en historias para seleccionar el color del texto de manera más precisa"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "Mantén pulsada la rueda de colores en un sticker de música o letras para elegir cualquier color sólido o degradado"; "Long-press the heart button in a live to hide or show the comments" = "Mantén presionado el botón de corazón en un directo para ocultar o mostrar los comentarios"; "Long-press the search tab to open a copied Instagram link" = "Mantén presionado el botón de búsqueda para abrir un enlace de Instagram copiado"; +"Master switch. When off, all per-surface toggles below are ignored." = "Interruptor principal. Cuando está desactivado, se ignoran todos los conmutadores por superficie de abajo."; "No suggested chats" = "Ocultar conversaciones sugeridas"; "No suggested users" = "Ocultar usuarios sugeridos"; "Notes" = "Notas"; @@ -137,25 +160,49 @@ "Open links in external browser" = "Abrir enlaces en navegador externo"; "Opens links in Safari instead of Instagram's in-app browser" = "Abrir enlaces en Safari en vez del navegador interno de Instagram"; "Privacy" = "Privacidad"; -"Redacts RyukGram buttons from screenshots, screen recordings, and mirroring" = "Oculta los botones de RyukGram en capturas, grabaciones y duplicado de pantalla"; -"Removes all ads from the Instagram app" = "Elimina todos los anuncios de la aplicación de Instagram"; +"Removes ads across enabled surfaces" = "Elimina los anuncios en las superficies activadas"; "Removes igsh, utm_source, and other tracking parameters from shared links" = "Elimina igsh, utm_source, y otros parámetros de rastreo de los enlaces compartidos"; "Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "Elimina intermediarios de rastreo de Instagram (l.instagram.com) y los parámetros UTM/fbclid de los enlaces"; "Replace domain in shared links" = "Reemplazar dominio en enlaces compartidos"; "Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "Reemplaza las marcas de tiempo relativas de Instagram (\"Hace 3d\") con un formato personalizado. Escoge sobre cuales superficies se aplica dentro del selector."; "Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "Reescribe enlaces copiados/compartidos para utilizar un dominio compatible con vistas previas embebidas en Discord, Telegram, etc."; "Search bars will no longer save your recent searches" = "Las barras de búsqueda ya no guardarán tus búsquedas recientes"; +"Selected" = "Seleccionado"; "Sharing" = "Compartir"; +"Shopping" = "Compras"; +"Skip sensitive content covers" = "Omitir avisos de contenido sensible"; +"Solid color" = "Color sólido"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "Publicaciones patrocinadas en los feeds principal, contextual, de vídeo y encadenado"; +"Sponsored posts on the explore grid" = "Publicaciones patrocinadas en la cuadrícula de explorar"; +"Sponsored reels in the sundial feed" = "Reels patrocinados en el feed sundial"; +"Start" = "Inicio"; +"Story ads and sponsored entries in the story tray" = "Anuncios de historias y entradas patrocinadas en la bandeja de historias"; "Strip tracking from links" = "Eliminar rastreo de los enlaces"; "Strip tracking params" = "Eliminar parámetros de rastreo"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "Suprime el aviso \"It's time to update Instagram Beta\""; +"Tap to apply" = "Toca para aplicar"; +"The selected icon will be saved and shown here the next time you open this page." = "El icono seleccionado se guardará y se mostrará aquí la próxima vez que abras esta página."; "Toggle live comments" = "Alternar comentarios en vivo"; "Use detailed color picker" = "Usar selector de color detallado"; +"Used across feed, stories, reels, and DMs." = "Se usa en feed, historias, reels y DMs"; ////////////////////////////////////////////////////////////////////////////// // DATE FORMAT // // Settings → Date format tab // ////////////////////////////////////////////////////////////////////////////// +"%ld day ago" = "hace %ld día"; +"%ld days ago" = "hace %ld días"; +"%ld hour ago" = "hace %ld hora"; +"%ld hours ago" = "hace %ld horas"; +"%ld minute ago" = "hace %ld minuto"; +"%ld minutes ago" = "hace %ld minutos"; +"%ld week ago" = "hace %ld semana"; +"%ld weeks ago" = "hace %ld semanas"; +"%ldd" = "%ldd"; +"%ldh" = "%ldh"; +"%ldm" = "%ldm"; +"%ldw" = "%ldsem"; "Alternate" = "Alternativo"; "Always ask" = "Siempre preguntar"; "Balanced" = "Balanceada"; @@ -173,12 +220,16 @@ "Explore" = "Explorar"; "Fast" = "Rápida"; "Feed" = "Feed (Inicio)"; +"Feed posts" = "Publicaciones del feed"; "High" = "Alta"; "Inbox" = "Bandeja de entrada"; +"just now" = "ahora mismo"; "Low" = "Baja"; "Max" = "Máxima"; "Medium" = "Media"; "Mute/Unmute" = "Silencio/Sonido"; +"Notes, comments, stories" = "Notas, comentarios, historias"; +"now" = "ahora"; "Open menu" = "Abrir menú"; "Pause/Play" = "Pausar/Reproducir"; "Profile" = "Perfil"; @@ -198,6 +249,8 @@ "Action button" = "Botón de acción"; "Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "Añade las opciones 'Ver foto de perfil' y 'Ver portada' al menú que aparece al mantener pulsado en la bandeja de historias"; "Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Añade un botón de acción de RyukGram debajo de cada publicación en el Feed (Inicio), con las opciones descargar, compartir, copiar, ampliar y repost. Tocar abre el menú de forma predeterminada.\nArriba puedes cambiar el comportamiento al tocar."; +"Choose Instagram's default feed or force the Following feed" = "Elige el feed predeterminado de Instagram o fuerza el feed de Siguiendo"; +"Main feed" = "Feed principal"; "Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "Controla cuando y como se actualiza el Feed (Inicio). La actualización en segundo plano ocurre cuando vuelves a la aplicación después de unos 10 minutos. La actualización al pulsar el botón de Inicio se produce al tocar el botón mientras te encuentras en el Feed (Inicio)"; "Default tap action" = "Acción al tocar"; "Disable background refresh" = "Deshabilitar actualización en segundo plano"; @@ -216,6 +269,11 @@ "Hides the story tray at the top" = "Oculta la bandeja de historias en la parte superior"; "Inserts a button row below like/comment/share on each post" = "Inserta un botón en la fila de los botones me gusta, comentar y compartir en cada publicación"; "Long press on media to expand in full-screen viewer" = "Mantener pulsado el contenido multimedia para ver en pantalla completa"; +"Start media muted" = "Iniciar contenido en silencio"; +"Expanded videos open with sound off" = "Los videos ampliados se abren sin sonido"; +"Enhanced media resolution" = "Resolución de medios mejorada"; +"Media saving" = "Guardar medios"; +"Spoof device profile so IG serves higher-quality images" = "Suplanta el perfil del dispositivo para que IG entregue imágenes de mayor calidad"; "Media" = "Contenido multimedia"; "Media zoom" = "Ampliar contenido multimedia"; "No suggested for you" = "Sin 'Sugerencias para ti'"; @@ -230,10 +288,23 @@ "Removes suggested posts" = "Elimina las publicaciones sugeridas"; "Scroll to top without refreshing when tapping Home" = "Desplazarse hacia arriba sin actualizar al pulsar el botón de Inicio"; "Show action button" = "Mostrar botón de acción"; +"Show date" = "Mostrar fecha"; "Stories tray" = "Bandeja de historias"; "Tapping Home does nothing when already on feed" = "Pulsar botón de Inicio no hace nada cuando te encuentres en la pestaña de Feed (Inicio)"; "Tray long-press actions" = "Acciones al mantener pulsado en la bandeja"; -"What happens on a single tap. Long-press always opens the full menu" = "Lo que ocurre con un solo toque. Mantener pulsado siempre abre el menú completo"; +"Composer doesn't accept GIFs" = "El compositor no acepta GIFs"; +"Copy GIF link" = "Copiar enlace del GIF"; +"Copy image link" = "Copiar enlace de la imagen"; +"Custom GIF in comments" = "GIF personalizado en comentarios"; +"Failed to build GIF model" = "No se pudo crear el modelo GIF"; +"GIF link copied" = "Enlace del GIF copiado"; +"Image" = "Imagen"; +"Image link copied" = "Enlace de la imagen copiado"; +"Invalid Giphy URL" = "URL de Giphy no válida"; +"Long-press the GIF button to paste any Giphy URL" = "Mantén pulsado el botón GIF para pegar cualquier URL de Giphy"; +"Paste Giphy Link" = "Pegar enlace de Giphy"; +"Paste a giphy.com URL or media ID" = "Pega una URL de giphy.com o un ID de medio"; +"Send" = "Enviar"; ////////////////////////////////////////////////////////////////////////////// // REELS // @@ -245,27 +316,40 @@ "Auto-scroll reels" = "Desplazamiento automático de reels"; "Change what happens when you tap on a reel" = "Cambia lo que ocurre cuando tocas en un reel"; "Confirm reel refresh" = "Confirmar actualización de reels"; +"Custom speed" = "Velocidad personalizada"; "Disable auto-unmuting reels" = "Deshabilitar el reactivado automático del sonido en los reels"; "Disable scrolling reels" = "Deshabilitar desplazamiento en reels"; "Disable tab button refresh" = "Deshabilitar actualización con el botón de la pestaña"; "Doom scrolling limit" = "Límite de doom scrolling"; +"e.g. 1.75" = "p. ej. 1.75"; +"Enter a value between 0.5 and 2.0" = "Introduce un valor entre 0.5 y 2.0"; "Forces the progress bar to appear on every reel" = "Fuerza la barra de progreso a aparecer en todos los reels"; +"Hide \"Made with Edits\" badge" = "Ocultar la insignia \"Made with Edits\""; +"Hide friends avatars" = "Ocultar avatares de amigos"; "Hide reels header" = "Ocultar el encabezado de los reels"; +"Hide social context overlay" = "Ocultar contexto social flotante"; +"Hides the avatar bubbles next to the Friends tab in reels" = "Oculta los avatares junto a la pestaña Amigos en los reels"; +"Hides the Edits app promo pill on reels" = "Oculta la pastilla promocional de la app Edits en los reels"; +"Hides the floating overlay showing who reposted or commented on reels" = "Oculta el panel flotante que muestra quién republicó o comentó los reels"; "Hides the repost button on the reels sidebar" = "Oculta el botón repost en la barra lateral de los reels"; "Hides the top navigation bar when watching reels" = "Oculta la barra de navegación superior al ver reels"; "Hiding" = "Ocultar"; +"Hold the 3-dot on any reel to open speed picker" = "Mantén pulsados los 3 puntos en cualquier reel para abrir el selector de velocidad"; "IG default" = "IG por defecto"; "IG default: native behavior. RyukGram: re-advances after swiping back." = "IG por defecto: comportamiento nativo. RyukGram: vuelve a avanzar después de deslizar hacia atrás."; "Limits" = "Límites"; "Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "Limita la cantidad de reels disponibles para desplazar en cualquier momento, y evita que se actualice"; "Only loads %@ %@" = "Solo cargar %@ %@"; "Places a button above the like/comment/share column on each reel" = "Coloca un botón sobre la columna de botones me gusta, comentar y compartir en cada reel"; +"Playback speed" = "Velocidad de reproducción"; "Prevent doom scrolling" = "Evitar doom scrolling"; "Prevents reels from being scrolled to the next video" = "Evita que los reels se desplacen al siguiente video"; "Prevents reels from unmuting when the volume/silent button is pressed" = "Evita que los reels dejen de estar silenciados cuando se presionan los botones de volumen o silencio"; "RyukGram" = "RyukGram"; "Shows an alert when you trigger a reels refresh" = "Muestra una alerta al solicitar una actualización de reels"; "Shows buttons to reveal and auto-fill the password on locked reels" = "Muestra botones para revelar y auto-completar la contraseña en reels bloqueados"; +"Swipe a reel left to open the author's profile" = "Desliza un reel hacia la izquierda para abrir el perfil del autor"; +"Swipe left to profile" = "Deslizar a la izquierda al perfil"; "Tap Controls" = "Controles táctiles"; "Tap to mute on photo reels" = "Tocar para silenciar en reels de fotos"; "Tapping the Reels tab while on reels does nothing" = "Pulsar el botón de reels no hace nada cuando te encuentres en la pestaña de Reels"; @@ -277,15 +361,19 @@ // Settings → Profile tab // ////////////////////////////////////////////////////////////////////////////// -"Adds a button next to the burger menu on profiles to copy username, name or bio" = "Añade un botón junto al menú de hamburguesa (☰) en los perfiles para copiar nombre de usuario, nombre o presentación"; +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "Añade un botón para filtrar y ordenar cualquier lista de seguidores/seguidos. Se restablece al salir."; "Adds a view option to the highlight long-press menu to open the cover in full-screen" = "Añade una opción de visualización en el menú que aparece al mantener pulsado sobre la historia destacada para abrir la portada en pantalla completa"; "Copy note on long press" = "Copia la nota al mantener pulsado"; +"Extra stats shown on each post and reel card in profile grids." = "Estadísticas adicionales mostradas en cada tarjeta de publicación y reel en las cuadrículas de perfil."; "Fake follower count" = "Seguidores falsos"; "Fake following count" = "Seguidos falsos"; "Fake post count" = "Publicaciones falsas"; "Fake profile stats" = "Estadísticas de perfil falsas"; "Fake verified badge" = "Insignia verificada falsa"; +"Fetch missing counts" = "Obtener contadores faltantes"; +"Filter & sort lists" = "Filtrar y ordenar listas"; "Follow indicator" = "Indicador de seguido"; +"Follower & following lists" = "Listas de seguidores y seguidos"; "Follower count" = "Número de seguidores"; "Following count" = "Número de seguidos"; "Long press a profile picture to open it in full-screen with zoom, share, and save" = "Mantener pulsado en una foto de perfil para abrirla en pantalla completa para ampliar, compartir y guardar"; @@ -293,12 +381,21 @@ "Long press to download directly (ignored when zoom is on)" = "Mantén pulsado para descargar directamente (Se ignora cuando la foto está ampliada)"; "Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "Los gestos al mantener pulsado en los elementos del perfil, se mantienen separados de los botones de acción específicos de cada función."; "Only affects your own profile header. Other users see the real numbers." = "Solo afecta al encabezado de tu propio perfil. Los demás usuarios ven los números reales."; +"Override view count" = "Sobrescribir contador de vistas"; "Post count" = "Número de publicaciones"; -"Profile copy button" = "Botón de copiar perfil"; +"Profile card details" = "Detalles de la tarjeta de perfil"; +"Profile stats" = "Estadísticas del perfil"; +"Render counts in shortened format." = "Mostrar los contadores en formato abreviado."; "Save profile picture" = "Guardar foto de perfil"; +"Short numbers" = "Números abreviados"; "Show a checkmark next to your name on your own profile" = "Muestra una marca de verificación junto a tu nombre en tu propio perfil"; +"Show full follower count" = "Mostrar número completo de seguidores"; +"Show full post count" = "Mostrar número completo de publicaciones"; +"Show like count" = "Mostrar contador de me gusta"; +"Show upload date" = "Mostrar fecha de publicación"; "Shows whether the profile user follows you" = "Muestra si el usuario del perfil te sigue"; "Tap to set" = "Tocar para establecer"; +"Uses Instagram's API. May hit rate limits." = "Usa la API de Instagram. Puede alcanzar límites de uso."; "View highlight cover" = "Ver portada de la historia destacada"; "Zoom profile photo" = "Ampliar foto de perfil"; @@ -307,23 +404,62 @@ // Settings → Saving tab // ////////////////////////////////////////////////////////////////////////////// +"Active, queued, and finished downloads" = "Descargas activas, en cola y finalizadas"; +"Auto-retry attempts" = "Intentos de reintento automático"; +"Auto-retry failed downloads" = "Reintentar descargas fallidas automáticamente"; "Confirm before download" = "Confirmar antes de descargar"; "Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "Obsoleto. El botón de acción de RyukGram (configurado por cada por cada tipo de contenido en Feed (Inicio)/Reels/Historias) es la nueva forma de descargar contenido multimedia. Habilita este control general solo si prefieres el antiguo método de mantener pulsado con varios dedos directamente sobre el contenido multimedia."; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "No pausar descargas, codificación ni escaneos de perfiles al salir de la app"; +"Download queue" = "Cola de descargas"; "Downloads" = "Descargas"; "Downloads with %@ %@" = "Descargar con %@ %@"; "Enable long-press gesture" = "Habilitar gesto de mantener pulsado"; "Finger count for long-press" = "Cantidad de dedos a mantener pulsados"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "Cuántas descargas se ejecutan a la vez — las extra esperan en cola y comienzan a medida que se liberan espacios. Las descargas fallidas se reintentan automáticamente ante errores de red. Abre el gestor para ver, cancelar o reintentar descargas."; +"Keep running in background" = "Seguir ejecutándose en segundo plano"; "Legacy long-press gesture" = "Gesto antiguo de mantener pulsado"; "Long-press hold time" = "Tiempo a mantener pulsado"; "Master toggle for the deprecated gesture workflow (off by default)" = "Control general para el gesto antiguo (Desactivado por defecto)"; +"Max simultaneous downloads" = "Descargas simultáneas máximas"; +"Open download manager" = "Abrir gestor de descargas"; "Press finger(s) for %@ %@" = "Pulsar dedo(s) por %@ %@"; -"Route saves into a dedicated album in Photos instead of the camera roll root" = "Guarda en un álbum dedicado en Fotos, en vez de la Fototeca"; +"Retry automatically when a download drops on a network error" = "Reintentar automáticamente cuando una descarga falle por un error de red"; +"Route saves into a custom album in Photos instead of the camera roll root" = "Guarda en un álbum dedicado en Fotos, en vez de la Fototeca"; +"Run up to %@ %@ at once" = "Ejecutar hasta %@ %@ a la vez"; "Save action" = "Acción después de guardar"; -"Save to RyukGram album" = "Guardar en álbum RyukGram"; -"Saving" = "Descargar"; +"Save to dedicated album" = "Guardar en álbum dedicado"; "Show a confirmation dialog before starting a download" = "Muestra un diálogo de confirmación antes de iniciar una descarga"; +"Try %@ more %@ before giving up" = "Intentar %@ %@ más antes de rendirse"; "What happens after the gesture downloads" = "Lo que ocurre después de que termina la descarga"; -"When \"Save to RyukGram album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a dedicated \"RyukGram\" album in your Photos library." = "Cuando \"Guardar en álbum RyukGram\" está activado, las descargas y elementos seleccionados en \"Guardar en Fotos\" se dirigen a un álbum llamado \"RyukGram\" en tu Fototeca."; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "Cuando \"Guardar en álbum dedicado\" está activado, las descargas y las opciones \"Guardar en Fotos\" del menú de compartir se dirigen a un álbum con nombre en tu fototeca. Toca \"Nombre del álbum\" para cambiarlo."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu fallidas"; +"%lu of %lu done" = "%lu de %lu completados"; +"%lu saved, %lu failed" = "%lu guardados, %lu fallidos"; +"Active" = "Activas"; +"Auto-retry" = "Reintento automático"; +"Clear completed" = "Borrar completadas"; +"Completed" = "Completadas"; +"Download settings" = "Ajustes de descarga"; +"Downloading %lu items" = "Descargando %lu elementos"; +"Downloading…" = "Descargando…"; +"Encoding %d%%" = "Codificando %d%%"; +"Encoding…" = "Codificando…"; +"Extra downloads wait in line and start as slots free up." = "Las descargas extra esperan en cola y comienzan a medida que se liberan espacios."; +"No downloads yet" = "Aún no hay descargas"; +"Preview" = "Vista previa"; +"Queued" = "En cola"; +"Redownload" = "Volver a descargar"; +"Retry" = "Reintentar"; +"Retrying…" = "Reintentando…"; +"Waiting for connection…" = "Esperando conexión…"; +"Waiting…" = "Esperando…"; ////////////////////////////////////////////////////////////////////////////// // STORIES // @@ -356,19 +492,24 @@ "Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "Marca una historia como vista cuando envías una respuesta o una reacción con emoji, incluso con el bloqueo de aviso de visualización activado"; "Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "Marca las historias como vistas localmente (círculo gris) mientras sigue bloqueando el recibo de visto en el servidor"; "Master toggle. When off, the list is ignored" = "Control general. Cuando está desactivado, la lista es ignorada"; -"Other" = "Otros"; "Playback" = "Reproducción"; -"Quick list button in stories" = "Botón de lista rápida en historias"; "Search, sort, swipe to remove" = "Buscar y ordenar. Desliza para eliminar"; "Seen receipts" = "Confirmación de visualización"; "Sending a reply or emoji reaction automatically advances to the next story" = "Enviar una respuesta o una reacción con emoji automáticamente avanza a la siguiente historia"; -"Show mentioned users in eye button and story menu" = "Mostrar usuarios mencionados en el botón con forma de ojo (👁) y el menú de la historia"; -"Shows an eye button on stories to add/remove users from the list. Off = use the 3-dot menu or long-press only" = "Muestra un botón con forma de ojo (👁) en las historias para añadir o eliminar usuarios de la lista. Desactivado = Usar el menú de los 3 puntos o solo mantener pulsado"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "Añade la opción 'Ver menciones' al menú del botón de acción y al menú de los 3 puntos de las historias"; +"Mentions overlay button" = "Botón de menciones en la superposición"; +"Mentions count badge" = "Insignia con número de menciones"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "Añade un botón junto al botón de acción / ojo en la superposición de las historias. Solo aparece cuando la historia actual contiene menciones o publicaciones / reels compartidos"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "Muestra el número de cuentas mencionadas únicas como una insignia roja en el botón superpuesto"; +"Hide stories midcards" = "Ocultar tarjetas intermedias de historias"; +"Removes the Trending and Music promo cards from the stories tray" = "Elimina las tarjetas promocionales de Tendencias y Música de la bandeja de historias"; "Stickers" = "Stickers"; -"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force Quiz brings the legacy Quiz sticker back into the story composer tray." = "Mira los resultados de encuestas/cuestionarios/deslizador antes de interactuar — aún puedes tocar para votar con normalidad. 'Forzar cuestionario' devuelve el sticker clásico de cuestionario a la bandeja del editor de historias."; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "Mira los resultados de encuestas/cuestionarios/deslizador antes de interactuar — aún puedes tocar para votar con normalidad. 'Forzar stickers clásicos' devuelve los stickers de cuestionario y revelado al editor de historias."; "Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "Mira los resultados de encuestas/cuestionarios/deslizador en reels antes de interactuar — aún puedes tocar para votar con normalidad."; -"Force Quiz sticker in tray" = "Forzar sticker de cuestionario"; -"Adds Quiz back to the story sticker picker" = "Devuelve el cuestionario al selector de stickers de historia"; +"Force legacy stickers in tray" = "Forzar stickers clásicos en la bandeja"; +"Adds Quiz and Reveal stickers back to the picker" = "Devuelve los stickers de cuestionario y revelado al selector"; +"Bypass Reveal sticker" = "Saltar sticker de revelado"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "Omite el paso de enviar un mensaje para revelar historias con un sticker de revelado"; "Show quiz answer" = "Mostrar respuesta del cuestionario"; "Circle the correct option on quiz stickers, or the leading option on polls" = "Resalta la opción correcta en cuestionarios, o la más votada en encuestas"; "Show poll vote counts" = "Mostrar votos de encuestas"; @@ -405,20 +546,21 @@ "Activity" = "Actividad"; "Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "Añade una opción 'Descargar' al menú que aparece al mantener pulsado sobre los mensajes de voz para guardarlos como archivos M4A"; +"Allows typing and sending DMs longer than Instagram's limit" = "Permite escribir y enviar mensajes más largos que el límite de Instagram"; "Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "Añade una opción 'Enviar archivo' al menú ⊕ en las conversaciones.\nTipos de archivos soportados puede estar limitado por Instagram"; "Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "Añade una opción 'Archivo de audio' al menú ⊕ en las conversaciones para enviar archivos de audio como mensajes de voz"; "Adds copy text, download GIF/audio to the note long-press menu" = "Añade las opciones copiar texto, descargar GIF/Audio al menú que aparece al mantener pulsada una nota"; "Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "Bloquear todo: Todas las conversaciones bloqueadas — Conversaciones en la lista son excepciones.\nBloquear seleccionadas: Solo las conversaciones en la lista son bloqueadas — Todo lo demás permanece normal.\nAmbas listas son guardadas independientemente. Mantén pulsada una conversación en la bandeja de entrada para añadir o eliminar"; "Block keep-deleted for excluded chats" = "Bloquea mantener mensajes eliminados para conversaciones excluidas"; "Block keep-deleted for unlisted chats" = "Bloquear mantener eliminados para conversaciones sin listar"; +"Bypass DM character limit" = "Omitir límite de caracteres en mensajes"; "Chat list" = "Lista de conversaciones"; "Confirmation dialog before clearing preserved messages" = "Muestra un diálogo de confirmación antes de borrar mensajes guardados"; "Copies note text directly on long press without opening the menu" = "Copia el texto de la nota directamente al mantener pulsado sin abrir el menú"; "Copy text on hold" = "Copiar texto al mantener pulsado"; -"Custom emojis and background/text colors" = "Emojis, color de fondo y texto personalizado"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "Añade un botón de pincel y un atajo con pulsación larga para elegir colores personalizados de fondo y texto"; "Custom note themes" = "Tema de notas personalizado"; "Disable vanish mode swipe" = "Deshabilitar deslizamiento al modo vanish"; -"Disable screenshot detection" = "Deshabilitar detección de capturas de pantalla"; "Disable typing status" = "Deshabilitar estado de escritura"; "Disable view-once limitations" = "Deshabilitar limitaciones de ver una vez"; "Download voice messages" = "Descargar mensajes de voz"; @@ -428,20 +570,26 @@ "Files" = "Archivos"; "Full last active date" = "Fecha de última vez completa"; "Hide reels blend button" = "Ocultar el botón de blend"; +"Hide send to group chat" = "Ocultar enviar a chat grupal"; +"Pin recipients on long-press" = "Fijar destinatarios al pulsar prolongadamente"; +"Long-press in the share sheet to pin a chat/user to the top" = "Pulsa prolongadamente en el panel para compartir para fijar un chat/usuario arriba"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "Pulsa prolongadamente un destinatario para fijarlo o desfijarlo. Los destinatarios fijados aparecen arriba."; +"Recipient pinned" = "Destinatario fijado"; +"Recipient unpinned" = "Destinatario desfijado"; +"Couldn't resolve recipient id" = "No se pudo resolver el id del destinatario"; "Hide video call button" = "Ocultar botón de video llamada"; "Hide voice call button" = "Ocultar botón de llamada"; "Hides the blend button in DMs" = "Elimina el botón de blend en las conversaciones"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "Elimina la opción de crear/enviar a chat grupal al compartir con varios destinatarios"; "Hides typing indicator from others" = "Oculta el indicador de escribiendo para los demás"; "Indicate unsent messages" = "Indicar eliminación de mensaje"; "Keep deleted messages" = "Mantener mensajes eliminados"; "Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "Hace que los mensajes para ver una vez se comporten como mensajes visuales normales (Búcle/Pausa)"; "Note actions" = "Acciones en notas"; -"Preserve messages that others unsend" = "Guardar los mensajes que los demás eliminen"; "Preserves messages that others unsend" = "Guarda los mensajes que los demás eliminen"; "Prevents accidental swipe-up activation of vanish mode" = "Evita la activación accidental del modo vanish al deslizar hacia arriba"; "Quick list button in chats" = "Botón de lista rápida en conversaciones"; "Removes the audio call button from DM thread header" = "Elimina el botón de llamada en las conversaciones"; -"Removes the screenshot-prevention features for visual messages in DMs" = "Elimina las funciones que impiden hacer capturas de pantalla para mensajes visuales en las conversaciones"; "Removes the video call button from DM thread header" = "Elimina el botón de video llamada en las conversaciones"; "Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "Reproducir mensajes visuales sin expiración. Alterna en el menú del botón ojo (👁), o como un botón por separado cuando el botón ojo (👁) está deshabilitado"; "Search, sort, swipe to remove or toggle keep-deleted" = "Buscar y ordenar. Desliza para eliminar o alterna mantener eliminados"; @@ -458,13 +606,127 @@ "Which chats get read-receipt blocking" = "Cuales conversaciones tienen bloqueada la confirmación de lectura"; "⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ Deslizar para actualizar en la pestaña Mensajes borra todos los mensajes guardados. Activa la advertencia que aparece arriba para que se muestre diálogo de confirmación."; +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu eliminado(s)"; +"%lu messages from %lu users" = "%lu mensajes de %lu usuarios"; +"%lu selected" = "%lu seleccionados"; +"Absolute date + time" = "Fecha y hora absolutas"; +"Adjust the filters or clear the search to see more." = "Ajusta los filtros o borra la búsqueda para ver más."; +"All time" = "Todo el tiempo"; +"Browse, filter and search recorded messages" = "Explora, filtra y busca mensajes registrados"; +"Captures unsent messages with their text or media" = "Captura mensajes no enviados con su texto o medios"; +"Clear deleted-message log?" = "¿Borrar registro de mensajes eliminados?"; +"Clear from this user" = "Borrar de este usuario"; +"Clear log" = "Borrar registro"; +"Clear log for this account" = "Borrar registro de esta cuenta"; +"Clear log for this user?" = "¿Borrar registro de este usuario?"; +"Clear media files" = "Borrar archivos multimedia"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "Borrar los medios mantiene los registros (texto, remitente, hora). Borrar el registro elimina todo de esta cuenta."; +"Close" = "Cerrar"; +"Content unavailable" = "Contenido no disponible"; +"Copied" = "Copiado"; +"Copy URL" = "Copiar URL"; +"Date range" = "Rango de fechas"; +"Deleted messages" = "Mensajes eliminados"; +"Deleted messages log" = "Registro de mensajes eliminados"; +"Deleted: %@\n" = "Eliminado: %@\n"; +"Edit %lu" = "Edición %lu"; +"Edit history" = "Historial de ediciones"; +"Edited" = "Editado"; +"Empty" = "Vacío"; +"Enable deleted messages log" = "Activar registro de mensajes eliminados"; +"Enable Settings → Messages → Deleted messages log to start recording." = "Activa Ajustes → Mensajes → Registro de mensajes eliminados para empezar."; +"GIF" = "GIF"; +"Hashtag" = "Hashtag"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "Tipo: %@\n"; +"Last 30 days" = "Últimos 30 días"; +"Last 7 days" = "Últimos 7 días"; +"Link" = "Enlace"; +"Live location" = "Ubicación en tiempo real"; +"Location" = "Ubicación"; +"Logging is off" = "El registro está desactivado"; +"Media on disk" = "Medios en disco"; +"Most messages" = "Más mensajes"; +"Most recent" = "Más reciente"; +"No deleted messages yet" = "Aún no hay mensajes eliminados"; +"No matches" = "Sin coincidencias"; +"Nothing to save" = "Nada para guardar"; +"Oldest first" = "Más antiguos primero"; +"Open log" = "Abrir registro"; +"Open profile" = "Abrir perfil"; +"Original" = "Original"; +"Play" = "Reproducir"; +"Post" = "Publicación"; +"Records every message someone unsends, grouped by sender" = "Registra cada mensaje que alguien retira, agrupado por remitente"; +"Reel" = "Reel"; +"Relative (1m / 3h / 3d ago)" = "Relativo (hace 1m / 3h / 3d)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "Elimina cada mensaje eliminado guardado y sus medios para la cuenta actual. Esto no se puede deshacer."; +"Removes every preserved deleted message and its captured media for this account." = "Elimina cada mensaje eliminado guardado y sus medios para esta cuenta."; +"Removes every preserved deleted message from this sender." = "Elimina cada mensaje eliminado guardado de este remitente."; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "Elimina cada foto, video y audio guardado. Los registros mantienen su texto e información del remitente."; +"Search messages" = "Buscar mensajes"; +"Search senders or messages" = "Buscar remitentes o mensajes"; +"Select" = "Seleccionar"; +"Show edit history" = "Mostrar historial de ediciones"; +"Source URL recorded but media not stored.\n" = "URL de origen registrada pero el medio no se almacenó.\n"; +"Sticker" = "Sticker"; +"Tap to open in Instagram" = "Toca para abrir en Instagram"; +"Tap to open in Maps" = "Toca para abrir en Mapas"; +"Tap to play" = "Toca para reproducir"; +"Tap to play · %@" = "Toca para reproducir · %@"; +"Text" = "Texto"; +"This account" = "Esta cuenta"; +"Unknown" = "Desconocido"; +"Video" = "Video"; +"View" = "Ver"; +"Voice" = "Voz"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "Cuando está activado, los mensajes eliminados y sus medios se guardan en este dispositivo. Desactiva y borra el registro para limpiar el historial."; +"When someone unsends a message, it will appear here grouped by sender." = "Cuando alguien retire un mensaje, aparecerá aquí agrupado por remitente."; + ////////////////////////////////////////////////////////////////////////////// // MESSAGES // // Settings → Messages tab // ////////////////////////////////////////////////////////////////////////////// +"Custom chat background" = "Fondo de chat personalizado"; +"Incoming calls stay silent — no ring, no screen, no notification" = "Las llamadas entrantes permanecen en silencio — sin tono, sin pantalla, sin notificación"; "Messages" = "Mensajes"; +"Silence incoming calls" = "Silenciar llamadas entrantes"; "Threads" = "Hilos"; +"Use your own images as chat backgrounds" = "Usa tus propias imágenes como fondos de chat"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "Añade un botón de galería a la cámara de instantáneas para enviar una foto desde tu álbum"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "Añade un botón de acciones de RyukGram a la cabecera del visor de Instants con entradas para expandir, guardar, compartir y guardar todo"; +"All loaded instants" = "Todas las instantáneas cargadas"; +"Bypasses the Instants screenshot block" = "Omite el bloqueo de capturas en Instants"; +"Could not locate the instant on screen" = "No se pudo localizar la instantánea en pantalla"; +"Current instant" = "Instantánea actual"; +"In-app Gallery" = "Galería interna"; +"Instant" = "Instantánea"; +"Instants" = "Instantáneas"; +"Instants action button" = "Botón de acciones de Instants"; +"No instants currently loaded" = "No hay instantáneas cargadas"; +"No media available to save" = "No hay contenido para guardar"; +"Photos library" = "Biblioteca de Fotos"; +"Pick from" = "Elegir desde"; +"Queued %lu instants" = "%lu instantáneas en cola"; +"Save all to Gallery" = "Guardar todas en la Galería"; +"Save all to Photos" = "Guardar todas en Fotos"; +"Save to Gallery" = "Guardar en la Galería"; +"Send from gallery" = "Enviar desde la galería"; +"Tweaks for the QuickSnap / Instants camera surface." = "Ajustes para la cámara de QuickSnap / Instantáneas."; +"Use" = "Usar"; ////////////////////////////////////////////////////////////////////////////// // NAVIGATION // @@ -501,46 +763,236 @@ // Settings → Confirm actions tab // ////////////////////////////////////////////////////////////////////////////// +"All" = "Todos"; +"Calls" = "Llamadas"; +"Comments & posts" = "Comentarios y publicaciones"; "Confirm actions" = "Confirmar acciones"; -"Confirm video call" = "Confirmar videollamada"; -"Confirm voice call" = "Confirmar llamada de voz"; "Confirm changing theme" = "Confirmar cambiar el tema"; "Confirm follow" = "Confirmar seguir"; "Confirm follow requests" = "Confirmar solicitud de seguimiento"; +"Confirm Instants capture" = "Confirmar captura de Instants"; +"Confirm Instants emoji reaction" = "Confirmar reacción con emojis en Instants"; "Confirm like: Posts" = "Confirmar me gusta en publicaciones"; "Confirm like: Reels" = "Confirmar me gusta en reels"; +"Confirm note emoji reaction" = "Confirmar reacción con emojis en notas"; +"Confirm note like" = "Confirmar me gusta en notas"; "Confirm posting comment" = "Confirmar publicar comentario"; "Confirm repost" = "Confirmar repost"; -"Confirm vanish mode" = "Confirmar modo Vanish"; -"Confirm sticker interaction (stories)" = "Confirma interacción con stickers (historias)"; +"Confirm send to group chat" = "Confirmar enviar a chat grupal"; "Confirm sticker interaction (highlights)" = "Confirma interacción con stickers (destacadas)"; +"Confirm sticker interaction (stories)" = "Confirma interacción con stickers (historias)"; "Confirm story emoji reaction" = "Confirmar reacción con emojis en historias"; "Confirm story like" = "Confirmar me gusta en historias"; +"Confirm switching Instant" = "Confirmar cambio de Instant"; "Confirm unfollow" = "Confirmar dejar de seguir"; +"Confirm vanish mode" = "Confirmar modo Vanish"; +"Confirm video call" = "Confirmar videollamada"; +"Confirm voice call" = "Confirmar llamada de voz"; "Confirm voice messages" = "Confirmar mensaje de voz"; +"Follows" = "Sigue"; +"Likes" = "Me gusta"; +"Messaging" = "Mensajería"; +"Reaction stickers only" = "Solo stickers de reacción"; +"Reactions" = "Reacciones"; +"Send to group chat?" = "¿Enviar a chat grupal?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "Muestra una alerta antes de crear/enviar a un chat grupal desde el menú de compartir"; +"Shows an alert before sending an emoji reaction on a note" = "Muestra una alerta antes de enviar una reacción con emojis en una nota"; "Shows an alert before sending an emoji reaction on a story" = "Muestra una alerta antes de enviar una reacción con emojis en una historia"; +"Shows an alert before sending an emoji reaction on an Instant" = "Muestra una alerta antes de enviar una reacción con emojis en un Instant"; +"Shows an alert before taking a photo with the Instants camera" = "Muestra una alerta antes de tomar una foto con la cámara de Instants"; +"Shows an alert before tapping to switch to the next/previous Instant" = "Muestra una alerta antes de tocar para cambiar al Instant siguiente/anterior"; "Shows an alert to confirm before sending a voice message" = "Muestra una alerta para confirmar antes de enviar un mensaje de voz"; "Shows an alert to confirm before toggling vanish mode" = "Muestra una alerta para confirmar antes de activar el modo Vanish"; "Shows an alert when you accept/decline a follow request" = "Muestra una alerta cuando aceptas o rechazas una solicitud de seguimiento"; "Shows an alert when you change a chat theme to confirm" = "Muestra una alerta para confirmar cuando cambias el tema en una conversación"; -"Shows an alert when you tap a sticker on someone's story" = "Muestra una alerta cuando tocas un sticker en la historia de alguien"; -"Shows an alert when you tap a sticker inside a highlight" = "Muestra una alerta cuando tocas un sticker dentro de una historia destacada"; -"Shows an alert when you click the video call button to confirm before calling" = "Muestra una alerta cuando tocas el botón de videollamada, antes de llamar"; -"Shows an alert when you click the voice call button to confirm before calling" = "Muestra una alerta cuando tocas el botón de llamada de voz, antes de llamar"; "Shows an alert when you click the follow button to confirm the follow" = "Muestra una alerta para confirmar cuando tocas el botón de seguir"; +"Shows an alert when you click the like button on notes to confirm the like" = "Muestra una alerta para confirmar cuando tocas el botón de me gusta en una nota"; "Shows an alert when you click the like button on posts to confirm the like" = "Muestra una alerta para confirmar cuando tocas el botón de me gusta en publicaciones"; "Shows an alert when you click the like button on reels to confirm the like" = "Muestra una alerta para confirmar cuando tocas el botón de me gusta en reels"; "Shows an alert when you click the like button on stories to confirm the like" = "Muestra una alerta para confirmar cuando tocas el botón de me gusta en historias"; "Shows an alert when you click the post comment button to confirm" = "Muestra una alerta para confirmar cuando tocas el botón de publicar comentario"; -"Shows an alert when you click the repost button to confirm before resposting" = "Muestra una alerta para confirmar cuando tocas el botón de repost"; +"Shows an alert when you click the repost button to confirm before reposting" = "Muestra una alerta para confirmar cuando tocas el botón de repost"; "Shows an alert when you click the unfollow button to confirm" = "Muestra una alerta para confirmar cuando tocas el botón de dejar de seguir"; +"Shows an alert when you click the video call button to confirm before calling" = "Muestra una alerta cuando tocas el botón de videollamada, antes de llamar"; +"Shows an alert when you click the voice call button to confirm before calling" = "Muestra una alerta cuando tocas el botón de llamada de voz, antes de llamar"; +"Shows an alert when you tap a sticker inside a highlight" = "Muestra una alerta cuando tocas un sticker dentro de una historia destacada"; +"Shows an alert when you tap a sticker on someone's story" = "Muestra una alerta cuando tocas un sticker en la historia de alguien"; +"Stories & highlights" = "Historias y destacados"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld h"; +"%ld locked" = "%ld bloqueados"; +"%ld min" = "%ld min"; +"%ldh idle" = "%ldh inactivo"; +"%ldm idle" = "%ldm inactivo"; +"%lds" = "%lds"; +"%lds idle" = "%lds inactivo"; +"%lu hidden" = "%lu ocultos"; +"4 digits" = "4 dígitos"; +"6 digits" = "6 dígitos"; +"Add hidden chat" = "Añadir chat oculto"; +"Add locked chat" = "Añadir chat bloqueado"; +"Allow Instants screenshots" = "Permitir capturas de Instants"; +"Always ask when opening again" = "Preguntar siempre al volver a abrir"; +"Ask again after Instagram returns" = "Preguntar de nuevo cuando Instagram vuelva"; +"Auto-relock after idle" = "Rebloqueo automático tras inactividad"; +"Balanced default" = "Predeterminado equilibrado"; +"Best for sensitive sections" = "Mejor para secciones sensibles"; +"Biometric" = "Biometría"; +"Change passcode" = "Cambiar código"; +"Chat hidden" = "Chat oculto"; +"Chat locked" = "Chat bloqueado"; +"Chat unlocked" = "Chat desbloqueado"; +"Choose a code you'll remember." = "Elige un código que recuerdes."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "Elige cuánto tiempo permanece desbloqueada esta sección mientras está inactiva. Nunca la mantiene desbloqueada hasta que Instagram se cierre o pase a segundo plano."; +"Confirm current passcode" = "Confirma el código actual"; +"Confirm passcode" = "Confirma el código"; +"Could not save passcode" = "No se pudo guardar el código"; +"Create passcode" = "Crear código"; +"Derivation failed" = "Falló la derivación"; +"DM inbox" = "Bandeja de DMs"; +"Don't share unlock" = "No compartir desbloqueo"; +"Each target has its own enable, timeout, and re-lock configuration." = "Cada objetivo tiene su propia configuración de activación, tiempo de espera y rebloqueo."; +"Enable lock" = "Activar bloqueo"; +"Enter passcode" = "Introduce el código"; +"Enter value" = "Introduce un valor"; +"Enter your current passcode to change it" = "Introduce tu código actual para cambiarlo"; +"Enter your current passcode to reset it" = "Introduce tu código actual para restablecerlo"; +"Enter your passcode to continue" = "Introduce tu código para continuar"; +"every use" = "cada vez"; +"Every use" = "Cada vez"; +"Hidden chats" = "Chats ocultos"; +"Hide chat" = "Ocultar chat"; +"Hide message preview" = "Ocultar vista previa del mensaje"; +"Hide this chat?" = "¿Ocultar este chat?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "Oculta la interfaz de RyukGram en capturas y grabaciones, y evita las alertas de captura de pantalla de Instagram por función."; +"Idle timeout" = "Tiempo de inactividad"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "Mantener este objetivo bloqueado por separado"; +"Less frequent prompts" = "Avisos menos frecuentes"; +"Lock" = "Bloquear"; +"Lock chat" = "Bloquear chat"; +"Lock every time" = "Bloquear siempre"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "Bloquear cada vez anula el tiempo de espera por inactividad. No compartir desbloqueo mantiene este objetivo separado."; +"Lock targets" = "Destinos de bloqueo"; +"Lock the tweak" = "Bloquear el tweak"; +"Lock this chat" = "Bloquear este chat"; +"Lock this chat?" = "¿Bloquear este chat?"; +"Lock with passcode" = "Bloquear con código"; +"Locked chats" = "Chats bloqueados"; +"Long-press a chat to lock it individually" = "Mantén pulsado un chat para bloquearlo individualmente"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "Mantén pulsado un chat → Ocultar chat para añadirlo aquí. Los chats ocultos se filtran de la bandeja hasta que los quites de esta lista."; +"Long-press a DM to add" = "Mantén pulsado un chat para añadirlo"; +"Longest idle window" = "Ventana de inactividad más larga"; +"Manage locked chats" = "Administrar chats bloqueados"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "Interruptor principal. Desactívalo para deshabilitar todos los destinos de bloqueo sin perder su configuración."; +"Never" = "Nunca"; +"No passcode set" = "Sin código establecido"; +"Nothing here yet." = "Aún no hay nada aquí."; +"Off" = "DESACTIVADO"; +"On" = "ACTIVADO"; +"On — %@" = "Activado — %@"; +"On — %@ + %ld more" = "Activado — %@ + %ld más"; +"On — no targets enabled" = "Activado — sin destinos activados"; +"Passcode" = "Código de acceso"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "Código + biometría. Bloquea la ventana de ajustes del tweak, la galería, el registro de mensajes eliminados, chats individuales y toda la app."; +"Passcode changed" = "Código cambiado"; +"Passcode reset" = "Código restablecido"; +"Passcode set" = "Código establecido"; +"Passcode too short" = "Código demasiado corto"; +"Passcodes did not match — try again" = "Los códigos no coinciden — inténtalo de nuevo"; +"Per-chat locks" = "Bloqueos por chat"; +"Prompt before Instagram opens" = "Pedir antes de abrir Instagram"; +"Prompt before Profile Analyzer opens" = "Pedir antes de abrir el Analizador de perfiles"; +"Prompt before the deleted-messages log opens" = "Pedir antes de abrir el registro de mensajes eliminados"; +"Prompt before the gallery opens" = "Pedir antes de abrir la galería"; +"Prompt before tweak settings open" = "Pedir antes de abrir los ajustes del tweak"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "Pedir en cada entrada a la bandeja de DMs, incluyendo abrir directo en mensajes"; +"Re-enter the same passcode" = "Vuelve a introducir el mismo código"; +"Re-lock on background" = "Rebloquear en segundo plano"; +"re-lock on bg" = "rebloquear en bg"; +"Recently hidden" = "Ocultados recientemente"; +"Recently locked" = "Bloqueados recientemente"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "Oculta los botones de RyukGram en capturas, grabaciones de pantalla y duplicado"; +"Remove screenshot alert" = "Quitar alerta de captura de pantalla"; +"Replace inbox preview with • • •" = "Reemplazar la vista previa de la bandeja con • • •"; +"Require passcode for this section" = "Requerir código para esta sección"; +"Requires your current passcode" = "Requiere tu código actual"; +"Reset passcode" = "Restablecer código"; +"Reset passcode?" = "¿Restablecer código?"; +"Screenshots & capture" = "Capturas y grabaciones"; +"Security & Privacy" = "Seguridad y privacidad"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "Establece un código para bloquear Ajustes, Galería, el registro de mensajes eliminados, chats individuales, la bandeja de DMs, el Analizador de perfiles o Instagram."; +"Set passcode" = "Establecer código"; +"Short idle window" = "Ventana de inactividad corta"; +"Stay unlocked until app close or background" = "Permanecer desbloqueado hasta cerrar la app o pasar a segundo plano"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "Suprime la notificación de IG \"X hizo una captura de pantalla\" en historias, mensajes directos y contenido temporal"; +"Tap Unlock" = "Toca Desbloquear"; +"Tap Unlock or enter your passcode" = "Toca Desbloquear o introduce tu código"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "Esto borra el código, desactiva todos los destinos de bloqueo y desbloquea todos los chats. La galería y los datos de mensajes eliminados no se tocan."; +"Thread %@" = "Hilo %@"; +"Tweak settings" = "Ajustes del tweak"; +"Unlock" = "Desbloquear"; +"Unlock %@" = "Desbloquear %@"; +"Unlock chat" = "Desbloquear chat"; +"Unlock Instagram" = "Desbloquear Instagram"; +"Unlock this chat" = "Desbloquear este chat"; +"Use %@" = "Usar %@"; +"Username (looks up the DM thread) or raw thread ID" = "Nombre de usuario (busca el chat) o ID de chat sin procesar"; +"Username or thread ID" = "Nombre de usuario o ID de chat"; +"Wrong passcode" = "Código incorrecto"; +"Wrong passcode • %ld attempts" = "Código incorrecto • %ld intentos"; ////////////////////////////////////////////////////////////////////////////// // BACKUP & RESTORE // // Settings → Backup & Restore tab // ////////////////////////////////////////////////////////////////////////////// +"%lu account(s)" = "%lu cuenta(s)"; +"%lu account(s) · %lu image(s) · %@" = "%lu cuenta(s) · %lu imagen(es) · %@"; +"%lu file(s) · %@" = "%lu archivo(s) · %@"; +"%lu preferences" = "%lu preferencias"; +"(none)" = "(ninguno)"; +"Apply backup?" = "¿Aplicar copia de seguridad?"; +"Applying backup…" = "Aplicando copia de seguridad…"; +"archive error" = "error de archivo"; +"Archived snapshots" = "Instantáneas archivadas"; "Backup & Restore" = "Copia de seguridad & restauración"; +"Backup exported" = "Copia de seguridad exportada"; +"Backup failed" = "Falló la copia de seguridad"; +"Backup has no importable sections." = "La copia de seguridad no tiene secciones importables."; +"Chat & story filters" = "Filtros de chats e historias"; +"Chat backgrounds" = "Fondos de chat"; +"Clear selected data" = "Borrar datos seleccionados"; +"Corrupt entry path." = "Ruta de entrada corrupta."; +"Could not decompress archive." = "No se pudo descomprimir el archivo."; +"Could not open archive." = "No se pudo abrir el archivo."; +"Could not open staging file." = "No se pudo abrir el archivo temporal."; +"Could not read the backup archive." = "No se pudo leer el archivo de copia de seguridad."; +"Could not write archive." = "No se pudo escribir el archivo."; +"Could not write backup file." = "No se pudo escribir el archivo de copia de seguridad."; +"Could not write extracted file." = "No se pudo escribir el archivo extraído."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "Los datos existentes de los elementos marcados se reemplazarán. Puede ser necesario reiniciar para que todo surta efecto."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "Exporta o importa datos de RyukGram: ajustes, filtros por cuenta, chats ocultos y bloqueados, Analizador de Perfiles, galería, fondos de chat y mensajes eliminados. Elige cualquier combinación en cada página. Los ajustes se mantienen como un archivo JSON plano; los paquetes con multimedia se exportan como un .ryukbak comprimido."; +"Hidden & locked chats" = "Chats ocultos y bloqueados"; +"Import" = "Importar"; +"Inspect the full manifest" = "Inspeccionar el manifiesto completo"; +"Load a .json or .ryukbak backup" = "Cargar una copia de seguridad .json o .ryukbak"; +"Not a RyukGram backup archive." = "No es un archivo de copia de seguridad de RyukGram."; +"PK %@" = "PK %@"; +"Preparing backup…" = "Preparando copia de seguridad…"; +"Reading backup…" = "Leyendo copia de seguridad…"; +"Save settings or a full backup" = "Guardar ajustes o una copia de seguridad completa"; +"Tick what to apply. Rows not in this backup are hidden." = "Marca qué aplicar. Las filas que no están en esta copia de seguridad se ocultan."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "Marca qué incluir. Toca una fila para inspeccionarla. Añadir galería, fondos de chat o mensajes eliminados produce un paquete .ryukbak comprimido."; +"Truncated entry data." = "Datos de entrada truncados."; +"Truncated entry length." = "Longitud de entrada truncada."; +"Truncated entry path." = "Ruta de entrada truncada."; +"Unsafe entry path." = "Ruta de entrada insegura."; ////////////////////////////////////////////////////////////////////////////// // ADVANCED // @@ -556,27 +1008,32 @@ "Clear" = "Limpiar"; "Clear cache" = "Limpiar caché"; "Clear cache (%@)" = "Limpiar caché (%@)"; -"Clear cache?" = "¿Limpiar caché?"; "Clearing cache…" = "Limpiando caché…"; "Clearing still scans on demand." = "La limpieza sigue escaneando bajo demanda."; "Daily" = "Diario"; "Disable safe mode" = "Deshabilitar modo seguro"; "Enable tweak settings quick-access" = "Habilitar acceso rápido a la configuración del Tweak"; -"Free %@ of Instagram cache. A restart is recommended." = "Liberar %@ de la caché de Instagram. Se recomienda reiniciar."; -"Freed %@. Restart to apply." = "Se liberaron %@. Reinicia para aplicar."; +"Fix duplicate notifications" = "Corregir notificaciones duplicadas"; +"Free %@ of Instagram cache." = "Liberar %@ de la caché de Instagram."; +"Freed %@" = "Se liberaron %@"; "Hold on the home tab to open RyukGram settings" = "Mantén pulsada la pestaña Feed (Inicio) para abrir la configuración de RyukGram"; -"Instagram" = "Instagram"; "Monthly" = "Mensual"; "Nothing to clear" = "Nada que limpiar"; "Off skips the size scan when Advanced opens." = "Desactivado omite el escaneo de tamaño al abrir Avanzado."; "Pause playback when opening settings" = "Pausa la reproducción al abrir la configuración"; +"Always show what's new" = "Mostrar siempre las novedades"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "Mantén el punto azul en cada función nueva en lugar de quitarlo al verla"; +"Preserve messages database" = "Conservar base de datos de mensajes"; "Pauses any playing video/audio when settings opens" = "Pausa cualquier reproducción de video o audio cuando se abre la configuración"; "Prevents Instagram from resetting settings after crashes (at your own risk)" = "Evita que Instagram restablezca la configuración después de un cierre inesperado\n(¡Bajo tu propia responsabilidad!)"; +"Prevents two banners for the same message when IG is in the foreground" = "Evita dos avisos para el mismo mensaje cuando IG está en primer plano"; "Remove Instagram's cached images, videos, and temporary files." = "Elimina imágenes, videos y archivos temporales en caché de Instagram."; "Reset onboarding state" = "Restablecer estado onboarding"; "Run a silent cache clear on launch when the interval has elapsed." = "Ejecuta una limpieza silenciosa al iniciar cuando ha pasado el intervalo."; "Show cache size" = "Mostrar tamaño de caché"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "Omite la base de datos de mensajes al limpiar — conserva DMs, borradores y mensajes guardados."; "Show tweak settings on app launch" = "Muestra la configuración del Tweak cuando se inicia la aplicación"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "Suprime la segunda notificación que IG encola en la app mientras la extensión de notificaciones también la entrega."; "Weekly" = "Semanal"; ////////////////////////////////////////////////////////////////////////////// @@ -627,11 +1084,11 @@ "Button Cell" = "Celda de botón"; "Change the value on the right" = "Cambia el valor a la derecha"; "Could not delete: %@" = "No se pudo eliminar: %@"; -"Debug" = "Debug"; +"Debug" = "Depuración"; "Delete an imported override and fall back to the shipped strings" = "Elimina un archivo importado y vuelve a las cadenas integradas"; "Deleted %@ override. Restart to apply." = "Se eliminó el archivo %@. Reinicia para aplicar."; "Enable FLEX gesture" = "Habilitar gesto FLEX"; -"Export English strings" = "Exportar archivo .strings en Inglés"; +"Export strings" = "Exportar archivo .strings"; "Hold 5 fingers on the screen to open FLEX" = "Mantén pulsados 5 dedos en la pantalla para abrir FLEX"; "I have %@%@" = "Tengo %@%@"; "Import a .strings file for a language" = "Importa un archivo .strings para añadir un idioma"; @@ -647,8 +1104,9 @@ "Opens FLEX when the app is focused" = "Abre FLEX cuando la aplicación es enfocada"; "Opens FLEX when the app launches" = "Abre FLEX cuando la aplicación se inicia"; "Pick a language to delete the imported file" = "Elige un idioma para borrar el archivo importado"; +"Pick a language to export" = "Elige un idioma para exportar"; "Reset localization" = "Restablecer localización"; -"Share the base English .strings file for translating" = "Comparte el archivo .strings en Inglés para traducir"; +"Pick a language and share its .strings file" = "Elige un idioma para compartir su archivo .strings"; "Static Cell" = "Celda estática"; "Stepper cell" = "Celda de paso"; "Switch Cell" = "Celda interruptor"; @@ -665,34 +1123,39 @@ ////////////////////////////////////////////////////////////////////////////// "%@ settings" = "Configuración de %@"; +"%lu items" = "%lu elementos"; "Cancelled" = "Cancelado"; +"Carousel" = "Carrusel"; +"Carousel · %lu items" = "Carrusel · %lu elementos"; "Copied %lu URLs" = "Copiados %lu enlaces"; "Copied caption" = "Descripción copiada"; "Copied download URL" = "Enlace de descarga copiado"; +"Copied quality info" = "Información de calidad copiada"; +"Copied video URL" = "URL del vídeo copiada"; "Copy all URLs" = "Copiar todos los enlaces"; "Copy caption" = "Copiar descripción"; "Copy download URL" = "Copiar enlace de descarga"; "Could not extract any URLs" = "No se logró extraer ningún enlace"; +"Could not extract audio URL" = "No se logró extraer enlace de audio"; "Could not extract media URL" = "No se logró extraer enlace de medios"; "Could not extract photo URL" = "No se logró extraer enlace de fotos"; "Could not extract video URL" = "No se logró extraer enlace de videos"; "Done" = "Finalizado"; -"Download all (%lu)" = "Descargar todos (%lu)"; "Download all stories and share?" = "¿Descargar todas las historias y compartir?"; "Download all to Photos" = "Descargar todo en Fotos"; "Download and share all" = "Descargar y compartir todo"; -"Download and share?" = "¿Descargar y compartir?"; "Download failed" = "Descarga fallida"; "Downloaded %lu items" = "Descargando %lu elementos"; -"Downloading %@..." = "Descargando %@..."; -"Downloading..." = "Descargando..."; +"Downloading audio…" = "Descargando audio…"; "Failed to save" = "Error al guardar"; +"File" = "Archivo"; +"HD" = "HD"; "HD download complete" = "Descarga HD completada"; +"HD video" = "Vídeo HD"; "Mute audio" = "Silenciar sonido"; "No caption on this post" = "No hay descripción en esta publicación"; "No carousel children" = "Sin carrusel hijo"; "No cover image" = "Sin imagen de portada"; -"No files downloaded" = "No se descargaron archivos"; "No media" = "Sin medios"; "No media to expand" = "Sin medios para ampliar"; "No media to show" = "Sin medios para mostrar"; @@ -701,22 +1164,22 @@ "No URLs found" = "Sin enlaces encontrados"; "No video URL" = "Sin enlace de video"; "Not a carousel" = "No es un carrusel"; -"Nothing to save" = "Nada para guardar"; "Nothing to share" = "Nada para compartir"; -"Opening creator..." = "Abriendo creador..."; +"Opening creator…" = "Abriendo creador..."; "Photo library access denied" = "Acceso a la Fototeca denegado"; "Photos access denied" = "Acceso a Fotos denegado"; -"Preparing repost..." = "Preparando repost..."; +"Preparing repost…" = "Preparando repost..."; +"Raw image" = "Imagen sin procesar"; "Repost" = "Repost"; "Repost unavailable" = "Repost no disponible"; -"Save all stories to Photos?" = "¿Guardar todas las historias en Fotos?"; "Save failed" = "Error al guardar"; -"Save to Photos?" = "¿Guardar en Fotos?"; "Saved %lu items" = "Guardados %lu elementos"; "Saved to Photos" = "Guardado en Fotos"; "Saved to RyukGram" = "Guardado en RyukGram"; -"Tap to cancel" = "Toca para cancelar"; +"Saving to Photos" = "Guardando en Fotos"; +"Saving…" = "Guardando..."; "Unmute audio" = "Activar sonido"; +"Video · %@" = "Vídeo · %@"; "View cover" = "Ver portada"; "View mentions" = "Ver menciones"; @@ -726,68 +1189,76 @@ // inside DM threads. // ////////////////////////////////////////////////////////////////////////////// +" %lu votes · avg %.0f%% " = " %lu votos · prom %.0f%% "; +"%@ can't be converted" = "No se puede convertir %@"; +"%@ unsent a message" = "%@ anuló un mensaje"; +"%@ unsent a message from %@" = "%1$@ anuló un mensaje de %2$@"; "A message was unsent" = "Se anuló el envío de un mensaje"; "Add" = "Añadir"; "Add to block list" = "Añadir a la lista de bloqueo"; -"Add to block list?" = "¿Añadir a la lista de bloqueo?"; "Added to block list" = "Añadido a la lista de bloqueo"; "Added to exclude list" = "Añadido a la lista de excluidos"; "Audio not loaded yet. Play the message first and try again." = "Audio aún no cargado. Reproduce el mensaje primero y vuelve a intentar."; "Audio sent" = "Audio enviado"; +"Audio URL not available" = "URL de audio no disponible"; "Audio/Video from Files" = "Audio/Video desde Archivos"; "Blocked" = "Bloqueado"; "Cancel" = "Cancelar"; "Clear preserved messages?" = "¿Borrar mensajes guardados?"; -"Converting..." = "Convirtiendo..."; +"Converting…" = "Convirtiendo..."; +"Copy link" = "Copiar enlace"; "Copy text" = "Copiar texto"; +"Could not copy selected video" = "No se pudo copiar el vídeo seleccionado"; "Could not find media" = "No se logró encontrar medios"; "Could not find story media" = "No se logró encontrar medios para la historia"; "Could not get audio data. Try again after refreshing the chat." = "No se encontró datos de audio. Intenta nuevamente luego de actualizar la conversación."; -"Could not get video URL" = "No se encontró enlace al video"; "Disable read receipts" = "Deshabilitar confirmación de lectura"; "Disappearing media" = "Medios efímeros"; -"Done!" = "¡Finalizado!"; "Download audio" = "Descargar audio"; -"Downloading audio..." = "Descargando audio..."; "Enable read receipts" = "Habilitar confirmación de lectura"; "Error: %@" = "Error: %@"; "Exclude chat" = "Excluir chat"; "Exclude from seen" = "Excluir de vistos"; "Exclude story seen" = "Excluir de visualización de historia"; "Excluded" = "Excluído"; -"Extracting audio..." = "Extrayendo audio..."; -"Failed to encode GIF" = "No se logró codificar el GIF"; +"Extracting audio…" = "Extrayendo audio..."; +"FFmpeg conversion failed" = "Falló la conversión con FFmpeg"; "File sending not supported" = "Enviar archivos no soportado"; "Follow" = "Seguir"; "Following" = "Siguiendo"; +"Format not supported without FFmpegKit" = "Formato no compatible sin FFmpegKit"; "Inserts a button on disappearing media overlays" = "Añade un botón sobre los medios efímeros"; "Inserts a speaker button to mute/unmute disappearing media" = "Añade un botón de altavoz para silenciar/activar medios efímeros"; "Inserts an eye button to mark the current disappearing media as viewed" = "Añade un botón de ojo para marcar los medios efímeros como vistos"; +"Link copied" = "Enlace copiado"; "Mark as viewed" = "Marcar como visto"; "Mark messages as seen" = "Marcar mensajes como vistos"; "Mark seen" = "Marcar como vista"; -"Marked as seen" = "Marcado como visto"; "Marked as viewed" = "Marcado como visto"; "Marked messages as seen" = "Mensajes marcados como vistos"; "Mentions" = "Menciones"; +"Message from %@ was unsent" = "Se anuló un mensaje de %@"; "Message sender not found" = "No se encontró remitente del mensaje"; "Messages settings" = "Configuración de Mensajes"; -"Audio URL not available" = "URL de audio no disponible"; "Mute story audio" = "Silenciar sonido de historia"; +"no audio track could be read" = "no se pudo leer ninguna pista de audio"; "No audio URL found. Try again after refreshing the chat." = "No se encontró enlace de audio. Intenta nuevamente luego de actualizar la conversación."; "No mentions in this story" = "Sin menciones en esta historia"; "No thread key" = "Sin llave"; +"No video selected" = "Ningún vídeo seleccionado"; "No voice send method found" = "No se encontró método para envío de voz"; -"Note not found" = "Nota no encontrada"; +"Note has no downloadable content" = "La nota no tiene contenido descargable"; "Note text copied" = "Texto de la nota copiado"; "Open GitHub" = "Abrir GitHub"; +"Pick audio or video" = "Elegir audio o vídeo"; "Read receipts disabled" = "Confirmación de lectura DESACTIVADA"; "Read receipts enabled" = "Confirmación de lectura ACTIVADA"; "Read receipts will be blocked for this chat." = "Confirmación de lectura estará bloqueado para esta conversación."; "Read receipts will no longer be blocked for this chat." = "Confirmación de lectura ya no estará bloqueado para este chat."; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "Actualizar los mensajes borrará %lu mensaje guardado. Esto no se puede deshacer."; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "Actualizar los mensajes borrará %lu mensajes guardados. Esto no se puede deshacer."; "Remove" = "Eliminar"; "Remove from block list" = "Eliminar de la lista de bloqueo"; -"Remove from block list?" = "¿Eliminar de la lista de bloqueo?"; "Remove from exclude list" = "Quitar de la lista de excluidos"; "Removed" = "Eliminado"; "Removed from list" = "Eliminado de la lista"; @@ -796,15 +1267,16 @@ "Send anyway" = "Enviar de todos modos"; "Send Audio" = "Enviar audio"; "Send failed: %@" = "Envío fallido: %@"; +"Send File" = "Enviar archivo"; "Send service not found" = "Servicio de envío no encontrado"; "Show audio toggle" = "Mostrar interruptor de audio"; "Show mark-as-viewed button" = "Mostrar botón de marcar como visto"; "Story read receipts disabled" = "Aviso de visualización de historia DESACTIVADO"; "Story read receipts enabled" = "Aviso de visualización de historia ACTIVADO"; "This chat will resume normal read-receipt behavior." = "Este chat volverá a funcionar con el sistema habitual de confirmaciones de lectura."; +"This file" = "Este archivo"; "Total: %@" = "Total: %@"; "Un-exclude chat" = "No excluir conversación"; -"Un-exclude chat?" = "¿No excluir conversación?"; "Un-exclude story seen" = "No excluir de visualización de la historia"; "Un-excluded" = "No excluído"; "Unblocked" = "Desbloqueado"; @@ -817,7 +1289,58 @@ "Visual messages will expire" = "Mensajes visuales expirarán"; "Visual messages: expiring" = "Mensajes visuales: Expirando"; "Visual messages: unlimited replay" = "Mensajes visuales: Reproducción ilimitada"; -"Will sync when leaving stories" = "Se sincronizará al salir de las historias"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "Añadir fondo"; +"Add Chat Background" = "Añadir fondo de chat"; +"Adds your own image backgrounds to Instagram chats" = "Añade tus propias imágenes de fondo a los chats de Instagram"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "Tras activarlo, abre cualquier chat, toca el botón de tema y luego el icono de foto en la parte superior derecha."; +"Blur" = "Desenfoque"; +"Browse chats" = "Explorar chats"; +"Browse chats (%ld)" = "Explorar chats (%ld)"; +"Change Background" = "Cambiar fondo"; +"Change default" = "Cambiar predeterminado"; +"Chat Backgrounds" = "Fondos de chat"; +"Choose an image used when no chat override exists" = "Elige una imagen para usar cuando no haya una específica del chat"; +"Choose Image" = "Elegir imagen"; +"Clear default" = "Borrar predeterminado"; +"Couldn't import image" = "No se pudo importar la imagen"; +"Custom Chat Background" = "Fondo de chat personalizado"; +"Default background" = "Fondo predeterminado"; +"Delete library images, default background, and chat overrides" = "Eliminar imágenes de la biblioteca, fondo predeterminado y fondos específicos de chats"; +"Dim in dark mode" = "Atenuar en modo oscuro"; +"Edit image settings" = "Editar ajustes de imagen"; +"Enable custom backgrounds" = "Activar fondos personalizados"; +"Enter a username, chat name, or thread ID." = "Introduce un nombre de usuario, nombre de chat o ID de hilo."; +"Group" = "Grupo"; +"Image Settings" = "Ajustes de imagen"; +"Library" = "Biblioteca"; +"Library, default, and per-chat overrides will be deleted." = "Se eliminarán la biblioteca, el predeterminado y los fondos específicos de cada chat."; +"No Custom" = "Sin personalizado"; +"Opacity" = "Opacidad"; +"Photo Library" = "Fototeca"; +"Pick default" = "Elegir predeterminado"; +"Pinch + drag to position" = "Pellizca y arrastra para posicionar"; +"Quit and reopen Instagram for the change to take effect." = "Cierra y vuelve a abrir Instagram para que el cambio surta efecto."; +"Recently set" = "Configurado recientemente"; +"Remove the global fallback background" = "Eliminar el fondo de reserva global"; +"Replace the default background image" = "Reemplazar la imagen de fondo predeterminada"; +"Reset all backgrounds" = "Restablecer todos los fondos"; +"Reset all backgrounds?" = "¿Restablecer todos los fondos?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "Restablecer fija la opacidad en 1.0, el desenfoque en 0 y la atenuación en 0."; +"RyukGram Gallery" = "Galería de RyukGram"; +"Search username, name, or thread ID" = "Buscar nombre de usuario, nombre o ID de hilo"; +"Set as default" = "Establecer como predeterminado"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "Toca el signo más para añadir. Toca un fondo para editarlo, establecerlo como predeterminado o eliminarlo."; +"This Chat Background" = "Fondo de este chat"; +"Thread ID" = "ID de hilo"; +"Used only when a chat does not have its own custom background." = "Se usa solo cuando un chat no tiene su propio fondo personalizado."; +"View and manage chats with custom backgrounds" = "Ver y gestionar chats con fondos personalizados"; ////////////////////////////////////////////////////////////////////////////// // GENERAL FEATURES // @@ -827,213 +1350,231 @@ "Add location" = "Añadir ubicación"; "Add preset" = "Añadir ajuste preestablecido"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "Afecta todo lo de arriba. Cuando está desactivado, el tema y las anulaciones por superficie de RyukGram solo se aplican mientras iOS esté en modo oscuro — dejando el modo claro intacto."; +"Apply & restart" = "Aplicar y reiniciar"; +"Background" = "Fondo"; +"Behavior" = "Comportamiento"; "Change location" = "Cambiar ubicación"; -"Click the Apply button after this to see the emoji" = "Toca el botón Aplicar después de esto para ver el emoji"; "Clipboard is not an Instagram URL" = "El portapapeles no contiene un enlace de Instagram"; "Comments hidden" = "Comentarios ocultos"; "Comments shown" = "Comentarios mostrados"; "Copied text to clipboard" = "Texto copiado al portapapeles"; "Copy" = "Copiar"; -"Copy all" = "Copiar todo"; "Copy bio" = "Copiar presentación"; -"Copy from profile" = "Copiar desde perfil"; "Copy name" = "Copiar nombre"; "Could not find cover image" = "No se encontró imagen de portada"; "Current: %@" = "Actual: %@"; +"Dark" = "Oscuro"; "Disable" = "Desactivado"; "Download GIF" = "Descargar GIF"; "Dropped pin" = "Marcador"; +"Emoji" = "Emoji"; "Enable" = "Activado"; "Enable Location Services for Instagram in Settings to use your current location." = "Activa los servicios de ubicación para Instagram en Ajustes para usar tu ubicación actual."; -"Enter Emoji Text" = "Introduce Texto con Emoji"; +"Enter emoji" = "Introduce un emoji"; "Fake location" = "Ubicación falsa"; +"Force theme" = "Forzar tema"; +"Keyboard theme" = "Tema del teclado"; +"Light" = "Claro"; "Location access denied" = "Acceso a ubicación denegado"; "Location Services off" = "Servicios de ubicación desactivados"; "Name" = "Nombre"; "Nothing to copy" = "Nada para copiar"; +"Off, Light, Dark, or OLED" = "Desactivado, Claro, Oscuro u OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "Tema OLED en chats"; "Open Settings" = "Abrir Ajustes"; +"Optional per-surface overrides. Each one is independent of the theme above." = "Anulaciones opcionales por superficie. Cada una es independiente del tema de arriba."; +"Override iOS appearance regardless of system mode" = "Anula la apariencia de iOS sin importar el modo del sistema"; +"Override the keyboard appearance when typing" = "Cambia la apariencia del teclado al escribir"; "Pick location" = "Elegir ubicación"; +"Pure black DM thread + incoming bubbles" = "Fondo negro puro en mensajes directos y burbujas entrantes"; +"Reset theme" = "Restablecer tema"; +"Restart Instagram to apply your theme changes" = "Reinicia Instagram para aplicar los cambios de tema"; "Save" = "Guardar"; "Save preset" = "Guardar ajuste preestablecido"; "Saved locations" = "Ubicaciones guardadas"; "Select color" = "Escoger color"; "Set location" = "Establecer ubicación"; -"Settings…" = "Configuración…"; -"Turn Location Services on in Settings → Privacy to use your current location." = "Activa los servicios de ubicación en Ajustes → Privacidad para usar tu ubicación actual."; -"Type emoji..." = "Introduce emoji..."; - +"The theme RyukGram applies to Instagram." = "El tema que RyukGram aplica a Instagram."; "Theme" = "Tema"; -"Appearance" = "Apariencia"; -"Keyboard" = "Teclado"; -"Force dark mode" = "Forzar modo oscuro"; -"Keep Instagram in dark appearance regardless of iOS system setting" = "Mantén Instagram en apariencia oscura sin importar el ajuste de iOS"; -"Full OLED" = "OLED completo"; -"Replace Instagram's dark grays with pure black across the entire app" = "Sustituye los grises oscuros de Instagram por negro puro en toda la app"; -"OLED chat theme" = "Tema OLED en chats"; -"Pure black DM thread background and incoming message bubbles" = "Fondo negro puro en los mensajes directos y en las burbujas entrantes"; -"Keyboard theme" = "Tema del teclado"; -"Override the keyboard appearance when typing inside Instagram" = "Cambia la apariencia del teclado al escribir dentro de Instagram"; -"Dark uses the system dark keyboard. OLED forces the keyboard backdrop to pure black." = "Oscuro usa el teclado oscuro del sistema. OLED fuerza el fondo del teclado a negro puro."; -"Dark" = "Oscuro"; -"OLED" = "OLED"; -"Apply & restart" = "Aplicar y reiniciar"; -"Restart Instagram to apply your theme changes" = "Reinicia Instagram para aplicar los cambios de tema"; -"Theme changes only take effect after an app restart. Tap Apply below when you're done choosing." = "Los cambios de tema solo se aplican tras reiniciar la app. Toca Aplicar cuando termines de elegir."; +"Turn every theme option off and restart" = "Desactivar todas las opciones de tema y reiniciar"; +"Turn Location Services on in Settings → Privacy to use your current location." = "Activa los servicios de ubicación en Ajustes → Privacidad para usar tu ubicación actual."; +"Type an emoji to use as the note bubble icon." = "Escribe un emoji para usarlo como icono de la burbuja de nota."; +"View profile picture" = "Ver foto de perfil"; ////////////////////////////////////////////////////////////////////////////// // PROFILE ANALYZER // -// Settings → General → Profile Analyzer // +// Settings → Profile Analyzer // ////////////////////////////////////////////////////////////////////////////// +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "¿%@ %lu cuentas? Se procesarán las primeras %ld para evitar límites de la API."; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "¿%@ %lu cuentas? Se ejecuta en orden con una pausa breve entre cada una."; +"%@ followers · %@ following" = "%@ seguidores · %@ siguiendo"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "hace %d d"; +"%dh ago" = "hace %d h"; +"%dm ago" = "hace %d min"; +"%lu accounts followed" = "%lu cuentas seguidas"; +"%lu accounts unfollowed" = "%lu cuentas sin seguir"; "%lu followers · %lu following" = "%lu seguidores · %lu seguidos"; "%lu of %lu" = "%lu de %lu"; +"%lu saved · comparing against %@" = "%lu guardados · comparando con %@"; +"(empty)" = "(vacío)"; +"(no analyzer data)" = "(sin datos del analizador)"; +"a saved snapshot" = "una instantánea guardada"; +"About Profile Analyzer" = "Acerca del analizador de perfil"; +"All preferences (%lu)" = "Todas las preferencias (%lu)"; "Analysis complete" = "Análisis completado"; "Analysis failed" = "Error en el análisis"; "Another analysis is already running" = "Ya hay otro análisis en curso"; "Available after your next scan" = "Disponible tras tu próximo análisis"; -"Cancelled" = "Cancelado"; +"Batch follow" = "Seguir en lote"; +"Batch follow finished" = "Seguir en lote finalizado"; +"Batch unfollow" = "Dejar de seguir en lote"; +"Batch unfollow finished" = "Dejar de seguir en lote finalizado"; +"Categories" = "Categorías"; +"Clear visited profiles" = "Borrar perfiles visitados"; +"Compare next scan against" = "Comparar el próximo escaneo con"; +"Comparing against %@" = "Comparando con %@"; +"Continue" = "Continuar"; "Couldn't fetch profile information" = "No se pudo obtener la información del perfil"; +"Delete %lu snapshots? This can't be undone." = "¿Eliminar %lu instantáneas? Esto no se puede deshacer."; +"Delete (%lu)" = "Eliminar (%lu)"; +"Delete snapshots" = "Eliminar instantáneas"; +"Delete this snapshot? This can't be undone." = "¿Eliminar esta instantánea? Esto no se puede deshacer."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "Cada escaneo guarda una copia completa de tus seguidores y seguidos para poder compararlos más tarde. Todo permanece en este dispositivo."; +"Export" = "Exportar"; "Fetching followers (%lu/%ld)…" = "Obteniendo seguidores (%lu/%ld)…"; "Fetching following (%lu/%ld)…" = "Obteniendo seguidos (%lu/%ld)…"; "Fetching profile info…" = "Obteniendo información del perfil…"; -"Categories" = "Categorías"; +"File is not a valid RyukGram backup." = "El archivo no es una exportación válida de RyukGram."; +"Filter" = "Filtrar"; +"Filter · %lu" = "Filtrar · %lu"; "First scan: %@" = "Primer análisis: %@"; +"First scan: we collect your followers and following lists and save them locally." = "Primer análisis: recopilamos tus listas de seguidores y seguidos y las guardamos localmente."; +"Follow %lu" = "Seguir %lu"; "Follower count exceeds %ld — analysis disabled to avoid rate limits." = "Número de seguidores supera %ld — análisis desactivado para evitar límites de la API."; +"Followers" = "Seguidores"; +"Following… %lu / %lu" = "Siguiendo… %lu / %lu"; "Gained since last scan" = "Ganados desde el último análisis"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Aviso: esta función está en beta y utiliza la API privada de Instagram. Ejecutarla de forma consecutiva o justo tras mucha actividad de seguir/dejar de seguir puede provocar un límite temporal. Úsala con moderación y bajo tu propio riesgo."; +"Import complete" = "Importación completada"; +"Include" = "Incluir"; +"Keep newest" = "Mantener las más recientes"; +"Keep newest snapshots" = "Mantener las instantáneas más recientes"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Las cuentas grandes están bloqueadas: el análisis se desactiva por encima de 13.000 seguidores para evitar que Instagram aplique un límite a toda la app."; "Last scan: %@" = "Último análisis: %@"; +"Logs every profile you open. Stays on-device." = "Registra cada perfil que abres. Se queda en el dispositivo."; "Lost followers" = "Seguidores perdidos"; +"Most visited" = "Más visitado"; "Mutual followers" = "Seguidores mutuos"; "Name: %@ → %@" = "Nombre: %@ → %@"; "New followers" = "Nuevos seguidores"; -"No results" = "Sin resultados"; "No active Instagram session found" = "No se encontró una sesión de Instagram activa"; +"No results" = "Sin resultados"; "No scan yet" = "Aún sin análisis"; "Not following you back" = "No te siguen de vuelta"; +"Not verified only" = "Solo no verificadas"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "No se sube nada — todo queda en este dispositivo y puede borrarse desde el icono de la papelera."; +"Nothing was applied." = "No se aplicó nada."; "OK" = "OK"; +"Older snapshots beyond the limit are removed automatically" = "Las instantáneas más antiguas que superen el límite se eliminan automáticamente"; +"Older snapshots beyond this limit are deleted on the next scan." = "Las instantáneas más antiguas que superen este límite se eliminan en el próximo escaneo."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "Elige qué eliminar. Instantáneas borra las diferencias de escaneo y cada instantánea registrada; perfiles visitados borra el historial de visitas."; +"Posts" = "Publicaciones"; +"Preferences" = "Preferencias"; +"Previous scan" = "Escaneo anterior"; "Private account" = "Cuenta privada"; +"Private only" = "Solo privadas"; "Profile Analyzer" = "Analizador de perfil"; +"Profile Analyzer data" = "Datos del analizador de perfil"; "Profile picture changed" = "Foto de perfil cambiada"; "Profile updates" = "Cambios de perfil"; -"Removes cached snapshots for this account. You'll lose since-last-scan diffs." = "Borra las instantáneas guardadas de esta cuenta. Perderás los cambios desde el último análisis."; +"Profiles you've opened recently" = "Perfiles que abriste recientemente"; +"Raw" = "Bruto"; +"Raw JSON" = "JSON bruto"; +"Record snapshots" = "Registrar instantáneas"; +"Recording" = "Grabación"; "Request failed" = "Solicitud fallida"; -"Reset analyzer data?" = "¿Restablecer datos del analizador?"; +"Reset analyzer data" = "Restablecer datos del analizador"; +"Reset complete" = "Restablecimiento completado"; +"Reset everything" = "Restablecer todo"; +"Reset selected data?" = "¿Restablecer los datos seleccionados?"; +"Reset snapshots" = "Restablecer instantáneas"; +"Rolling — always your last run" = "Continuo — siempre tu última ejecución"; "Run analysis" = "Ejecutar análisis"; "Run your first analysis" = "Ejecuta tu primer análisis"; -"Search username or name" = "Buscar usuario o nombre"; +"Save a dated entry on every scan" = "Guardar una entrada con fecha en cada escaneo"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "A partir del segundo análisis: cada análisis se compara con el anterior, mostrando seguidores nuevos/perdidos, tus propios movimientos de seguir/dejar de seguir y cambios de perfil."; +"Settings" = "Ajustes"; "Since last scan" = "Desde el último análisis"; +"Snapshot" = "Instantánea"; +"Snapshots" = "Instantáneas"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "Las instantáneas te permiten archivar cada escaneo y elegir con cuál se comparan los nuevos escaneos. Seguir visitas registra cada perfil que abres para que puedas revisarlos aquí."; +"Sort" = "Ordenar"; "Starting…" = "Iniciando…"; "They follow you, you don't follow back" = "Te siguen, no los sigues de vuelta"; +"This can't be undone." = "No se puede deshacer."; +"Ticked data will be cleared. Tap a row to see what's stored." = "Los datos seleccionados se borrarán. Toca cualquier fila para ver qué hay guardado."; +"Today" = "Hoy"; "Too many followers" = "Demasiados seguidores"; "Too many followers to analyze" = "Demasiados seguidores para analizar"; +"Track visited profiles" = "Rastrear perfiles visitados"; +"Tracking" = "Seguimiento"; +"Tracking off — enable below to log visits" = "Seguimiento desactivado — actívalo abajo para registrar visitas"; "Unfollow" = "Dejar de seguir"; +"Unfollow %lu" = "Dejar de seguir %lu"; "Unfollow @%@?" = "¿Dejar de seguir a @%@?"; "Unfollowed you since last scan" = "Te dejaron de seguir desde el último análisis"; +"Unfollowing… %lu / %lu" = "Dejando de seguir… %lu / %lu"; +"Unlimited" = "Ilimitado"; +"Username A → Z" = "Usuario A → Z"; +"Username Z → A" = "Usuario Z → A"; "Username, name or picture changes" = "Cambios de usuario, nombre o foto"; "Username: @%@ → @%@" = "Usuario: @%@ → @%@"; +"Using %@ across %lu snapshots." = "Usando %@ en %lu instantáneas."; +"Verified only" = "Solo verificadas"; +"Visited" = "Visitado"; +"Visited profiles" = "Perfiles visitados"; "We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "No se ejecuta cuando los seguidores superan %ld, para evitar límites de Instagram."; "You both follow each other" = "Os seguís mutuamente"; "You don't follow back" = "No los sigues de vuelta"; "You follow them, they don't follow back" = "Los sigues, no te siguen de vuelta"; "You started following" = "Empezaste a seguir"; "You unfollowed" = "Dejaste de seguir"; - -"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "¿%@ %lu cuentas? Se procesarán las primeras %ld para evitar límites de la API."; -"%@ %lu accounts? This runs sequentially with a short pause between each." = "¿%@ %lu cuentas? Se ejecuta en orden con una pausa breve entre cada una."; -"%lu account(s) · %lu snapshot(s) · tap to inspect" = "%lu cuenta(s) · %lu captura(s) · toca para ver"; -"%lu accounts followed" = "%lu cuentas seguidas"; -"%lu accounts unfollowed" = "%lu cuentas sin seguir"; -"%lu entries across %lu lists · tap to inspect" = "%lu entradas en %lu listas · toca para ver"; -"%lu preferences · tap to inspect" = "%lu preferencias · toca para ver"; -"(empty)" = "(vacío)"; -"(no analyzer data)" = "(sin datos del analizador)"; -"(no lists)" = "(sin listas)"; -"About Profile Analyzer" = "Acerca del analizador de perfil"; -"All preferences (%lu)" = "Todas las preferencias (%lu)"; -"Apply imported data?" = "¿Aplicar datos importados?"; -"Batch follow" = "Seguir en lote"; -"Batch follow finished" = "Seguir en lote finalizado"; -"Batch unfollow" = "Dejar de seguir en lote"; -"Batch unfollow finished" = "Dejar de seguir en lote finalizado"; -"Continue" = "Continuar"; -"Current snapshot" = "Captura actual"; -"Embed domains" = "Dominios de embed"; -"Excluded lists" = "Listas excluidas"; -"Excluded story users" = "Usuarios de historias excluidos"; -"Existing values for the selected scope will be replaced. The app may need to restart for some changes to take effect." = "Los valores actuales del ámbito seleccionado serán reemplazados. Puede ser necesario reiniciar la app para que algunos cambios surtan efecto."; -"Export" = "Exportar"; -"File has no importable sections." = "El archivo no contiene secciones importables."; -"File is not a valid RyukGram export." = "El archivo no es una exportación válida de RyukGram."; -"Filter" = "Filtrar"; -"First scan: we collect your followers and following lists and save them locally." = "Primer análisis: recopilamos tus listas de seguidores y seguidos y las guardamos localmente."; -"Follow %lu" = "Seguir %lu"; -"Followers" = "Seguidores"; -"Following… %lu / %lu" = "Siguiendo… %lu / %lu"; -"Full name" = "Nombre completo"; -"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Aviso: esta función está en beta y utiliza la API privada de Instagram. Ejecutarla de forma consecutiva o justo tras mucha actividad de seguir/dejar de seguir puede provocar un límite temporal. Úsala con moderación y bajo tu propio riesgo."; -"Import complete" = "Importación completada"; -"Include" = "Incluir"; -"Included story users" = "Usuarios de historias incluidos"; -"Inspect the full payload" = "Inspeccionar la carga completa"; -"Keep scan history" = "Conservar historial de análisis"; -"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Las cuentas grandes están bloqueadas: el análisis se desactiva por encima de 13.000 seguidores para evitar que Instagram aplique un límite a toda la app."; -"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "No se sube nada — todo queda en este dispositivo y puede borrarse desde el icono de la papelera."; -"Not verified only" = "Solo no verificadas"; -"Nothing was applied." = "No se aplicó nada."; -"Posts" = "Publicaciones"; -"Preferences" = "Preferencias"; -"Previous snapshot" = "Captura anterior"; -"Private only" = "Solo privadas"; -"Profile Analyzer data" = "Datos del analizador de perfil"; -"Raw" = "Bruto"; -"Raw JSON" = "JSON bruto"; -"Reset analyzer data" = "Restablecer datos del analizador"; -"Reset complete" = "Restablecimiento completado"; -"Reset selected data?" = "¿Restablecer los datos seleccionados?"; -"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "A partir del segundo análisis: cada análisis se compara con el anterior, mostrando seguidores nuevos/perdidos, tus propios movimientos de seguir/dejar de seguir y cambios de perfil."; -"Select all" = "Seleccionar todo"; -"Selected data will be cleared. Tap any row to see what's stored." = "Los datos seleccionados se borrarán. Toca cualquier fila para ver qué hay guardado."; -"Settings" = "Ajustes"; -"Sort" = "Ordenar"; -"This can't be undone." = "No se puede deshacer."; -"Tick what to apply. Tap any row to inspect. Sections not in the file are disabled." = "Marca lo que quieras aplicar. Toca cualquier fila para inspeccionar. Las secciones ausentes del archivo están deshabilitadas."; -"Tick what to include. Tap any row to inspect its contents." = "Marca lo que quieras incluir. Toca cualquier fila para ver su contenido."; -"Unfollow %lu" = "Dejar de seguir %lu"; -"Unfollowing… %lu / %lu" = "Dejando de seguir… %lu / %lu"; -"Username A → Z" = "Usuario A → Z"; -"Username Z → A" = "Usuario Z → A"; -"Verified only" = "Solo verificadas"; -"When on, scans compare against your first scan so new/lost followers and profile updates don't disappear between scans." = "Cuando está activado, cada análisis se compara con el primero, así los seguidores nuevos/perdidos y los cambios de perfil no desaparecen entre análisis."; +"your previous scan" = "tu escaneo anterior"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "“Escaneo anterior” siempre mide contra tu última ejecución. Elige una instantánea guardada para comparar con un punto fijo en el tiempo en su lugar."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ Esto se está volviendo grande — reduce el límite o elimina instantáneas antiguas para liberar espacio."; ////////////////////////////////////////////////////////////////////////////// // SETTINGS VIEWS & DIALOGS // // Excluded-lists managers, backup/restore flows, in-picker labels. // ////////////////////////////////////////////////////////////////////////////// +"Absolute format" = "Formato absoluto"; "Add chat" = "Añadir conversación"; "Add custom domain" = "Añadir dominio personalizado"; -"Add preset…" = "Añadir ajuste preestablecido"; "Add to list?" = "¿Añadir a la lista?"; "Add user" = "Añadir usuario"; "Apply" = "Aplicar"; "Apply to" = "Aplicar a"; "Chats" = "Conversaciones"; +"Colored" = "Coloreado"; "Could not read file." = "No se logró leer el archivo."; "Could not resolve user ID" = "No se pudo resolver el ID del usuario"; -"Could not write temporary file." = "No se logró escribir el archivo temporal."; "Current location" = "Ubicación actual"; "Custom" = "Personalizada"; -"Date Format" = "Formato de Fecha"; "Delete" = "Eliminar"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "Cada superficie de IG usa un formateador NSDate distinto. Activa las que quieras que usen este formato."; "Enable fake location" = "Habilitar ubicación falsa"; -"Enter username" = "Introducir nombre de usuario"; -"Enter username of the DM thread" = "Introducir nombre de usuario de la conversación"; "Excluded chats" = "Conversaciones excluídas"; "Excluded users" = "Usuarios excluídos"; "Follow default" = "Seguir predeterminada"; "Force OFF (allow unsends)" = "Forzar DESACTIVADO (Permite anular envío)"; "Force ON (preserve unsends)" = "Forzar ACTIVADO (Mantiene eliminados)"; -"Format" = "Formato"; -"Import failed" = "Importación fallida"; +"Include seconds when the format already shows time." = "Incluir segundos cuando el formato ya muestra la hora."; "Included chats" = "Conversaciones incluidas"; "Included users" = "Usuarios incluidos"; "KD: default" = "ME: Predeterminado"; @@ -1042,41 +1583,38 @@ "Keep-deleted override" = "Anular mantener eliminados"; "Name (A–Z)" = "Nombre (A–Z)"; "No DM thread found with @%@" = "No se encontró conversación con @%@"; -"Off" = "DESACTIVADO"; "Presets" = "Preajustes"; "Recently added" = "Añadidos recientemente"; +"Relative time" = "Tiempo relativo"; +"Relative within" = "Relativo dentro de"; "Remove from list" = "Eliminar de la lista"; -"Remove Selected" = "Eliminar Seleccionados"; "Reset" = "Restablecer"; -"Saved presets are reusable. Tap a preset to make it the active location." = "Los ajustes preestablecidos guardados se pueden reutilizar. Toca un ajuste preestablecido para convertirlo en la ubicación activa."; "Search" = "Buscar"; "Search address or place" = "Buscar dirección o lugar"; "Search by name or username" = "Buscar por nombre o nombre de usuario"; "Search by username or name" = "Buscar por nombre de usuario o nombre"; -"Select" = "Seleccionar"; "Select location on map" = "Seleccionar ubicación en el mapa"; "Set current location" = "Establecer ubicación actual"; "Set keep-deleted override" = "Establecer anulación de mantener eliminados"; -"Settings exported" = "Configuración exportada"; "Show map button" = "Botón de mostrar mapa"; +"Show relative time for dates younger than this many days. 0 disables it." = "Muestra el tiempo relativo para fechas más recientes que este número de días. 0 lo desactiva."; "Show seconds" = "Mostrar segundos"; "Sort by" = "Ordenar por"; -"Story users" = "Usuarios de historias"; -"Toggle each NSDate formatter IG uses. Different surfaces (feed, comments, stories, DMs) go through different methods — enable the ones you want the custom format applied to." = "Alterna cada formato NSDate que utiliza Instagram. Las distintas secciones (Feed (Inicio), comentarios, historias, mensajes) utilizan métodos diferentes: activa aquellos a los que quieras aplicar el formato personalizado."; +"Thread" = "Hilo"; +"Time" = "Hora"; "Use this location" = "Usar esta ubicación"; "User '%@' not found" = "Usuario '%@' no encontrado"; "Username (A–Z)" = "Usuario (A–Z)"; -"When on, all CoreLocation requests inside Instagram return the location below. Toggle the map button to show or hide the quick toggle on the Friends Map view." = "Cuando está activado, todas las solicitudes de CoreLocation dentro de Instagram devuelven la ubicación que se muestra a continuación. Pulsa el botón del mapa para mostrar u ocultar el control rápido en la vista mapa de amigos."; +"Within %ld days" = "Dentro de %ld días"; +"Within 1 day" = "Dentro de 1 día"; ////////////////////////////////////////////////////////////////////////////// // REELS (FEATURES) // // Strings from Reels. // ////////////////////////////////////////////////////////////////////////////// -"Copied!" = "¡Copiado!"; "No password found" = "No se encontró contraseña"; "No text field found" = "No se encontró campo de texto"; -"Password" = "Contraseña"; "Refresh Reels?" = "¿Actualizar Reels?"; ////////////////////////////////////////////////////////////////////////////// @@ -1084,23 +1622,42 @@ // Strings from Profile. // ////////////////////////////////////////////////////////////////////////////// +"%lu accounts" = "%lu cuentas"; +"%lu loaded" = "%lu cargados"; +"%lu loaded · all loaded" = "%lu cargados · todos cargados"; "Doesn't follow you" = "No te sigue"; +"Everyone is already loaded." = "Ya están todos cargados."; +"Filter & sort" = "Filtrar y ordenar"; +"Follows me" = "Me sigue"; +"Follows me first" = "Los que me siguen primero"; "Follows you" = "Te sigue"; +"Hides everyone who doesn't match all picked filters." = "Oculta a todos los que no coinciden con todos los filtros seleccionados."; +"Jump to bottom" = "Ir al final"; +"Jump to top" = "Ir al principio"; +"List" = "Lista"; +"List fully loaded" = "Lista cargada por completo"; +"Load more" = "Cargar más"; +"Loaded more" = "Se cargaron más"; +"Mutuals" = "Mutuos"; +"Mutuals first" = "Mutuos primero"; "Note copied" = "Nota copiada"; - -////////////////////////////////////////////////////////////////////////////// -// CONFIRM DIALOGS (IN-FEATURE) // -// Strings from Confirm dialogs. // -////////////////////////////////////////////////////////////////////////////// - -"Unfollow?" = "¿Dejar de seguir?"; +"People I follow" = "Personas que sigo"; +"People I follow first" = "Personas que sigo primero"; +"Reverse order" = "Orden inverso"; +"Show only" = "Mostrar solo"; +"Verified" = "Verificado"; +"Verified first" = "Verificados primero"; ////////////////////////////////////////////////////////////////////////////// // MISC // // Anything that didn't fit a named section. Usually short labels. // ////////////////////////////////////////////////////////////////////////////// +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(sin definir)"; "720p • progressive • fastest" = "720p • Progresivo • Más rápido"; +"Add language" = "Añadir idioma"; +"Album name" = "Nombre del álbum"; "Are you sure?" = "¿Estás seguro?"; "Bundle" = "Paquete"; "Copy audio URL" = "Copiar enlace de audio"; @@ -1108,21 +1665,41 @@ "Copy video URL" = "Copiar enlace de video"; "Could not access reel media" = "No se logró acceder a los medios del reel"; "Could not access reel photo" = "No se logró acceder a la foto del reel"; -"Could not extract photo url from post" = "No se logró extraer foto de la publicación"; -"Could not extract photo url from reel" = "No se logró extraer enlace de la foto del reel"; -"Could not extract photo url from story" = "No se logró extraer enlace de la foto de la historia"; -"Could not extract video url from post" = "No se logró extraer enlace del video de la publicación"; -"Could not extract video url from reel" = "No se logró extraer enlace del video del reel"; -"Could not extract video url from story" = "No se logró extraer enlace del video de la historia"; +"Could not write file." = "No se pudo escribir el archivo."; +"Download all and share?" = "¿Descargar todo y compartir?"; "Download Quality" = "Calidad de descarga"; +"Downloading %d%%" = "Descargando %d%%"; +"e.g. 1000000" = "p. ej. 1000000"; +"Localization file not found" = "Archivo de traducción no encontrado"; +"Enter the language code (e.g. fr, de, ja)" = "Introduce el código del idioma (p. ej. fr, de, ja)"; +"Error" = "Error"; "Extras" = "Extras"; -"FFmpegKit Debug" = "FFmpegKit Debug"; +"FFmpegKit Debug" = "Depuración de FFmpegKit"; +"File is empty or not a valid .strings file." = "El archivo está vacío o no es un archivo .strings válido."; +"KD: OFF" = "ME: DESACTIVADO"; +"Keep-deleted: OFF" = " • Mantener eliminados: DESACTIVADO"; +"Keep-deleted: ON" = " • Mantener eliminados: ACTIVADO"; "Later" = "Mas tarde"; +"Loading" = "Cargando"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "Nombre del álbum de Fotos donde RyukGram guarda. Déjalo vacío para restaurar el predeterminado."; +"Next" = "Siguiente"; +"No results found." = "No se encontraron resultados."; "No!" = "¡No!"; -"OK" = "OK"; +"Pick a language to update, or add a new one" = "Elige un idioma para actualizar o añade uno nuevo"; +"Preset" = "Preajuste"; "Restart" = "Reiniciar"; +"Restart now" = "Reiniciar ahora"; "Restart required" = "Reinicio requerido"; -"username" = "nombre de usuario"; +"Saved preset \"%@\"" = "Preset \"%@\" guardado"; +"selected" = "seleccionados"; +"Shared icon, or override per button" = "Icono compartido, o anular por botón"; +"Speed" = "Velocidad"; +"Unset" = "Sin establecer"; +"Update localization" = "Actualizar traducción"; +"Updated %@ (%ld keys). Restart to apply." = "Actualizado %@ (%ld claves). Reinicia para aplicar."; +"Use default" = "Usar predeterminado"; +"Username or PK" = "Nombre de usuario o PK"; +"Username or raw user PK" = "Nombre de usuario o PK de usuario sin procesar"; "Yes" = "Si"; "You must restart the app to apply this change" = "Debes reiniciar la aplicación para aplicar este cambio"; @@ -1131,15 +1708,21 @@ // Strings from the About / Credits footer of Settings. // ////////////////////////////////////////////////////////////////////////////// -"%@ — GitHub & Telegram" = "%@ — GitHub y Telegram"; +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub, Telegram, Donar"; "About" = "Acerca de"; "Arabic translation" = "Traducción al árabe"; -"Chinese (Traditional) translation" = "Traducción al chino (tradicional)"; +"Chinese (Traditional and Simplified) translation" = "Traducción al chino (tradicional y simplificado)"; "Credits" = "Créditos"; "Developers" = "Desarrolladores"; "Donate to SoCuul" = "Donar a SoCuul"; "installed" = "instalado"; "Korean translation" = "Traducción al coreano"; +"Portuguese (Brazil) translation" = "Traducción al portugués (Brasil)"; +"Turkish translation" = "Traducción al turco"; +"Vietnamese translation" = "Traducción al vietnamita"; +"French translation" = "Traducción al francés"; +"Code contributions" = "Contribuciones de código"; +"Following feed mode (from InstaSane)" = "Modo de feed de Siguiendo (de InstaSane)"; "latest" = "última"; "Links" = "Enlaces"; "No releases" = "Sin versiones"; @@ -1150,13 +1733,24 @@ "Russian translation" = "Traducción al ruso"; "RyukGram developer" = "Desarrollador de RyukGram"; "Join Telegram channel" = "Unirse al canal de Telegram"; -"View on GitHub" = "Ver en GitHub"; "Source code" = "Código fuente"; +"View on GitHub" = "Ver en GitHub"; "Spanish translation" = "Traducción al español"; -"Support the original developer" = "Apoyar al desarrollador original"; +"Support the original SCInsta developer" = "Apoyar al desarrollador original de SCInsta"; +"Inspirations" = "Inspiraciones"; +"Inspirations, contributors, translators" = "Inspiraciones, colaboradores, traductores"; +"Code and research" = "Código e investigación"; +"Translators" = "Traductores"; +"Original BHInstagram developer" = "Desarrollador original de BHInstagram"; +"OLED theme inspiration" = "Inspiración del tema OLED"; +"Donate to Ryuk" = "Donar a Ryuk"; +"Support RyukGram development" = "Apoyar el desarrollo de RyukGram"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram es un fork de SCInsta muy reelaborado — se agradece apoyar al desarrollador original."; +"Browse changes from previous releases" = "Explorar cambios de versiones anteriores"; +"Code inspiration" = "Inspiración de código"; +"zxPluginsInject sideload compatibility shim" = "Capa de compatibilidad de sideload zxPluginsInject"; "Telegram channel" = "Canal de Telegram"; "Testing and feature suggestions" = "Pruebas y sugerencias de funciones"; -"Tweak settings" = "Ajustes del tweak"; "Version" = "Versión"; "Version, credits, and links" = "Versión, créditos y enlaces"; "What's new in RyukGram" = "Novedades de RyukGram"; @@ -1167,7 +1761,6 @@ ////////////////////////////////////////////////////////////////////////////// "720p • progressive • silent" = "720p • progresivo • silencioso"; -"Audio extract failed" = "Falló la extracción de audio"; "Audio only" = "Solo audio"; "Audio ready" = "Audio listo"; "Download video at the highest available quality" = "Descargar video en la mejor calidad disponible"; @@ -1177,12 +1770,433 @@ "Faster = lower quality" = "Más rápido = Menor calidad"; "FFmpeg not available" = "FFmpeg no disponible"; "FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit no está disponible. Instala el archivo IPA descargado o la variante .deb de _ffmpeg para activarlo."; -"No audio stream available" = "No hay pista de audio disponible"; "No audio track found" = "No se encontró pista de audio"; "Photo" = "Foto"; "Photo quality" = "Calidad de imagen"; -"Raw image (no audio, no video)" = "Imagen sin procesar (sin audio, sin video)"; "silent" = "silencioso"; "Use highest resolution available" = "Usar la resolución mas alta disponible"; "Video quality" = "Calidad de video"; "Which quality to download" = "En qué calidad descargar"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "'%@' no está en esta compilación de FFmpegKit — usando h264 por hardware en su lugar."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-bit 4:2:0. ~2x más lento, degradados más suaves."; +"10-bit colour. Slower, smoother gradients. Software only." = "Color de 10-bit. Más lento, degradados más suaves. Solo software."; +"1080p30 baseline." = "Base 1080p30."; +"4K30 baseline." = "Base 4K30."; +"8-bit 4:2:0. Universal default." = "8-bit 4:2:0. Predeterminado universal."; +"8-bit 4:2:2 chroma. Niche playback." = "Croma 8-bit 4:2:2. Reproducción especializada."; +"8-bit 4:2:2 chroma. Software only." = "Croma 8-bit 4:2:2. Solo software."; +"8-bit 4:4:4 chroma. Software only." = "Croma 8-bit 4:4:4. Solo software."; +"8-bit 4:4:4 full chroma. Niche playback." = "Croma completo 8-bit 4:4:4. Reproducción especializada."; +"8-bit. Best for modern devices." = "8-bit. Mejor para dispositivos modernos."; +"Advanced encoding" = "Codificación avanzada"; +"Advanced encoding settings" = "Ajustes de codificación avanzada"; +"Archival quality." = "Calidad de archivo."; +"Audio bitrate" = "Tasa de bits de audio"; +"Audio channels" = "Canales de audio"; +"Audio codec" = "Códec de audio"; +"Audio conversion failed" = "Falló la conversión de audio"; +"Audio sample rate" = "Frecuencia de muestreo de audio"; +"Balanced. libx264 default." = "Equilibrado. Predeterminado de libx264."; +"Best practical quality per bit." = "Mejor calidad práctica por bit."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "La tasa de bits, los canales y la frecuencia de muestreo solo se aplican cuando el códec es AAC (recodificación)."; +"Cartoons / anime." = "Dibujos animados / anime."; +"Cinematic. Smaller files." = "Cinematográfico. Archivos más pequeños."; +"Codec" = "Códec"; +"Container" = "Contenedor"; +"Copy (passthrough)" = "Copiar (passthrough)"; +"CRF quality" = "Calidad CRF"; +"Downloading video…" = "Descargando vídeo…"; +"Easier to play back on weak devices." = "Más fácil de reproducir en dispositivos débiles."; +"Encoder unavailable" = "Codificador no disponible"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "Ejemplos: 8M, 12M, 25M, 4500k. Déjalo vacío para automático."; +"Failed to download video" = "Error al descargar el vídeo"; +"Fast, fixed-bitrate, GPU-accelerated." = "Rápido, tasa de bits fija, acelerado por GPU."; +"Fastest, worst compression." = "El más rápido, peor compresión."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "Faststart mueve el índice MP4 al principio para que la reproducción comience antes de que el archivo se almacene en búfer por completo. Eliminar metadatos quita las etiquetas de origen (fecha de creación, handler, codificador) del archivo."; +"FFmpeg documentation" = "Documentación de FFmpeg"; +"FFmpeg mux failed" = "Falló el mux de FFmpeg"; +"Frame rate" = "Velocidad de fotogramas"; +"H.264 level" = "Nivel H.264"; +"H.264 profile" = "Perfil H.264"; +"Hardware (VideoToolbox)" = "Hardware (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "Hardware (VideoToolbox) solo admite yuv420p — '%@' se ignoró. Cambia a Software (libx264) para usarlo."; +"Keep original audio. Fast." = "Mantener el audio original. Rápido."; +"Keep the source frame rate." = "Mantener la velocidad de fotogramas de origen."; +"Let the encoder pick." = "Dejar que el codificador elija."; +"Live-action video." = "Vídeo de acción real."; +"Lossless. Huge files." = "Sin pérdidas. Archivos enormes."; +"Low-latency streaming." = "Streaming de baja latencia."; +"Manual ffmpeg controls in place of Encoding speed." = "Controles manuales de ffmpeg en lugar de la velocidad de codificación."; +"Marginal gain, huge time cost." = "Ganancia marginal, enorme coste de tiempo."; +"Max resolution" = "Resolución máxima"; +"Mono" = "Mono"; +"No tuning. Default." = "Sin ajuste. Predeterminado."; +"None" = "Ninguno"; +"Pixel format" = "Formato de píxel"; +"Pixel format ignored" = "Formato de píxel ignorado"; +"Preserve film grain." = "Conservar el grano de película."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "Preset y Tune se aplican solo a Software (libx264). Empareja el perfil con el formato de píxel: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Las discordancias se convierten a la baja en silencio. El hardware siempre usa yuv420p."; +"Re-encode. Use when source is opus or unsupported." = "Recodificar. Úsalo cuando el origen sea opus o no compatible."; +"Reset advanced encoding" = "Restablecer codificación avanzada"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "Establecer una tasa de bits de vídeo cambia Software a tasa de bits fija e ignora CRF. Déjalo vacío para CRF. El hardware usa la tasa de bits."; +"Slideshow-like content." = "Contenido tipo presentación."; +"Slower, better compression per bit." = "Más lento, mejor compresión por bit."; +"Smaller, visible artefacts." = "Más pequeño, artefactos visibles."; +"Software (libx264)" = "Software (libx264)"; +"Standard 8-bit." = "8-bit estándar."; +"Stereo" = "Estéreo"; +"Streaming default." = "Predeterminado de streaming."; +"Strip metadata" = "Eliminar metadatos"; +"Top of AAC." = "Lo mejor de AAC."; +"Tune" = "Ajustar"; +"Unknown error" = "Error desconocido"; +"Very high quality." = "Calidad muy alta."; +"Video bitrate" = "Tasa de bits de vídeo"; +"Video codec" = "Códec de vídeo"; +"Visually lossless. RyukGram default." = "Visualmente sin pérdidas. Predeterminado de RyukGram."; +"Widest compatibility, no B-frames." = "Máxima compatibilidad, sin fotogramas B."; +"Worst quality." = "Peor calidad."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "Gestos al mantener pulsado"; +"Inserts a button in the profile navigation header" = "Inserta un botón en la cabecera de navegación del perfil"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "Añade un botón de acción de RyukGram en la cabecera del perfil con las opciones copiar, ver foto, compartir, guardar y datos del perfil. Tocar abre el menú de forma predeterminada; cambia el comportamiento al tocar en Configurar menú."; +"Configure menu" = "Configurar menú"; +"Reorder, enable/disable, set default tap, show date" = "Reordenar, activar/desactivar, definir acción al tocar, mostrar fecha"; +"Reorder, enable/disable, set default tap" = "Reordenar, activar/desactivar, definir acción al tocar"; +"RyukGram profile actions" = "Acciones de perfil de RyukGram"; +"Reorder sections" = "Reordenar secciones"; +"Drag the ≡ handle to reorder sections." = "Arrastra el manejador ≡ para reordenar las secciones."; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "Arrastra el manejador ≡ para reordenar. Desactiva una fila para ocultarla del menú. Marca una sección como submenú para agrupar sus acciones en una sola entrada."; +"Show as submenu" = "Mostrar como submenú"; +"Collapse this section's actions behind a single entry" = "Agrupa las acciones de esta sección en una sola entrada"; +"Configure: %@" = "Configurar: %@"; +"What happens on a single tap. Long-press always opens the full menu." = "Lo que ocurre al tocar una vez. Mantener pulsado siempre abre el menú completo."; +"Reset to defaults" = "Restablecer valores predeterminados"; +"This will restore the default sections, order, and toggles for this menu." = "Esto restaurará las secciones, el orden y los interruptores predeterminados de este menú."; +"Audio & visibility" = "Audio y visibilidad"; +"DM disappearing media" = "Medios efímeros en mensajes"; +"Bulk download" = "Descarga masiva"; +"Feed settings" = "Ajustes del Feed (Inicio)"; +"Reels settings" = "Ajustes de Reels"; +"Profile settings" = "Ajustes de perfil"; +"Stories settings" = "Ajustes de historias"; +"Copy ID" = "Copiar ID"; +"Copy Info" = "Copiar información"; +"Copy all info" = "Copiar toda la información"; +"Copy media URL" = "Copiar URL del contenido"; +"Copy profile link" = "Copiar enlace del perfil"; +"Copy username" = "Copiar nombre de usuario"; +"Download" = "Descargar"; +"Download to Gallery" = "Descargar en Galería"; +"Download all to Gallery" = "Descargar todo en Galería"; +"Exclude/include user" = "Excluir / incluir usuario"; +"Mute / unmute audio" = "Silenciar / activar sonido"; +"Save picture to Gallery" = "Guardar foto en Galería"; +"Share picture" = "Compartir foto"; +"View picture" = "Ver foto"; +"Bio" = "Biografía"; +"ID" = "ID"; +"Info" = "Información"; +"Profile info" = "información del perfil"; +"Profile link" = "Enlace del perfil"; +"Picture not found" = "Foto no encontrada"; +"Private profile" = "Perfil privado"; +"Profile unavailable" = "Perfil no disponible"; +"Public profile" = "Perfil público"; +"Username" = "Nombre de usuario"; +"Followers: %@" = "Seguidores: %@"; +"Following: %@" = "Siguiendo: %@"; +"Copied %@" = "%@ copiado"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(desconocido)"; +"All files deleted" = "Todos los archivos eliminados"; +"Browsing" = "Navegación"; +"By source" = "Por origen"; +"By type" = "Por tipo"; +"By user" = "Por usuario"; +"Clear filters" = "Limpiar filtros"; +"Comment" = "Comentario"; +"Create" = "Crear"; +"Create & Move" = "Crear y mover"; +"Delete %@?" = "¿Eliminar %@?"; +"Delete all files" = "Eliminar todos los archivos"; +"Delete all images" = "Eliminar todas las imágenes"; +"Delete all videos" = "Eliminar todos los videos"; +"Delete by user" = "Eliminar por usuario"; +"Delete DM media" = "Eliminar contenido de mensajes"; +"Delete feed posts" = "Eliminar publicaciones del Feed (Inicio)"; +"Delete files" = "Eliminar archivos"; +"Delete Folder" = "Eliminar carpeta"; +"Delete from Gallery?" = "¿Eliminar de la Galería?"; +"Delete profile pictures" = "Eliminar fotos de perfil"; +"Delete reels" = "Eliminar reels"; +"Delete selected" = "Eliminar selección"; +"Delete Selected Files?" = "¿Eliminar archivos seleccionados?"; +"Delete stories" = "Eliminar historias"; +"Delete thumbnails" = "Eliminar miniaturas"; +"Deleted from Gallery" = "Eliminado de la Galería"; +"Deleted selected files" = "Archivos seleccionados eliminados"; +"Deselect All" = "Anular selección"; +"DM media deleted" = "Contenido de mensajes eliminado"; +"DMs" = "Mensajes"; +"Each user appears as a folder next to your real folders." = "Cada usuario aparece como una carpeta junto a tus carpetas reales."; +"Each user gets a labelled section in the grid/list." = "Cada usuario tiene una sección etiquetada en la cuadrícula/lista."; +"Enable gallery" = "Activar galería"; +"Failed" = "Error"; +"Failed to delete" = "Error al eliminar"; +"Favorite" = "Favorito"; +"Favorite selected" = "Marcar selección como favoritos"; +"Favorites only" = "Solo favoritos"; +"Feed posts deleted" = "Publicaciones del Feed (Inicio) eliminadas"; +"Files deleted" = "Archivos eliminados"; +"Flat list. No grouping." = "Lista plana. Sin agrupar."; +"Folder name" = "Nombre de la carpeta"; +"Folders" = "Carpetas"; +"From RyukGram Gallery" = "Audio desde la Galería de RyukGram"; +"Gallery" = "Galería"; +"Gallery only" = "Solo Galería"; +"Gallery save mode" = "Modo de guardado de Galería"; +"Gallery Settings" = "Ajustes de Galería"; +"GIFs" = "GIFs"; +"Grid view" = "Vista de cuadrícula"; +"Group by user" = "Agrupar por usuario"; +"Hold DM tab to open gallery" = "Mantén pulsado DM para abrir la galería"; +"Images" = "Imágenes"; +"Images deleted" = "Imágenes eliminadas"; +"Images first" = "Imágenes primero"; +"item" = "elemento"; +"items" = "elementos"; +"Largest first" = "Más grandes primero"; +"List view" = "Vista de lista"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "Mantén pulsado el botón de mensajes en la barra inferior para abrir la galería de RyukGram"; +"Manage" = "Gestionar"; +"More" = "Más"; +"Move selected" = "Mover selección"; +"Move to Folder" = "Mover a carpeta"; +"Name A-Z" = "Nombre A-Z"; +"Name Z-A" = "Nombre Z-A"; +"New Folder" = "Nueva carpeta"; +"New folder…" = "Nueva carpeta…"; +"Newest first" = "Más recientes primero"; +"No files in Gallery" = "No hay archivos en la galería"; +"No files to delete" = "No hay archivos que eliminar"; +"No matching files" = "No hay archivos coincidentes"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "Biblioteca en el dispositivo del contenido descargado mediante RyukGram. El modo de guardado decide dónde escribe realmente 'Descargar en Fotos'."; +"Open" = "Abrir"; +"Open Original Post" = "Abrir publicación original"; +"Options" = "Opciones"; +"Other" = "Otro"; +"Photos + Gallery" = "Fotos + Galería"; +"Photos only" = "Solo Fotos"; +"Profile pictures deleted" = "Fotos de perfil eliminadas"; +"Reels deleted" = "Reels eliminados"; +"Rename" = "Cambiar nombre"; +"Rename Folder" = "Cambiar nombre de la carpeta"; +"Root" = "Raíz"; +"Save media from the preview screen\nto see it here." = "Guarda contenido desde la pantalla de vista previa\npara verlo aquí."; +"Saved %lu items to Gallery" = "Guardados %lu elementos en Galería"; +"Saved to Gallery" = "Guardado en Galería"; +"Saving to Gallery" = "Guardando en Galería..."; +"Search users" = "Buscar usuarios"; +"Sections" = "Secciones"; +"Select All" = "Seleccionar todo"; +"Share" = "Compartir"; +"Share selected" = "Compartir selección"; +"Show favorites at top" = "Mostrar favoritos arriba"; +"Show gallery entries in download menus and unlock the gallery button" = "Muestra las opciones de galería en los menús de descarga y desbloquea el botón de galería"; +"Smallest first" = "Más pequeños primero"; +"Source" = "Origen"; +"Source user" = "Usuario de origen"; +"Storage" = "Almacenamiento"; +"Stories deleted" = "Historias eliminadas"; +"Story" = "Historia"; +"The original content may no longer exist." = "Es posible que el contenido original ya no exista."; +"This folder contains %ld file(s). They will be moved to the parent folder." = "Esta carpeta contiene %ld archivo(s). Se moverán a la carpeta superior."; +"This folder is empty." = "Esta carpeta está vacía."; +"This will permanently remove %ld file%@ from the gallery." = "Esto eliminará permanentemente %ld archivo%@ de la galería."; +"This will permanently remove %ld file(s)." = "Esto eliminará permanentemente %ld archivo(s)."; +"This will permanently remove this file from the gallery." = "Esto eliminará permanentemente este archivo de la galería."; +"Thumb" = "Miniatura"; +"Thumbnails deleted" = "Miniaturas eliminadas"; +"to Gallery" = "en Galería"; +"Total files" = "Archivos totales"; +"Total size" = "Tamaño total"; +"Type" = "Tipo"; +"Unable to open original post" = "No se puede abrir la publicación original"; +"Unable to open profile" = "No se puede abrir el perfil"; +"Unfavorite" = "Quitar de favoritos"; +"Unknown user" = "Usuario desconocido"; +"User files deleted" = "Archivos del usuario eliminados"; +"Videos" = "Vídeos"; +"Videos deleted" = "Videos eliminados"; +"Videos first" = "Videos primero"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "Cuando está activo, los favoritos se fijan por encima del resto de archivos dentro del orden y la carpeta actuales."; +"Where 'Download to Photos' actually writes when gallery is on" = "Dónde escribe realmente 'Descargar en Fotos' cuando la galería está activada"; +"Yesterday" = "Ayer"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "Botón de acceso directo en inicio"; +"Show the extra button on the home top bar" = "Configura el botón extra de la barra superior de inicio"; +"Auto" = "Automático"; +"Icon" = "Icono"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "Arrastra el manejador ≡ para reordenar. Desactiva una fila para ocultar ese destino. Con una acción activa, tocar la ejecuta; con dos o más, tocar muestra un menú."; +"Changelog" = "Registro de cambios"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "Añade un botón de atajo extra junto al botón + de crear publicación en la barra superior de inicio."; +"All buttons" = "Todos los botones"; +"Choose icon, reorder actions, and enable menu items" = "Elige el icono, reordena las acciones y activa los elementos del menú"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "Elige el icono que se muestra en la barra superior de inicio. Automático usa el icono de la acción seleccionada cuando solo hay una acción activada."; +"Configure button" = "Configurar botón"; +"Global Action Icons" = "Iconos de acción globales"; +"Interface" = "Interfaz"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "Anula el icono de un botón específico. Los botones dejados en Predeterminado siguen el icono compartido de arriba."; +"Per button" = "Por botón"; +"Show home shortcut button" = "Mostrar botón de atajo de inicio"; +"Tab bar" = "Barra de pestañas"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "Notificaciones universales en la app. Elige estilo, posición, enrutamiento por acción (píldora / IG nativo / apagado)."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "Notificaciones"; +"Appearance" = "Apariencia"; +"Routing" = "Enrutamiento"; +"Style" = "Estilo"; +"Position" = "Posición"; +"Stack size" = "Tamaño de pila"; +"Duration" = "Duración"; +"Default surface" = "Superficie predeterminada"; +"Enable notifications" = "Activar notificaciones"; +"Haptic feedback" = "Vibración háptica"; +"Preview pill" = "Previsualizar píldora"; +"Preview download pill" = "Previsualizar píldora descarga"; +"Preview loading pill" = "Previsualizar píldora de carga"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "Interruptor principal. Si está apagado, no se emite ninguna notificación."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "Notificaciones universales en la app. Todos los avisos de RyukGram (descargas, copias, errores, éxitos) pasan por aquí."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal: desenfoque plano. Colorful: teñida por tono. Glow: halo de color. Island: cápsula tipo dynamic island."; +"Top slides down, bottom slides up." = "Arriba se desliza hacia abajo, abajo hacia arriba."; +"How many pills can show at once before queueing." = "Cuántas píldoras pueden mostrarse a la vez antes de hacer cola."; +"Multiplies how long toasts stay on screen." = "Multiplica cuánto duran las notificaciones en pantalla."; +"Vibration on success/error pills." = "Vibración en píldoras de éxito o error."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "Para acciones tipo aviso puedes elegir entre nuestra píldora y el aviso nativo de IG. Las anulaciones por acción están abajo."; +"What to use when an action doesn't have its own override." = "Qué usar cuando una acción no tiene su propia anulación."; +"Tap to cycle: info → success → warning → error" = "Tocar para alternar: info → éxito → advertencia → error"; +"Tap to cycle between success and failure" = "Tocar para alternar entre éxito y fallo"; +"Progress UI — pill or off only." = "Interfaz de progreso — solo píldora o apagado."; +"Minimal" = "Minimalista"; +"Colorful" = "Colorido"; +"Glow" = "Resplandor"; +"Island" = "Isla"; +"Top" = "Arriba"; +"Bottom" = "Abajo"; +"Custom pill" = "Píldora personalizada"; +"IG native toast" = "Aviso nativo de IG"; +"Short" = "Corto"; +"Normal" = "Normal"; +"Long" = "Largo"; +"Very long" = "Muy largo"; +"Downloads & saving" = "Descargas y guardado"; +"Copy to clipboard" = "Copiar al portapapeles"; +"Read receipts & seen" = "Confirmaciones de lectura"; +"Block, exclude & pin" = "Bloquear, excluir y fijar"; +"Stories & messages" = "Historias y mensajes"; +"Voice & audio" = "Voz y audio"; +"Errors" = "Errores"; +"Download progress" = "Progreso de descarga"; +"Bulk download progress" = "Progreso de descarga masiva"; +"Copied post / reel URL" = "URL de publicación / reel copiada"; +"Copied comment text" = "Texto de comentario copiado"; +"Copied note text" = "Texto de nota copiado"; +"Copied profile info" = "Información de perfil copiada"; +"Copied audio URL" = "URL de audio copiada"; +"Copied quality picker URL" = "URL de selector de calidad copiada"; +"Copied unlocked password" = "Contraseña desbloqueada copiada"; +"Copied description text" = "Texto de descripción copiado"; +"DM seen / read receipts" = "Lecturas / vistas de DM"; +"Story seen / read receipts" = "Lecturas / vistas de historia"; +"User blocked / unblocked" = "Usuario bloqueado / desbloqueado"; +"Chat added / removed from exclude" = "Chat añadido / quitado de exclusiones"; +"Story user added / removed from exclude" = "Usuario de historia añadido / quitado de exclusiones"; +"Share-sheet recipient pinned" = "Destinatario de compartir fijado"; +"Unsent message detected" = "Mensaje no enviado detectado"; +"Live comments toggled" = "Comentarios en vivo alternados"; +"Custom GIF sent" = "GIF personalizado enviado"; +"Voice DM sent" = "DM de voz enviado"; +"Audio extraction status" = "Estado de extracción de audio"; +"Profile Analyzer complete" = "Analizador de perfil completado"; +"Media extraction failed" = "Error al extraer medios"; +"Permission denied" = "Permiso denegado"; +"Validation error" = "Error de validación"; +"Network / API error" = "Error de red / API"; +"Action error fallback" = "Mensaje de error de acción"; +"Invalid clipboard link" = "Enlace de portapapeles inválido"; +"Experimental flag warning" = "Advertencia de bandera experimental"; +"Settings action confirmed" = "Acción de ajustes confirmada"; +"Cache clearing progress" = "Progreso de limpieza de caché"; +"Other / uncategorized" = "Otros / sin categoría"; +"Comment copied" = "Comentario copiado"; +"FFmpeg log copied" = "Registro de FFmpeg copiado"; +"GIF inserted" = "GIF insertado"; +"Story marked as seen" = "Historia marcada como vista"; +"Saved" = "Guardado"; +"Tap to retry" = "Tocar para reintentar"; +"Looks great" = "Se ve bien"; +"Something broke" = "Algo se rompió"; +"Just so you know" = "Solo para que lo sepas"; +"Success preview" = "Vista previa de éxito"; +"Error preview" = "Vista previa de error"; +"Warning preview" = "Vista previa de advertencia"; +"Info preview" = "Vista previa de info"; +"Preview download…" = "Vista previa de descarga…"; +"Colors" = "Colores"; +"+ Add new language" = "+ Añadir idioma nuevo"; +"Each chat can override this in the list" = "Cada chat puede anular esto en la lista"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "Cuando está activado, las solicitudes de ubicación de Instagram devuelven la ubicación falsa seleccionada. El botón del mapa añade un acceso rápido en el mapa de amigos."; +"Tap a preset to make it active. Swipe left to delete." = "Toca un preajuste para activarlo. Desliza a la izquierda para eliminar."; +"Override Instagram location reads." = "Anula las lecturas de ubicación de Instagram."; +"Show the quick button in Friends Map." = "Mostrar el botón rápido en el mapa de amigos."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "Elige cómo se escriben las fechas absolutas. “Predeterminado” deja intacto el formato de IG."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "Las fechas más recientes que el umbral se muestran como tiempo relativo. Las fechas más antiguas usan el formato absoluto. «Combinar con la fecha» muestra ambos — «5 ene 2026 (2h)» o «2h – 5 ene 2026»."; +"Compact style" = "Estilo compacto"; +"Example: “1h” instead of “1 hour ago”" = "Ejemplo: “1h” en lugar de “hace 1 hora”"; +"Example: “Jan 5, 2026 (2h)”" = "Ejemplo: “Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "Las APIs de audio de iOS no pudieron procesar este archivo%@%@\n\nPuedes intentar enviarlo a Instagram tal cual, o abrir un problema de soporte."; +"Combine with date" = "Combinar con la fecha"; +"Absolute then relative" = "Absoluto y luego relativo"; +"Relative – absolute" = "Relativo – absoluto"; +"Relative when young, absolute when older." = "Relativo si es reciente, absoluto si es antiguo."; +"Example: “2h – Jan 5, 2026”" = "Ejemplo: «2h – 5 ene 2026»"; diff --git a/src/Localization/Resources/fr.lproj/Localizable.strings b/src/Localization/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000..bdc9b69 --- /dev/null +++ b/src/Localization/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,2153 @@ +// French translation +// +/* + * RyukGram — Localizable.strings (French) + * ------------------------------------------------------------------------- + * Keys are the English source text. Translate only values on the right side. + */ + +////////////////////////////////////////////////////////////////////////////// +// CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // +// Shown on the root Settings screen: title, search bar, the globe language // +// menu, and the one-time welcome alert. These use dotted keys (settings.*) // +// and are hand-authored rather than extracted from English source. // +////////////////////////////////////////////////////////////////////////////// + +"settings.firstrun.message" = "Pour plus tard : maintenez appuyé sur les trois lignes en haut à droite de votre page de profil pour rouvrir les réglages de RyukGram."; +"settings.firstrun.ok" = "J’ai compris !"; +"settings.firstrun.title" = "Infos des réglages RyukGram"; +"settings.language.english_only" = "RyukGram inclut maintenant plusieurs langues. Si votre langue manque ou doit être améliorée, aidez à la traduire en suivant le guide rapide du README."; +"settings.language.help_translate" = "Aider à traduire"; +"settings.language.system" = "Langue du système"; +"settings.language.title" = "Langue"; +"settings.language.restart.message" = "Réglages mis à jour. Redémarrez Instagram pour que les menus, boutons et notifications du reste de l’app reprennent la nouvelle langue."; +"settings.language.restart.title" = "Redémarrer pour tout appliquer"; +"settings.language.available" = "Disponibles"; +"settings.results.many" = "%lu résultats"; +"settings.results.one" = "%lu résultat"; +"settings.search.placeholder" = "Rechercher dans les réglages"; +"settings.title" = "Réglages RyukGram"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL // +// Settings → General tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button icon" = "Icône du bouton d’action"; +"Adds a copy option to the comment long-press menu" = "Ajoute une option de copie au menu d’appui long des commentaires"; +"Adds a download button next to share/save on the reels audio page" = "Ajoute un bouton de téléchargement à côté de partager/enregistrer sur la page audio des reels"; +"Adds download, copy and expand options to GIF and image comments" = "Ajoute des options télécharger, copier et agrandir aux commentaires GIF et image"; +"Allow video in photo sticker" = "Autoriser la vidéo dans le sticker photo"; +"Alternate icons are not supported" = "Les icônes alternatives ne sont pas prises en charge"; +"Anonymous live viewing" = "Visionnage de lives anonyme"; +"App Icon" = "Icône de l’app"; +"Audio page" = "Page audio"; +"Auto-reveals sensitive media" = "Affiche automatiquement les médias sensibles"; +"Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "Bloque le signal du compteur de spectateurs pour que le diffuseur ne vous voie pas — vous ne verrez pas non plus le compteur"; +"Browser" = "Navigateur"; +"Change the app icon from the bundled icons" = "Changez l’icône de l’app parmi les icônes intégrées"; +"Choose Icon" = "Choisir une icône"; +"Choose which surfaces hide ads" = "Choisir les surfaces qui masquent les pubs"; +"Comments" = "Commentaires"; +"Commerce carousels in comments and shoppable CTAs on reels" = "Carrousels commerciaux dans les commentaires et CTA d'achat sur les reels"; +"Copy comment text" = "Copier le texte du commentaire"; +"Copy description" = "Copier la description"; +"Copy description text fields by long-pressing on them" = "Copier les champs de description avec un appui long"; +"Custom music sticker color" = "Couleur personnalisée du sticker musique"; +"Date format" = "Format de date"; +"Disable app haptics" = "Désactiver le retour haptique"; +"Disables haptics/vibrations within the app" = "Désactive le retour haptique et les vibrations dans l’app"; +"Do not save recent searches" = "Ne pas enregistrer les recherches récentes"; +"Download GIF & image comments" = "Télécharger les commentaires GIF et image"; +"Download image" = "Télécharger l’image"; +"Embed domain" = "Domaine d’intégration"; +"Embed domain: %@" = "Domaine d’intégration : %@"; +"Enable liquid glass buttons" = "Activer les boutons Liquid Glass"; +"Enable liquid glass surfaces" = "Activer les surfaces Liquid Glass"; +"Enable teen app icons" = "Activer les icônes ado"; +"Enables experimental liquid glass buttons" = "Active les boutons expérimentaux Liquid Glass"; +"Enables liquid glass tab bar, floating navigation, and other UI elements" = "Active Liquid Glass pour la barre d’onglets, la navigation flottante et d’autres éléments d’interface"; +"End" = "Fin"; +"Experimental features" = "Fonctionnalités expérimentales"; +"Explore & search" = "Explorer et rechercher"; +"Failed to change icon" = "Échec du changement d’icône"; +"Fixed" = "Fixe"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "Fixe empêche le rétrécissement. Masquer le fait disparaître au défilement vers le bas"; +"Focus/distractions" = "Concentration/distractions"; +"General" = "Général"; +"Gradient color" = "Couleur dégradée"; +"Hide ads" = "Masquer les pubs"; +"Hide explore posts grid" = "Masquer la grille des publications Explorer"; +"Hide friends map" = "Masquer la carte des amis"; +"Hide Meta AI" = "Masquer Meta AI"; +"Hide metrics" = "Masquer les métriques"; +"Hide notes tray" = "Masquer le bandeau des notes"; +"Hide on scroll" = "Masquer au défilement"; +"Hide TestFlight popup" = "Masquer la fenêtre TestFlight"; +"Hide trending searches" = "Masquer les recherches tendance"; +"Hide UI on capture" = "Masquer l’interface lors des captures"; +"Hides all suggested users for you to follow, outside your feed" = "Masque tous les utilisateurs suggérés à suivre hors de votre fil"; +"Hides like/comment/share counts on posts and reels" = "Masque les compteurs de J’aime, commentaires et partages sur les publications et reels"; +"Hides the friends map icon in the notes tray" = "Masque l’icône de la carte des amis dans le bandeau des notes"; +"Hides the grid of suggested posts on the explore/search tab" = "Masque la grille des publications suggérées dans l’onglet Explorer/recherche"; +"Hides the meta ai buttons/functionality within the app" = "Masque les boutons et fonctionnalités Meta AI dans l’app"; +"Hides the notes tray in the DM inbox" = "Masque le bandeau des notes dans la boîte de réception des DM"; +"Hides the suggested broadcast channels in direct messages" = "Masque les canaux de diffusion suggérés dans les messages directs"; +"Hides the trending searches under the explore search bar" = "Masque les recherches tendance sous la barre de recherche Explorer"; +"Hold down on the Instagram logo to change the app icon" = "Maintenez le logo Instagram appuyé pour changer l’icône de l’app"; +"Lets the photo sticker picker show videos too, not just photos" = "Permet au sélecteur de sticker photo d’afficher aussi des vidéos, pas seulement des photos"; +"Liquid glass tab bar" = "Barre d’onglets Liquid Glass"; +"Live" = "Live"; +"Long press on the eyedropper tool in stories to customize the text color more precisely" = "Maintenez l’outil pipette dans les stories pour personnaliser plus précisément la couleur du texte"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "Maintenez la roue chromatique d’un sticker musique ou paroles pour choisir une couleur unie ou dégradée"; +"Long-press the heart button in a live to hide or show the comments" = "Maintenez le bouton cœur dans un live pour masquer ou afficher les commentaires"; +"Long-press the search tab to open a copied Instagram link" = "Maintenez l’onglet de recherche pour ouvrir un lien Instagram copié"; +"Master switch. When off, all per-surface toggles below are ignored." = "Interrupteur principal. Désactivé, tous les boutons par surface ci-dessous sont ignorés."; +"No suggested chats" = "Aucune discussion suggérée"; +"No suggested users" = "Aucun utilisateur suggéré"; +"Notes" = "Notes"; +"Open app icon picker" = "Ouvrir le sélecteur d’icône"; +"Open link from clipboard" = "Ouvrir le lien du presse-papiers"; +"Open links in external browser" = "Ouvrir les liens dans un navigateur externe"; +"Opens links in Safari instead of Instagram's in-app browser" = "Ouvre les liens dans Safari au lieu du navigateur intégré d’Instagram"; +"Privacy" = "Confidentialité"; +"Removes ads across enabled surfaces" = "Supprime les pubs sur les surfaces activées"; +"Removes igsh, utm_source, and other tracking parameters from shared links" = "Supprime igsh, utm_source et d’autres paramètres de suivi des liens partagés"; +"Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "Supprime les redirections de suivi Instagram (l.instagram.com) et les paramètres UTM/fbclid des URL"; +"Replace domain in shared links" = "Remplacer le domaine des liens partagés"; +"Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "Remplace les dates relatives d’IG (\"3d ago\") par un format personnalisé. Choisissez dans le sélecteur où l’appliquer."; +"Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "Réécrit les liens copiés/partagés avec un domaine adapté aux aperçus dans Discord, Telegram, etc."; +"Search bars will no longer save your recent searches" = "Les barres de recherche n’enregistreront plus vos recherches récentes"; +"Selected" = "Sélectionné"; +"Sharing" = "Partage"; +"Shopping" = "Shopping"; +"Skip sensitive content covers" = "Ignorer les voiles de contenu sensible"; +"Solid color" = "Couleur unie"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "Publications sponsorisées dans les fils principal, contextuel, vidéo et de chaînage"; +"Sponsored posts on the explore grid" = "Publications sponsorisées sur la grille d'exploration"; +"Sponsored reels in the sundial feed" = "Reels sponsorisés dans le fil sundial"; +"Start" = "Début"; +"Story ads and sponsored entries in the story tray" = "Pubs de stories et entrées sponsorisées dans le bandeau des stories"; +"Strip tracking from links" = "Retirer le suivi des liens"; +"Strip tracking params" = "Retirer les paramètres de suivi"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "Supprime le rappel « It’s time to update Instagram Beta »"; +"Tap to apply" = "Toucher pour appliquer"; +"The selected icon will be saved and shown here the next time you open this page." = "L’icône sélectionnée sera enregistrée et affichée ici la prochaine fois que vous ouvrirez cette page."; +"Toggle live comments" = "Afficher/masquer les commentaires de live"; +"Use detailed color picker" = "Utiliser le sélecteur de couleur détaillé"; +"Used across feed, stories, reels, and DMs." = "Utilisé dans le fil, les stories, les reels et les DM"; + +////////////////////////////////////////////////////////////////////////////// +// DATE FORMAT // +// Settings → Date format tab // +////////////////////////////////////////////////////////////////////////////// + +"%ld day ago" = "il y a %ld jour"; +"%ld days ago" = "il y a %ld jours"; +"%ld hour ago" = "il y a %ld heure"; +"%ld hours ago" = "il y a %ld heures"; +"%ld minute ago" = "il y a %ld minute"; +"%ld minutes ago" = "il y a %ld minutes"; +"%ld week ago" = "il y a %ld semaine"; +"%ld weeks ago" = "il y a %ld semaines"; +"%ldd" = "%ldj"; +"%ldh" = "%ldh"; +"%ldm" = "%ldm"; +"%ldw" = "%ldsem"; +"Alternate" = "Alternatif"; +"Always ask" = "Toujours demander"; +"Balanced" = "Équilibré"; +"Block all" = "Tout bloquer"; +"Block selected" = "Bloquer la sélection"; +"Button" = "Bouton"; +"Classic" = "Classique"; +"Date format — %@" = "Format de date — %@"; +"Default" = "Par défaut"; +"Disabled" = "Désactivé"; +"Download and share" = "Télécharger et partager"; +"Download to Photos" = "Télécharger dans Photos"; +"Enabled" = "Activé"; +"Expand" = "Agrandir"; +"Explore" = "Explorer"; +"Fast" = "Rapide"; +"Feed" = "Fil"; +"Feed posts" = "Publications du fil"; +"High" = "Élevé"; +"Inbox" = "Boîte de réception"; +"just now" = "à l’instant"; +"Low" = "Faible"; +"Max" = "Max"; +"Medium" = "Moyen"; +"Mute/Unmute" = "Couper/rétablir le son"; +"Notes, comments, stories" = "Notes, commentaires, stories"; +"now" = "maintenant"; +"Open menu" = "Ouvrir le menu"; +"Pause/Play" = "Pause/lecture"; +"Profile" = "Profil"; +"Quality" = "Qualité"; +"Reels" = "Reels"; +"Requires restart" = "Redémarrage requis"; +"Save to Photos" = "Enregistrer dans Photos"; +"Share sheet" = "Feuille de partage"; +"Standard" = "Standard"; +"Toggle" = "Interrupteur"; + +////////////////////////////////////////////////////////////////////////////// +// FEED // +// Settings → Feed tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button" = "Bouton d’action"; +"Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "Ajoute « Voir la photo de profil » et « Voir la couverture » aux menus d’appui long du bandeau des stories"; +"Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Ajoute un bouton d’action RyukGram sous chaque publication du fil avec des options télécharger/partager/copier/agrandir/repost. Par défaut, un toucher ouvre le menu ; changez ce comportement ci-dessous."; +"Choose Instagram's default feed or force the Following feed" = "Choisir le fil par défaut d’Instagram ou forcer le fil Abonnements"; +"Main feed" = "Fil principal"; +"Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "Contrôle quand et comment le fil se rafraîchit. Le rafraîchissement en arrière-plan se produit au retour dans l’app après environ 10 minutes. Le bouton Accueil rafraîchit le fil quand vous touchez l’onglet Accueil alors que vous y êtes déjà."; +"Default tap action" = "Action par défaut au toucher"; +"Disable background refresh" = "Désactiver le rafraîchissement en arrière-plan"; +"Disable home button refresh" = "Désactiver le rafraîchissement par Accueil"; +"Disable home button scroll" = "Désactiver le défilement par Accueil"; +"Disable video autoplay" = "Désactiver la lecture automatique des vidéos"; +"Hide" = "Masquer"; +"Hide entire feed" = "Masquer tout le fil"; +"Hide repost button" = "Masquer le bouton de repost"; +"Hide stories tray" = "Masquer le bandeau des stories"; +"Hide suggested stories" = "Masquer les stories suggérées"; +"Hides suggested accounts" = "Masque les comptes suggérés"; +"Hides suggested reels" = "Masque les reels suggérés"; +"Hides suggested threads posts" = "Masque les publications Threads suggérées"; +"Hides the repost button on feed posts" = "Masque le bouton de repost sur les publications du fil"; +"Hides the story tray at the top" = "Masque le bandeau des stories en haut"; +"Inserts a button row below like/comment/share on each post" = "Insère une rangée de boutons sous J’aime/commenter/partager sur chaque publication"; +"Long press on media to expand in full-screen viewer" = "Appui long sur le média pour l’agrandir en plein écran"; +"Start media muted" = "Démarrer le média en sourdine"; +"Expanded videos open with sound off" = "Les vidéos agrandies s’ouvrent sans le son"; +"Enhanced media resolution" = "Résolution média améliorée"; +"Media saving" = "Enregistrement des médias"; +"Spoof device profile so IG serves higher-quality images" = "Falsifier le profil de l’appareil pour qu’IG fournisse des images de meilleure qualité"; +"Media" = "Média"; +"Media zoom" = "Zoom média"; +"No suggested for you" = "Aucune suggestion pour vous"; +"No suggested posts" = "Aucune publication suggérée"; +"No suggested reels" = "Aucun reel suggéré"; +"No suggested threads" = "Aucun Threads suggéré"; +"Prevents feed from reloading when returning from background" = "Empêche le fil de se recharger au retour depuis l’arrière-plan"; +"Prevents videos from playing automatically" = "Empêche les vidéos de se lancer automatiquement"; +"Refresh" = "Rafraîchir"; +"Removes all content from your home feed" = "Supprime tout le contenu de votre fil d’accueil"; +"Removes suggested accounts from the stories tray" = "Supprime les comptes suggérés du bandeau des stories"; +"Removes suggested posts" = "Supprime les publications suggérées"; +"Scroll to top without refreshing when tapping Home" = "Remonter en haut sans rafraîchir en touchant Accueil"; +"Show action button" = "Afficher le bouton d’action"; +"Show date" = "Afficher la date"; +"Stories tray" = "Bandeau des stories"; +"Tapping Home does nothing when already on feed" = "Toucher Accueil ne fait rien lorsque vous êtes déjà sur le fil"; +"Tray long-press actions" = "Actions d’appui long du bandeau"; +"Composer doesn't accept GIFs" = "L’éditeur n’accepte pas les GIF"; +"Copy GIF link" = "Copier le lien du GIF"; +"Copy image link" = "Copier le lien de l’image"; +"Custom GIF in comments" = "GIF personnalisé dans les commentaires"; +"Failed to build GIF model" = "Échec de la création du modèle GIF"; +"GIF link copied" = "Lien du GIF copié"; +"Image" = "Image"; +"Image link copied" = "Lien de l’image copié"; +"Invalid Giphy URL" = "URL Giphy invalide"; +"Long-press the GIF button to paste any Giphy URL" = "Maintenez le bouton GIF pour coller n’importe quelle URL Giphy"; +"Paste Giphy Link" = "Coller le lien Giphy"; +"Paste a giphy.com URL or media ID" = "Collez une URL giphy.com ou un identifiant de média"; +"Send" = "Envoyer"; + +////////////////////////////////////////////////////////////////////////////// +// REELS // +// Settings → Reels tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button above the reel sidebar with view-cover/download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Ajoute un bouton d’action RyukGram au-dessus de la barre latérale des reels avec voir-couverture/télécharger/partager/copier/agrandir/repost. Par défaut, un toucher ouvre le menu ; changez ce comportement ci-dessous."; +"Always show progress scrubber" = "Toujours afficher la barre de progression"; +"Auto-scroll reels" = "Défilement automatique des reels"; +"Change what happens when you tap on a reel" = "Changer ce qui se passe quand vous touchez un reel"; +"Confirm reel refresh" = "Confirmer le rafraîchissement des reels"; +"Custom speed" = "Vitesse personnalisée"; +"Disable auto-unmuting reels" = "Désactiver le rétablissement automatique du son des reels"; +"Disable scrolling reels" = "Désactiver le défilement des reels"; +"Disable tab button refresh" = "Désactiver le rafraîchissement par l’onglet"; +"Doom scrolling limit" = "Limite de défilement infini"; +"e.g. 1.75" = "ex. 1,75"; +"Enter a value between 0.5 and 2.0" = "Saisir une valeur entre 0,5 et 2,0"; +"Forces the progress bar to appear on every reel" = "Force l’affichage de la barre de progression sur chaque reel"; +"Hide \"Made with Edits\" badge" = "Masquer le badge « Made with Edits »"; +"Hide friends avatars" = "Masquer les avatars des amis"; +"Hide reels header" = "Masquer l’en-tête des reels"; +"Hide social context overlay" = "Masquer la superposition de contexte social"; +"Hides the avatar bubbles next to the Friends tab in reels" = "Masque les bulles d’avatar à côté de l’onglet Amis dans les reels"; +"Hides the Edits app promo pill on reels" = "Masque la pastille promotionnelle de l’app Edits sur les reels"; +"Hides the floating overlay showing who reposted or commented on reels" = "Masque la superposition flottante indiquant qui a reposté ou commenté les reels"; +"Hides the repost button on the reels sidebar" = "Masque le bouton de repost dans la barre latérale des reels"; +"Hides the top navigation bar when watching reels" = "Masque la barre de navigation supérieure pendant le visionnage des reels"; +"Hiding" = "Masquage"; +"Hold the 3-dot on any reel to open speed picker" = "Maintenez les 3 points sur un reel pour ouvrir le sélecteur de vitesse"; +"IG default" = "Par défaut IG"; +"IG default: native behavior. RyukGram: re-advances after swiping back." = "Par défaut IG : comportement natif. RyukGram : avance à nouveau après un retour en arrière."; +"Limits" = "Limites"; +"Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "Limite le nombre de reels disponibles à faire défiler à tout moment et empêche le rafraîchissement"; +"Only loads %@ %@" = "Charge seulement %@ %@"; +"Places a button above the like/comment/share column on each reel" = "Place un bouton au-dessus de la colonne J’aime/commenter/partager sur chaque reel"; +"Playback speed" = "Vitesse de lecture"; +"Prevent doom scrolling" = "Empêcher le défilement infini"; +"Prevents reels from being scrolled to the next video" = "Empêche de passer au reel suivant"; +"Prevents reels from unmuting when the volume/silent button is pressed" = "Empêche les reels de rétablir le son quand le bouton volume/silence est pressé"; +"RyukGram" = "RyukGram"; +"Shows an alert when you trigger a reels refresh" = "Affiche une alerte quand vous déclenchez un rafraîchissement des reels"; +"Shows buttons to reveal and auto-fill the password on locked reels" = "Affiche des boutons pour révéler et remplir automatiquement le mot de passe des reels verrouillés"; +"Swipe a reel left to open the author's profile" = "Glissez un reel vers la gauche pour ouvrir le profil de l’auteur"; +"Swipe left to profile" = "Glisser à gauche vers le profil"; +"Tap Controls" = "Contrôles au toucher"; +"Tap to mute on photo reels" = "Toucher pour couper le son des reels photo"; +"Tapping the Reels tab while on reels does nothing" = "Toucher l’onglet Reels depuis les reels ne fait rien"; +"Unlock password-locked reels" = "Déverrouiller les reels protégés par mot de passe"; +"When pause mode is on, tap on photo reels toggles audio instead of the native pause gesture" = "Quand le mode pause est activé, toucher les reels photo active/coupe le son au lieu du geste de pause natif"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE // +// Settings → Profile tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "Ajoute un bouton pour filtrer et trier n'importe quelle liste d'abonnés/abonnements. Réinitialisé à la sortie."; +"Adds a view option to the highlight long-press menu to open the cover in full-screen" = "Ajoute une option d’affichage au menu d’appui long des stories à la une pour ouvrir la couverture en plein écran"; +"Copy note on long press" = "Copier la note par appui long"; +"Extra stats shown on each post and reel card in profile grids." = "Statistiques supplémentaires affichées sur chaque carte de publication et de reel dans les grilles de profil."; +"Fake follower count" = "Faux nombre d’abonnés"; +"Fake following count" = "Faux nombre d’abonnements"; +"Fake post count" = "Faux nombre de publications"; +"Fake profile stats" = "Fausses stats de profil"; +"Fake verified badge" = "Faux badge vérifié"; +"Fetch missing counts" = "Récupérer les compteurs manquants"; +"Filter & sort lists" = "Filtrer et trier les listes"; +"Follow indicator" = "Indicateur d’abonnement"; +"Follower & following lists" = "Listes d'abonnés et d'abonnements"; +"Follower count" = "Nombre d’abonnés"; +"Following count" = "Nombre d’abonnements"; +"Long press a profile picture to open it in full-screen with zoom, share, and save" = "Appui long sur une photo de profil pour l’ouvrir en plein écran avec zoom, partage et enregistrement"; +"Long press the note bubble on a profile to copy the text" = "Appui long sur la bulle de note d’un profil pour copier le texte"; +"Long press to download directly (ignored when zoom is on)" = "Appui long pour télécharger directement (ignoré quand le zoom est activé)"; +"Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "Gestes d’appui long sur les éléments du profil — séparés des boutons d’action propres à chaque fonctionnalité."; +"Only affects your own profile header. Other users see the real numbers." = "N’affecte que l’en-tête de votre propre profil. Les autres utilisateurs voient les vrais chiffres."; +"Override view count" = "Remplacer le compteur de vues"; +"Post count" = "Nombre de publications"; +"Profile card details" = "Détails de la carte de profil"; +"Profile stats" = "Stats du profil"; +"Render counts in shortened format." = "Afficher les compteurs en format abrégé."; +"Save profile picture" = "Enregistrer la photo de profil"; +"Short numbers" = "Nombres abrégés"; +"Show a checkmark next to your name on your own profile" = "Affiche une coche à côté de votre nom sur votre propre profil"; +"Show full follower count" = "Afficher le nombre complet d’abonnés"; +"Show full post count" = "Afficher le nombre complet de publications"; +"Show like count" = "Afficher le nombre de mentions J'aime"; +"Show upload date" = "Afficher la date de publication"; +"Shows whether the profile user follows you" = "Indique si l’utilisateur du profil vous suit"; +"Tap to set" = "Toucher pour définir"; +"Uses Instagram's API. May hit rate limits." = "Utilise l'API d'Instagram. Peut atteindre les limites de débit."; +"View highlight cover" = "Voir la couverture de la story à la une"; +"Zoom profile photo" = "Zoomer la photo de profil"; + +////////////////////////////////////////////////////////////////////////////// +// SAVING & DOWNLOADS // +// Settings → Saving tab // +////////////////////////////////////////////////////////////////////////////// + +"Active, queued, and finished downloads" = "Téléchargements actifs, en file et terminés"; +"Auto-retry attempts" = "Tentatives auto."; +"Auto-retry failed downloads" = "Réessayer auto. les téléchargements échoués"; +"Confirm before download" = "Confirmer avant téléchargement"; +"Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "Obsolète. Le bouton d’action RyukGram (configuré par fonctionnalité dans Fil/Reels/Stories) est la nouvelle méthode pour télécharger les médias. Activez ce réglage principal seulement si vous préférez l’ancien appui long à plusieurs doigts directement sur le média."; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "Ne pas suspendre les téléchargements, l'encodage ou les scans de profil quand vous quittez l'app"; +"Download queue" = "File de téléchargement"; +"Downloads" = "Téléchargements"; +"Downloads with %@ %@" = "Télécharge avec %@ %@"; +"Enable long-press gesture" = "Activer le geste d’appui long"; +"Finger count for long-press" = "Nombre de doigts pour l’appui long"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "Combien de téléchargements s'exécutent à la fois — les autres attendent dans la file et démarrent dès qu'une place se libère. Les téléchargements échoués réessaient automatiquement en cas d'erreur réseau. Ouvrez le gestionnaire pour suivre, annuler ou relancer les téléchargements."; +"Keep running in background" = "Continuer en arrière-plan"; +"Legacy long-press gesture" = "Ancien geste d’appui long"; +"Long-press hold time" = "Durée de maintien de l’appui long"; +"Master toggle for the deprecated gesture workflow (off by default)" = "Réglage principal de l’ancien flux par geste (désactivé par défaut)"; +"Max simultaneous downloads" = "Téléchargements simultanés max."; +"Open download manager" = "Ouvrir le gestionnaire de téléchargements"; +"Press finger(s) for %@ %@" = "Appuyez avec le(s) doigt(s) pendant %@ %@"; +"Retry automatically when a download drops on a network error" = "Réessayer automatiquement quand un téléchargement échoue sur une erreur réseau"; +"Route saves into a custom album in Photos instead of the camera roll root" = "Enregistrer dans un album dédié dans Photos plutôt qu’à la racine de la pellicule"; +"Run up to %@ %@ at once" = "Exécuter jusqu'à %@ %@ à la fois"; +"Save action" = "Action d’enregistrement"; +"Save to dedicated album" = "Enregistrer dans un album dédié"; +"Show a confirmation dialog before starting a download" = "Afficher une confirmation avant de lancer un téléchargement"; +"Try %@ more %@ before giving up" = "Essayer encore %@ %@ avant d'abandonner"; +"What happens after the gesture downloads" = "Ce qui se passe après le téléchargement par geste"; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "Quand « Enregistrer dans un album dédié » est activé, les téléchargements et les choix « Enregistrer dans Photos » de la feuille de partage sont dirigés vers un album nommé dans votre photothèque. Appuyez sur « Nom de l'album » pour le changer."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu échec(s)"; +"%lu of %lu done" = "%lu sur %lu terminés"; +"%lu saved, %lu failed" = "%lu enregistrés, %lu échecs"; +"Active" = "Actif"; +"Auto-retry" = "Nouvelle tentative auto."; +"Clear completed" = "Effacer les terminés"; +"Completed" = "Terminé"; +"Download settings" = "Réglages de téléchargement"; +"Downloading %lu items" = "Téléchargement de %lu éléments"; +"Downloading…" = "Téléchargement…"; +"Encoding %d%%" = "Encodage %d%%"; +"Encoding…" = "Encodage…"; +"Extra downloads wait in line and start as slots free up." = "Les téléchargements supplémentaires attendent dans la file et démarrent dès qu'une place se libère."; +"No downloads yet" = "Aucun téléchargement pour l'instant"; +"Preview" = "Aperçu"; +"Queued" = "En file"; +"Redownload" = "Retélécharger"; +"Retry" = "Réessayer"; +"Retrying…" = "Nouvelle tentative…"; +"Waiting for connection…" = "En attente de connexion…"; +"Waiting…" = "En attente…"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES // +// Settings → Stories tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button next to the eye button on stories with download/share/copy/expand/repost/view-mentions entries. Tap opens the menu by default; change the tap behavior below." = "Ajoute un bouton d’action RyukGram à côté du bouton œil sur les stories avec télécharger/partager/copier/agrandir/repost/voir les mentions. Par défaut, un toucher ouvre le menu ; changez ce comportement ci-dessous."; +"Adds a speaker button to the story overlay to unmute/mute audio. Also available in the 3-dot menu" = "Ajoute un bouton haut-parleur sur les stories pour activer/couper le son. Aussi disponible dans le menu à trois points"; +"Advance on story like" = "Avancer après un J’aime sur une story"; +"Advance on story reply" = "Avancer après une réponse à une story"; +"Advance when marking as seen" = "Avancer au marquage comme vue"; +"Audio" = "Audio"; +"Block all: all stories blocked — listed users are exceptions.\nBlock selected: only listed users are blocked — everything else is normal.\nBoth lists are saved independently." = "Tout bloquer : toutes les stories sont bloquées — les utilisateurs listés sont des exceptions.\nBloquer la sélection : seuls les utilisateurs listés sont bloqués — le reste est normal.\nLes deux listes sont enregistrées indépendamment."; +"Blocking mode" = "Mode de blocage"; +"Button = single-tap mark seen. Toggle = tap toggles story read receipts on/off (eye fills blue when on)" = "Bouton = un toucher marque comme vue. Interrupteur = toucher active/désactive les accusés de lecture des stories (l’œil devient bleu quand c’est activé)"; +"Disable instants creation" = "Désactiver la création d’Instants"; +"Disable story seen receipt" = "Désactiver l’accusé de vue des stories"; +"Enable story user list" = "Activer la liste d’utilisateurs des stories"; +"Hides the functionality to create/send instants" = "Masque la fonctionnalité de création/envoi d’Instants"; +"Hides the notification for others when you view their story" = "Masque la notification chez les autres lorsque vous regardez leur story"; +"Inserts a button next to the seen/eye button on story overlays" = "Insère un bouton à côté du bouton vu/œil sur les stories"; +"Keep stories visually seen locally" = "Garder les stories vues localement"; +"Liking a story automatically advances to the next one after a short delay" = "Aimer une story passe automatiquement à la suivante après un court délai"; +"Manage list" = "Gérer la liste"; +"Manage list (%lu)" = "Gérer la liste (%lu)"; +"Manual seen button mode" = "Mode du bouton vu manuel"; +"Mark seen on story like" = "Marquer comme vue lors d’un J’aime"; +"Mark seen on story reply" = "Marquer comme vue lors d’une réponse"; +"Marks a story as seen the moment you tap the heart, even with seen blocking on" = "Marque une story comme vue dès que vous touchez le cœur, même avec le blocage des vues activé"; +"Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "Marque une story comme vue quand vous envoyez une réponse ou une réaction emoji, même avec le blocage des vues activé"; +"Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "Marque les stories comme vues localement (anneau gris) tout en bloquant l’accusé de vue côté serveur"; +"Master toggle. When off, the list is ignored" = "Réglage principal. Désactivé, la liste est ignorée"; +"Playback" = "Lecture"; +"Search, sort, swipe to remove" = "Rechercher, trier, balayer pour supprimer"; +"Seen receipts" = "Accusés de vue"; +"Sending a reply or emoji reaction automatically advances to the next story" = "Envoyer une réponse ou une réaction emoji passe automatiquement à la story suivante"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "Ajoute une entrée « Voir les mentions » au menu du bouton d’action et au menu à trois points des stories"; +"Mentions overlay button" = "Bouton de superposition des mentions"; +"Mentions count badge" = "Badge de compteur de mentions"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "Ajoute un bouton à côté du bouton action/œil sur les stories. N’apparaît que lorsque la story actuelle contient des mentions ou des publications/reels partagés"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "Affiche le nombre de comptes mentionnés uniques sous forme de badge rouge sur le bouton de superposition"; +"Hide stories midcards" = "Masquer les cartes intermédiaires des stories"; +"Removes the Trending and Music promo cards from the stories tray" = "Supprime les cartes promotionnelles Tendances et Musique du bandeau des stories"; +"Stickers" = "Stickers"; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "Voir les résultats des sondages/quiz/curseurs avant d’interagir — vous pouvez toujours toucher pour voter normalement. Forcer l’ancien rétablit les stickers Quiz et Reveal dans l’éditeur de story."; +"Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "Voir les résultats des sondages/quiz/curseurs sur les reels avant d’interagir — vous pouvez toujours toucher pour voter normalement."; +"Force legacy stickers in tray" = "Forcer les anciens stickers dans le tiroir"; +"Adds Quiz and Reveal stickers back to the picker" = "Réajoute les stickers Quiz et Reveal au sélecteur"; +"Bypass Reveal sticker" = "Contourner le sticker Reveal"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "Ignorer l’étape « DM pour révéler » sur les stories avec un sticker Reveal"; +"Show quiz answer" = "Afficher la réponse du quiz"; +"Circle the correct option on quiz stickers, or the leading option on polls" = "Entoure la bonne option sur les stickers quiz, ou l’option en tête sur les sondages"; +"Show poll vote counts" = "Afficher le nombre de votes des sondages"; +"Show vote tallies on poll options and slider count/average before you vote" = "Affiche les totaux de vote sur les options de sondage et le nombre/la moyenne des curseurs avant votre vote"; +"Stop story auto-advance" = "Arrêter l’avance automatique des stories"; +"Stories" = "Stories"; +"Stories won't auto-skip to the next one when the timer ends. Tap to advance manually" = "Les stories ne passeront plus automatiquement à la suivante à la fin du minuteur. Touchez pour avancer manuellement"; +"Story audio toggle" = "Interrupteur audio des stories"; +"Story user list" = "Liste d’utilisateurs des stories"; +"Tapping the eye button to mark a story as seen advances to the next story automatically" = "Toucher le bouton œil pour marquer une story comme vue passe automatiquement à la suivante"; +"View story mentions" = "Voir les mentions de story"; +"Which stories get seen-receipt blocking" = "Stories concernées par le blocage des accusés de vue"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — READ RECEIPTS // +// Settings → Read receipts tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to DM threads to mark messages as seen" = "Ajoute un bouton aux fils de DM pour marquer les messages comme vus"; +"Auto mark seen on interact" = "Marquer vu automatiquement lors d’une interaction"; +"Auto mark seen on typing" = "Marquer vu automatiquement à la saisie"; +"Control when messages are marked as seen" = "Contrôle quand les messages sont marqués comme vus"; +"How the seen button behaves" = "Comportement du bouton vu"; +"Manually mark messages as seen" = "Marquer manuellement les messages comme vus"; +"Marks messages as seen when you send any message" = "Marque les messages comme vus lorsque vous envoyez un message"; +"Marks messages as seen when you start typing" = "Marque les messages comme vus lorsque vous commencez à écrire"; +"Read receipt mode" = "Mode des accusés de lecture"; +"Read receipts" = "Accusés de lecture"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — KEEP DELETED // +// Settings → Keep deleted messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Activity" = "Activité"; +"Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "Ajoute une option « Télécharger » au menu d’appui long des messages vocaux pour les enregistrer en audio M4A"; +"Allows typing and sending DMs longer than Instagram's limit" = "Permet d’écrire et d’envoyer des DM plus longs que la limite d’Instagram"; +"Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "Ajoute une option « Envoyer un fichier » au menu plus des DM. Les types de fichiers pris en charge peuvent être limités par Instagram"; +"Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "Ajoute une option « Fichier audio » au menu plus des DM pour envoyer des fichiers audio comme messages vocaux"; +"Adds copy text, download GIF/audio to the note long-press menu" = "Ajoute copier le texte et télécharger GIF/audio au menu d’appui long des notes"; +"Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "Tout bloquer : toutes les discussions sont bloquées — les discussions listées sont des exceptions.\nBloquer la sélection : seules les discussions listées sont bloquées — le reste est normal.\nLes deux listes sont enregistrées indépendamment. Appui long sur une discussion dans la boîte de réception pour l’ajouter ou la retirer."; +"Block keep-deleted for excluded chats" = "Bloquer la conservation des supprimés pour les discussions exclues"; +"Block keep-deleted for unlisted chats" = "Bloquer la conservation des supprimés pour les discussions non listées"; +"Bypass DM character limit" = "Contourner la limite de caractères des DM"; +"Chat list" = "Liste de discussions"; +"Confirmation dialog before clearing preserved messages" = "Confirmation avant d’effacer les messages conservés"; +"Copies note text directly on long press without opening the menu" = "Copie directement le texte d’une note par appui long sans ouvrir le menu"; +"Copy text on hold" = "Copier le texte au maintien"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "Ajoute un bouton pinceau et un raccourci d’appui long pour choisir des couleurs d’arrière-plan et de texte personnalisées"; +"Custom note themes" = "Thèmes de notes personnalisés"; +"Disable vanish mode swipe" = "Désactiver le balayage du mode éphémère"; +"Disable typing status" = "Désactiver le statut de saisie"; +"Disable view-once limitations" = "Désactiver les limitations de vue unique"; +"Download voice messages" = "Télécharger les messages vocaux"; +"Enable chat list" = "Activer la liste de discussions"; +"Enable note theming" = "Activer les thèmes de notes"; +"Enables the notes theme picker" = "Active le sélecteur de thème des notes"; +"Files" = "Fichiers"; +"Full last active date" = "Date complète de dernière activité"; +"Hide reels blend button" = "Masquer le bouton Blend des reels"; +"Hide send to group chat" = "Masquer l’envoi à un groupe"; +"Pin recipients on long-press" = "Épingler les destinataires à l’appui long"; +"Long-press in the share sheet to pin a chat/user to the top" = "Appui long dans la feuille de partage pour épingler une discussion/un utilisateur en haut"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "Appui long sur un destinataire pour l’épingler ou le désépingler. Les destinataires épinglés s’affichent en haut."; +"Recipient pinned" = "Destinataire épinglé"; +"Recipient unpinned" = "Destinataire désépinglé"; +"Couldn't resolve recipient id" = "Impossible de résoudre l’ID du destinataire"; +"Hide video call button" = "Masquer le bouton d’appel vidéo"; +"Hide voice call button" = "Masquer le bouton d’appel vocal"; +"Hides the blend button in DMs" = "Masque le bouton Blend dans les DM"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "Supprime la ligne de création/envoi à un groupe lors du partage à plusieurs destinataires"; +"Hides typing indicator from others" = "Masque l’indicateur de saisie aux autres"; +"Indicate unsent messages" = "Indiquer les messages annulés"; +"Keep deleted messages" = "Conserver les messages supprimés"; +"Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "Fait se comporter les messages à vue unique comme des messages visuels normaux (bouclables/pausables)"; +"Note actions" = "Actions des notes"; +"Preserves messages that others unsend" = "Conserve les messages annulés par les autres"; +"Prevents accidental swipe-up activation of vanish mode" = "Empêche l’activation accidentelle du mode éphémère par balayage vers le haut"; +"Quick list button in chats" = "Bouton de liste rapide dans les discussions"; +"Removes the audio call button from DM thread header" = "Retire le bouton d’appel audio de l’en-tête des fils de DM"; +"Removes the video call button from DM thread header" = "Retire le bouton d’appel vidéo de l’en-tête des fils de DM"; +"Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "Revoir les messages visuels sans expiration. À basculer dans le menu du bouton œil, ou via un bouton séparé quand le bouton œil est désactivé"; +"Search, sort, swipe to remove or toggle keep-deleted" = "Rechercher, trier, balayer pour supprimer ou basculer la conservation des supprimés"; +"Send audio as file" = "Envoyer l’audio comme fichier"; +"Send files (experimental)" = "Envoyer des fichiers (expérimental)"; +"Show full date instead of \"Active 2h ago\"" = "Afficher la date complète au lieu de \"Active 2h ago\""; +"Shows a button in DM threads to add/remove chats from the list. Long-press for more options" = "Affiche un bouton dans les fils de DM pour ajouter/retirer des discussions de la liste. Appui long pour plus d’options"; +"Shows a notification pill when a message is unsent" = "Affiche une pastille de notification lorsqu’un message est annulé"; +"Shows an \"Unsent\" label on preserved messages" = "Affiche un libellé \"Unsent\" sur les messages conservés"; +"Unlimited replay of visual messages" = "Relecture illimitée des messages visuels"; +"Unsent message notification" = "Notification de message annulé"; +"Voice messages" = "Messages vocaux"; +"Warn before clearing on refresh" = "Avertir avant l’effacement au rafraîchissement"; +"Which chats get read-receipt blocking" = "Discussions concernées par le blocage des accusés de lecture"; +"⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ Tirer pour rafraîchir dans l’onglet DM efface tous les messages conservés. Activez l’avertissement ci-dessous pour obtenir une confirmation."; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu supprimés"; +"%lu messages from %lu users" = "%lu messages de %lu utilisateurs"; +"%lu selected" = "%lu sélectionné(s)"; +"Absolute date + time" = "Date + heure absolues"; +"Adjust the filters or clear the search to see more." = "Ajustez les filtres ou effacez la recherche pour en voir davantage."; +"All time" = "Depuis toujours"; +"Browse, filter and search recorded messages" = "Parcourir, filtrer et rechercher les messages enregistrés"; +"Captures unsent messages with their text or media" = "Enregistre les messages annulés avec leur texte ou leur média"; +"Clear deleted-message log?" = "Effacer le journal des messages supprimés ?"; +"Clear from this user" = "Effacer pour cet utilisateur"; +"Clear log" = "Effacer le journal"; +"Clear log for this account" = "Effacer le journal pour ce compte"; +"Clear log for this user?" = "Effacer le journal pour cet utilisateur ?"; +"Clear media files" = "Effacer les fichiers média"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "Effacer les médias conserve les enregistrements (texte, expéditeur, horodatage). Effacer le journal supprime tout pour ce compte."; +"Close" = "Fermer"; +"Content unavailable" = "Contenu indisponible"; +"Copied" = "Copié"; +"Copy URL" = "Copier l'URL"; +"Date range" = "Plage de dates"; +"Deleted messages" = "Messages supprimés"; +"Deleted messages log" = "Journal des messages supprimés"; +"Deleted: %@\n" = "Supprimé : %@\n"; +"Edit %lu" = "Modification %lu"; +"Edit history" = "Historique des modifications"; +"Edited" = "Modifié"; +"Empty" = "Vide"; +"Enable deleted messages log" = "Activer le journal des messages supprimés"; +"Enable Settings → Messages → Deleted messages log to start recording." = "Activez Réglages → Messages → Journal des messages supprimés pour commencer l’enregistrement."; +"GIF" = "GIF"; +"Hashtag" = "Hashtag"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "Type : %@\n"; +"Last 30 days" = "30 derniers jours"; +"Last 7 days" = "7 derniers jours"; +"Link" = "Lien"; +"Live location" = "Position en direct"; +"Location" = "Lieu"; +"Logging is off" = "L’enregistrement est désactivé"; +"Media on disk" = "Média sur le disque"; +"Most messages" = "Plus de messages"; +"Most recent" = "Plus récents"; +"No deleted messages yet" = "Aucun message supprimé pour le moment"; +"No matches" = "Aucune correspondance"; +"Nothing to save" = "Rien à enregistrer"; +"Oldest first" = "Plus anciens d’abord"; +"Open log" = "Ouvrir le journal"; +"Open profile" = "Ouvrir le profil"; +"Original" = "Original"; +"Play" = "Lire"; +"Post" = "Publication"; +"Records every message someone unsends, grouped by sender" = "Enregistre chaque message annulé par quelqu’un, groupé par expéditeur"; +"Reel" = "Reel"; +"Relative (1m / 3h / 3d ago)" = "Relatif (il y a 1min/3h/3j)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "Supprime tous les messages supprimés conservés et leurs médias capturés pour le compte actuel. Cette action est irréversible."; +"Removes every preserved deleted message and its captured media for this account." = "Supprime tous les messages supprimés conservés et leurs médias capturés pour ce compte."; +"Removes every preserved deleted message from this sender." = "Supprime tous les messages supprimés conservés de cet expéditeur."; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "Supprime chaque photo, vidéo et clip vocal enregistré. Les enregistrements conservent leur texte et les infos d’expéditeur."; +"Search messages" = "Rechercher des messages"; +"Search senders or messages" = "Rechercher des expéditeurs ou des messages"; +"Select" = "Sélectionner"; +"Show edit history" = "Afficher l’historique des modifications"; +"Source URL recorded but media not stored.\n" = "URL source enregistrée mais média non stocké.\n"; +"Sticker" = "Sticker"; +"Tap to open in Instagram" = "Toucher pour ouvrir dans Instagram"; +"Tap to open in Maps" = "Toucher pour ouvrir dans Plans"; +"Tap to play" = "Toucher pour lire"; +"Tap to play · %@" = "Toucher pour lire · %@"; +"Text" = "Texte"; +"This account" = "Ce compte"; +"Unknown" = "Inconnu"; +"Video" = "Vidéo"; +"View" = "Voir"; +"Voice" = "Vocal"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "Activé, les messages supprimés et leurs médias sont enregistrés sur cet appareil. Désactivez et effacez le journal pour effacer l’historique."; +"When someone unsends a message, it will appear here grouped by sender." = "Quand quelqu’un annule un message, il apparaîtra ici regroupé par expéditeur."; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES // +// Settings → Messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Custom chat background" = "Fond de discussion personnalisé"; +"Incoming calls stay silent — no ring, no screen, no notification" = "Les appels entrants restent silencieux — pas de sonnerie, pas d'écran, pas de notification"; +"Messages" = "Messages"; +"Silence incoming calls" = "Mettre en silence les appels entrants"; +"Threads" = "Fils"; +"Use your own images as chat backgrounds" = "Utilisez vos propres images comme fonds de discussion"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "Ajoute un bouton galerie à l’appareil photo des Instants pour envoyer une photo depuis votre album"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "Ajoute un bouton d’action RyukGram à l’en-tête du visionneur d’Instants avec agrandir, enregistrer, partager et tout enregistrer"; +"All loaded instants" = "Tous les Instants chargés"; +"Bypasses the Instants screenshot block" = "Contourne le blocage des captures d’écran des Instants"; +"Could not locate the instant on screen" = "Impossible de localiser l’Instant à l’écran"; +"Current instant" = "Instant actuel"; +"In-app Gallery" = "Galerie intégrée"; +"Instant" = "Instantané"; +"Instants" = "Instantanés"; +"Instants action button" = "Bouton d’action des Instants"; +"No instants currently loaded" = "Aucun Instant chargé pour le moment"; +"No media available to save" = "Aucun média à enregistrer"; +"Photos library" = "Photothèque"; +"Pick from" = "Choisir depuis"; +"Queued %lu instants" = "%lu Instants en file"; +"Save all to Gallery" = "Tout enregistrer dans la galerie"; +"Save all to Photos" = "Tout enregistrer dans Photos"; +"Save to Gallery" = "Enregistrer dans la galerie"; +"Send from gallery" = "Envoyer depuis la galerie"; +"Tweaks for the QuickSnap / Instants camera surface." = "Ajustements pour la surface caméra QuickSnap/Instants."; +"Use" = "Utiliser"; + +////////////////////////////////////////////////////////////////////////////// +// NAVIGATION // +// Settings → Navigation tab // +////////////////////////////////////////////////////////////////////////////// + +"Also hide the bottom tab bar — only the inbox is visible" = "Masquer aussi la barre d’onglets du bas — seule la boîte de réception est visible"; +"Hide create tab" = "Masquer l’onglet Créer"; +"Hide explore tab" = "Masquer l’onglet Explorer"; +"Hide feed tab" = "Masquer l’onglet Fil"; +"Hide messages tab" = "Masquer l’onglet Messages"; +"Hide reels tab" = "Masquer l’onglet Reels"; +"Hide tab bar" = "Masquer la barre d’onglets"; +"Hides every tab except DM inbox + profile and forces launch into the inbox. Settings shortcut moves to long-press on the inbox tab." = "Masque tous les onglets sauf la boîte de réception DM + le profil et force le lancement sur la boîte de réception. Le raccourci des réglages passe à l’appui long sur l’onglet boîte de réception."; +"Hides the create tab on the bottom navigation bar" = "Masque l’onglet Créer dans la barre de navigation inférieure"; +"Hides the direct messages tab on the bottom navigation bar" = "Masque l’onglet des messages directs dans la barre de navigation inférieure"; +"Hides the explore/search tab on the bottom navigation bar" = "Masque l’onglet Explorer/recherche dans la barre de navigation inférieure"; +"Hides the feed/home tab on the bottom navigation bar" = "Masque l’onglet Fil/Accueil dans la barre de navigation inférieure"; +"Hides the reels tab on the bottom navigation bar" = "Masque l’onglet Reels dans la barre de navigation inférieure"; +"Hiding tabs" = "Masquage des onglets"; +"Icon order" = "Ordre des icônes"; +"Launch tab" = "Onglet au lancement"; +"Lets you swipe to switch between navigation bar tabs" = "Permet de balayer pour passer d’un onglet de navigation à l’autre"; +"Messages only" = "Messages seulement"; +"Messages-only mode" = "Mode messages seulement"; +"Navigation" = "Navigation"; +"Swipe between tabs" = "Balayer entre les onglets"; +"Tab the app opens to. Ignored when Messages-only is on" = "Onglet ouvert au lancement de l’app. Ignoré quand Messages seulement est activé"; +"The order of the icons on the bottom navigation bar" = "L’ordre des icônes dans la barre de navigation inférieure"; +"Turn IG into a DM-only client" = "Transformer IG en client de DM uniquement"; + +////////////////////////////////////////////////////////////////////////////// +// CONFIRM ACTIONS // +// Settings → Confirm actions tab // +////////////////////////////////////////////////////////////////////////////// + +"All" = "Tout"; +"Calls" = "Appels"; +"Comments & posts" = "Commentaires et publications"; +"Confirm actions" = "Confirmer les actions"; +"Confirm changing theme" = "Confirmer le changement de thème"; +"Confirm follow" = "Confirmer l’abonnement"; +"Confirm follow requests" = "Confirmer les demandes d’abonnement"; +"Confirm Instants capture" = "Confirmer la capture d’Instants"; +"Confirm Instants emoji reaction" = "Confirmer la réaction emoji aux Instants"; +"Confirm like: Posts" = "Confirmer le J’aime : publications"; +"Confirm like: Reels" = "Confirmer le J’aime : reels"; +"Confirm note emoji reaction" = "Confirmer la réaction emoji aux notes"; +"Confirm note like" = "Confirmer le J’aime sur une note"; +"Confirm posting comment" = "Confirmer l’envoi du commentaire"; +"Confirm repost" = "Confirmer le repost"; +"Confirm send to group chat" = "Confirmer l’envoi à un groupe"; +"Confirm sticker interaction (highlights)" = "Confirmer l’interaction avec un sticker (stories à la une)"; +"Confirm sticker interaction (stories)" = "Confirmer l’interaction avec un sticker (stories)"; +"Confirm story emoji reaction" = "Confirmer la réaction emoji à une story"; +"Confirm story like" = "Confirmer le J’aime sur une story"; +"Confirm switching Instant" = "Confirmer le changement d’Instant"; +"Confirm unfollow" = "Confirmer le désabonnement"; +"Confirm vanish mode" = "Confirmer le mode éphémère"; +"Confirm video call" = "Confirmer l’appel vidéo"; +"Confirm voice call" = "Confirmer l’appel vocal"; +"Confirm voice messages" = "Confirmer les messages vocaux"; +"Follows" = "Abonnements"; +"Likes" = "J'aime"; +"Messaging" = "Messagerie"; +"Reaction stickers only" = "Stickers de réaction uniquement"; +"Reactions" = "Réactions"; +"Send to group chat?" = "Envoyer à un groupe ?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "Affiche une alerte avant de créer/envoyer à un groupe depuis la feuille de partage"; +"Shows an alert before sending an emoji reaction on a note" = "Affiche une alerte avant d’envoyer une réaction emoji à une note"; +"Shows an alert before sending an emoji reaction on a story" = "Affiche une alerte avant d’envoyer une réaction emoji à une story"; +"Shows an alert before sending an emoji reaction on an Instant" = "Affiche une alerte avant d’envoyer une réaction emoji à un Instant"; +"Shows an alert before taking a photo with the Instants camera" = "Affiche une alerte avant de prendre une photo avec la caméra Instants"; +"Shows an alert before tapping to switch to the next/previous Instant" = "Affiche une alerte avant de toucher pour passer à l’Instant suivant/précédent"; +"Shows an alert to confirm before sending a voice message" = "Affiche une alerte de confirmation avant d’envoyer un message vocal"; +"Shows an alert to confirm before toggling vanish mode" = "Affiche une alerte de confirmation avant de basculer le mode éphémère"; +"Shows an alert when you accept/decline a follow request" = "Affiche une alerte lorsque vous acceptez/refusez une demande d’abonnement"; +"Shows an alert when you change a chat theme to confirm" = "Affiche une alerte lorsque vous changez le thème d’une discussion pour confirmer"; +"Shows an alert when you click the follow button to confirm the follow" = "Affiche une alerte lorsque vous touchez le bouton suivre pour confirmer l’abonnement"; +"Shows an alert when you click the like button on notes to confirm the like" = "Affiche une alerte lorsque vous touchez le bouton J’aime sur les notes pour confirmer"; +"Shows an alert when you click the like button on posts to confirm the like" = "Affiche une alerte lorsque vous touchez le bouton J’aime sur les publications pour confirmer"; +"Shows an alert when you click the like button on reels to confirm the like" = "Affiche une alerte lorsque vous touchez le bouton J’aime sur les reels pour confirmer"; +"Shows an alert when you click the like button on stories to confirm the like" = "Affiche une alerte lorsque vous touchez le bouton J’aime sur les stories pour confirmer"; +"Shows an alert when you click the post comment button to confirm" = "Affiche une alerte lorsque vous touchez le bouton publier un commentaire pour confirmer"; +"Shows an alert when you click the repost button to confirm before reposting" = "Affiche une alerte lorsque vous touchez le bouton de repost pour confirmer avant de reposter"; +"Shows an alert when you click the unfollow button to confirm" = "Affiche une alerte lorsque vous touchez le bouton se désabonner pour confirmer"; +"Shows an alert when you click the video call button to confirm before calling" = "Affiche une alerte lorsque vous touchez le bouton d’appel vidéo pour confirmer avant d’appeler"; +"Shows an alert when you click the voice call button to confirm before calling" = "Affiche une alerte lorsque vous touchez le bouton d’appel vocal pour confirmer avant d’appeler"; +"Shows an alert when you tap a sticker inside a highlight" = "Affiche une alerte lorsque vous touchez un sticker dans une story à la une"; +"Shows an alert when you tap a sticker on someone's story" = "Affiche une alerte lorsque vous touchez un sticker dans la story de quelqu’un"; +"Stories & highlights" = "Stories et à la une"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld h"; +"%ld locked" = "%ld verrouillés"; +"%ld min" = "%ld min"; +"%ldh idle" = "%ldh inactif"; +"%ldm idle" = "%ldm inactif"; +"%lds" = "%lds"; +"%lds idle" = "%lds inactif"; +"%lu hidden" = "%lu masquées"; +"4 digits" = "4 chiffres"; +"6 digits" = "6 chiffres"; +"Add hidden chat" = "Ajouter une discussion masquée"; +"Add locked chat" = "Ajouter une discussion verrouillée"; +"Allow Instants screenshots" = "Autoriser les captures Instants"; +"Always ask when opening again" = "Toujours demander à la réouverture"; +"Ask again after Instagram returns" = "Redemander après le retour d'Instagram"; +"Auto-relock after idle" = "Reverrouillage automatique après inactivité"; +"Balanced default" = "Équilibré par défaut"; +"Best for sensitive sections" = "Idéal pour les sections sensibles"; +"Biometric" = "Biométrie"; +"Change passcode" = "Changer le code"; +"Chat hidden" = "Discussion masquée"; +"Chat locked" = "Discussion verrouillée"; +"Chat unlocked" = "Discussion déverrouillée"; +"Choose a code you'll remember." = "Choisissez un code dont vous vous souviendrez."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "Choisissez combien de temps cette section reste déverrouillée en inactivité. « Jamais » la garde déverrouillée jusqu'à ce qu'Instagram se ferme ou passe en arrière-plan."; +"Confirm current passcode" = "Confirmez le code actuel"; +"Confirm passcode" = "Confirmez le code"; +"Could not save passcode" = "Impossible d’enregistrer le code"; +"Create passcode" = "Créer un code"; +"Derivation failed" = "Échec de la dérivation"; +"DM inbox" = "Boîte de DM"; +"Don't share unlock" = "Ne pas partager le déverrouillage"; +"Each target has its own enable, timeout, and re-lock configuration." = "Chaque cible a sa propre configuration d'activation, de délai et de reverrouillage."; +"Enable lock" = "Activer le verrouillage"; +"Enter passcode" = "Saisissez le code"; +"Enter value" = "Saisir une valeur"; +"Enter your current passcode to change it" = "Saisissez votre code actuel pour le changer"; +"Enter your current passcode to reset it" = "Saisissez votre code actuel pour le réinitialiser"; +"Enter your passcode to continue" = "Saisissez votre code pour continuer"; +"every use" = "à chaque utilisation"; +"Every use" = "À chaque utilisation"; +"Hidden chats" = "Discussions masquées"; +"Hide chat" = "Masquer la discussion"; +"Hide message preview" = "Masquer l’aperçu du message"; +"Hide this chat?" = "Masquer cette discussion ?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "Masque l’interface de RyukGram dans les captures et enregistrements et contourne les alertes de capture d’écran d’Instagram par fonctionnalité."; +"Idle timeout" = "Délai d’inactivité"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "Garder cette cible verrouillée séparément"; +"Less frequent prompts" = "Invites moins fréquentes"; +"Lock" = "Verrouiller"; +"Lock chat" = "Verrouiller la discussion"; +"Lock every time" = "Verrouiller à chaque fois"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "« Verrouiller à chaque fois » prime sur le délai d'inactivité. « Ne pas partager le déverrouillage » garde cette cible séparée."; +"Lock targets" = "Cibles de verrouillage"; +"Lock the tweak" = "Verrouiller le tweak"; +"Lock this chat" = "Verrouiller cette discussion"; +"Lock this chat?" = "Verrouiller cette discussion ?"; +"Lock with passcode" = "Verrouiller avec un code"; +"Locked chats" = "Discussions verrouillées"; +"Long-press a chat to lock it individually" = "Appui long sur une discussion pour la verrouiller individuellement"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "Appui long sur une discussion → Masquer la discussion pour l’ajouter ici. Les discussions masquées sont filtrées de la boîte jusqu’à ce que vous les retiriez de cette liste."; +"Long-press a DM to add" = "Appui long sur une discussion pour l’ajouter"; +"Longest idle window" = "Plus longue fenêtre d'inactivité"; +"Manage locked chats" = "Gérer les discussions verrouillées"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "Interrupteur principal. Désactivez pour désactiver toutes les cibles de verrouillage sans perdre leur configuration."; +"Never" = "Jamais"; +"No passcode set" = "Aucun code défini"; +"Nothing here yet." = "Rien ici pour l’instant."; +"Off" = "Désactivé"; +"On" = "Activé"; +"On — %@" = "Activé — %@"; +"On — %@ + %ld more" = "Activé — %@ + %ld de plus"; +"On — no targets enabled" = "Activé — aucune cible activée"; +"Passcode" = "Code d’accès"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "Code + biométrie. Verrouille la fenêtre des réglages du tweak, la galerie, le journal des messages supprimés, des discussions individuelles et toute l’app."; +"Passcode changed" = "Code modifié"; +"Passcode reset" = "Code réinitialisé"; +"Passcode set" = "Code défini"; +"Passcode too short" = "Code trop court"; +"Passcodes did not match — try again" = "Les codes ne correspondent pas — réessayez"; +"Per-chat locks" = "Verrous par discussion"; +"Prompt before Instagram opens" = "Demander avant l’ouverture d’Instagram"; +"Prompt before Profile Analyzer opens" = "Demander avant l’ouverture de l’Analyseur de profil"; +"Prompt before the deleted-messages log opens" = "Demander avant l’ouverture du journal des messages supprimés"; +"Prompt before the gallery opens" = "Demander avant l’ouverture de la galerie"; +"Prompt before tweak settings open" = "Demander avant l’ouverture des réglages du tweak"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "Demander à chaque entrée dans la boîte de DM, y compris le lancement direct sur les messages"; +"Re-enter the same passcode" = "Saisissez à nouveau le même code"; +"Re-lock on background" = "Reverrouiller en arrière-plan"; +"re-lock on bg" = "reverr. en arrière-plan"; +"Recently hidden" = "Masquées récemment"; +"Recently locked" = "Verrouillées récemment"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "Masque les boutons RyukGram dans les captures, enregistrements d’écran et la recopie"; +"Remove screenshot alert" = "Supprimer l’alerte de capture d’écran"; +"Replace inbox preview with • • •" = "Remplacer l'aperçu de la boîte de réception par • • •"; +"Require passcode for this section" = "Exiger un code pour cette section"; +"Requires your current passcode" = "Nécessite votre code actuel"; +"Reset passcode" = "Réinitialiser le code"; +"Reset passcode?" = "Réinitialiser le code ?"; +"Screenshots & capture" = "Captures d’écran et enregistrements"; +"Security & Privacy" = "Sécurité et confidentialité"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "Définissez un code pour verrouiller les Réglages, la Galerie, le journal des messages supprimés, des discussions individuelles, la boîte de DM, l’Analyseur de profil ou Instagram lui-même."; +"Set passcode" = "Définir un code"; +"Short idle window" = "Courte fenêtre d'inactivité"; +"Stay unlocked until app close or background" = "Rester déverrouillé jusqu'à la fermeture ou le passage en arrière-plan de l'app"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "Supprimer la notification « X a fait une capture d'écran » d'IG dans les stories, les DM et les médias éphémères"; +"Tap Unlock" = "Touchez Déverrouiller"; +"Tap Unlock or enter your passcode" = "Touchez Déverrouiller ou saisissez votre code"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "Cela efface le code, désactive toutes les cibles de verrouillage et déverrouille toutes les discussions. La galerie et les données de messages supprimés ne sont pas touchées."; +"Thread %@" = "Fil %@"; +"Tweak settings" = "Réglages du tweak"; +"Unlock" = "Déverrouiller"; +"Unlock %@" = "Déverrouiller %@"; +"Unlock chat" = "Déverrouiller la discussion"; +"Unlock Instagram" = "Déverrouiller Instagram"; +"Unlock this chat" = "Déverrouiller cette discussion"; +"Use %@" = "Utiliser %@"; +"Username (looks up the DM thread) or raw thread ID" = "Nom d’utilisateur (recherche la discussion) ou ID brut de discussion"; +"Username or thread ID" = "Nom d’utilisateur ou ID de discussion"; +"Wrong passcode" = "Code incorrect"; +"Wrong passcode • %ld attempts" = "Code incorrect • %ld tentatives"; + +////////////////////////////////////////////////////////////////////////////// +// BACKUP & RESTORE // +// Settings → Backup & Restore tab // +////////////////////////////////////////////////////////////////////////////// + +"%lu account(s)" = "%lu compte(s)"; +"%lu account(s) · %lu image(s) · %@" = "%lu compte(s) · %lu image(s) · %@"; +"%lu file(s) · %@" = "%lu fichier(s) · %@"; +"%lu preferences" = "%lu préférences"; +"(none)" = "(aucun)"; +"Apply backup?" = "Appliquer la sauvegarde ?"; +"Applying backup…" = "Application de la sauvegarde…"; +"archive error" = "erreur d'archive"; +"Archived snapshots" = "Instantanés archivés"; +"Backup & Restore" = "Sauvegarde et restauration"; +"Backup exported" = "Sauvegarde exportée"; +"Backup failed" = "Échec de la sauvegarde"; +"Backup has no importable sections." = "La sauvegarde ne contient aucune section importable."; +"Chat & story filters" = "Filtres de discussions et stories"; +"Chat backgrounds" = "Fonds de discussion"; +"Clear selected data" = "Effacer les données sélectionnées"; +"Corrupt entry path." = "Chemin d'entrée corrompu."; +"Could not decompress archive." = "Impossible de décompresser l'archive."; +"Could not open archive." = "Impossible d'ouvrir l'archive."; +"Could not open staging file." = "Impossible d'ouvrir le fichier temporaire."; +"Could not read the backup archive." = "Impossible de lire l'archive de sauvegarde."; +"Could not write archive." = "Impossible d'écrire l'archive."; +"Could not write backup file." = "Impossible d'écrire le fichier de sauvegarde."; +"Could not write extracted file." = "Impossible d'écrire le fichier extrait."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "Les données existantes des éléments cochés seront remplacées. Un redémarrage peut être nécessaire pour que tout prenne effet."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "Exportez ou importez les données RyukGram — réglages, filtres par compte, discussions masquées et verrouillées, Profile Analyzer, galerie, fonds de discussion et messages supprimés. Choisissez n'importe quelle combinaison sur chaque page. Les réglages restent un simple fichier JSON ; les ensembles avec média s'exportent en .ryukbak compressé."; +"Hidden & locked chats" = "Discussions masquées et verrouillées"; +"Import" = "Importer"; +"Inspect the full manifest" = "Inspecter le manifeste complet"; +"Load a .json or .ryukbak backup" = "Charger une sauvegarde .json ou .ryukbak"; +"Not a RyukGram backup archive." = "Ce n'est pas une archive de sauvegarde RyukGram."; +"PK %@" = "PK %@"; +"Preparing backup…" = "Préparation de la sauvegarde…"; +"Reading backup…" = "Lecture de la sauvegarde…"; +"Save settings or a full backup" = "Enregistrer les réglages ou une sauvegarde complète"; +"Tick what to apply. Rows not in this backup are hidden." = "Cochez ce qu'il faut appliquer. Les lignes absentes de cette sauvegarde sont masquées."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "Cochez ce qu'il faut inclure. Appuyez sur une ligne pour l'inspecter. Ajouter la galerie, les fonds de discussion ou les messages supprimés produit un ensemble .ryukbak compressé."; +"Truncated entry data." = "Données d'entrée tronquées."; +"Truncated entry length." = "Longueur d'entrée tronquée."; +"Truncated entry path." = "Chemin d'entrée tronqué."; +"Unsafe entry path." = "Chemin d'entrée non sécurisé."; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED // +// Settings → Advanced tab // +////////////////////////////////////////////////////////////////////////////// + +"Advanced" = "Avancé"; +"Auto-clear cache" = "Vidage automatique du cache"; +"Automatically opens settings when the app launches" = "Ouvre automatiquement les réglages au lancement de l’app"; +"Cache" = "Cache"; +"Cache cleared" = "Cache vidé"; +"Calculating cache size…" = "Calcul de la taille du cache…"; +"Clear" = "Vider"; +"Clear cache" = "Vider le cache"; +"Clear cache (%@)" = "Vider le cache (%@)"; +"Clearing cache…" = "Vidage du cache…"; +"Clearing still scans on demand." = "Le vidage analysera toujours à la demande."; +"Daily" = "Quotidien"; +"Disable safe mode" = "Désactiver le mode sans échec"; +"Enable tweak settings quick-access" = "Activer l’accès rapide aux réglages du tweak"; +"Fix duplicate notifications" = "Corriger les notifications en double"; +"Free %@ of Instagram cache." = "Libérer %@ du cache Instagram."; +"Freed %@" = "%@ libérés"; +"Hold on the home tab to open RyukGram settings" = "Maintenez l’onglet Accueil pour ouvrir les réglages RyukGram"; +"Monthly" = "Mensuel"; +"Nothing to clear" = "Rien à vider"; +"Off skips the size scan when Advanced opens." = "Désactivé, l’analyse de taille est ignorée à l’ouverture d’Avancé."; +"Pause playback when opening settings" = "Mettre la lecture en pause à l’ouverture des réglages"; +"Always show what's new" = "Toujours afficher les nouveautés"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "Garder le point bleu sur chaque nouvelle fonctionnalité au lieu de l'effacer une fois vue"; +"Preserve messages database" = "Préserver la base de données des messages"; +"Pauses any playing video/audio when settings opens" = "Met en pause toute vidéo ou audio en cours à l’ouverture des réglages"; +"Prevents Instagram from resetting settings after crashes (at your own risk)" = "Empêche Instagram de réinitialiser les réglages après un crash (à vos risques)"; +"Prevents two banners for the same message when IG is in the foreground" = "Empêche l’affichage de deux bannières pour le même message lorsque IG est au premier plan"; +"Remove Instagram's cached images, videos, and temporary files." = "Supprime les images, vidéos et fichiers temporaires en cache d’Instagram."; +"Reset onboarding state" = "Réinitialiser l’accueil initial"; +"Run a silent cache clear on launch when the interval has elapsed." = "Vide silencieusement le cache au lancement lorsque l’intervalle est écoulé."; +"Show cache size" = "Afficher la taille du cache"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "Ignorer la base de données des messages lors du vidage — conserve les DM, les brouillons et les messages enregistrés."; +"Show tweak settings on app launch" = "Afficher les réglages du tweak au lancement"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "Supprime la seconde notification qu’IG met en file dans l’app pendant que l’extension de notification la délivre aussi."; +"Weekly" = "Hebdomadaire"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED EXPERIMENTAL // +// Settings → Advanced → Advanced experimental features // +////////////////////////////////////////////////////////////////////////////// + +"Actions" = "Actions"; +"Advanced experimental features" = "Fonctionnalités expérimentales avancées"; +"All experimental toggles will be turned off. Instagram will restart." = "Tous les réglages expérimentaux seront désactivés. Instagram redémarrera."; +"Direct Notes — Audio reply" = "Direct Notes — Réponse audio"; +"Direct Notes — Avatar reply" = "Direct Notes — Réponse avatar"; +"Direct Notes — Friend Map" = "Direct Notes — Carte des amis"; +"Direct Notes — GIFs & stickers reply" = "Direct Notes — Réponse GIF et stickers"; +"Direct Notes — Photo reply" = "Direct Notes — Réponse photo"; +"Disabled after repeated crashes." = "Désactivé après des crashs répétés."; +"Enables GIF/sticker replies" = "Active les réponses GIF/sticker"; +"Enables photo replies" = "Active les réponses photo"; +"Enables the audio-note reply type" = "Active le type de réponse note audio"; +"Enables the avatar reply type" = "Active le type de réponse avatar"; +"Experimental flags reset" = "Flags expérimentaux réinitialisés"; +"Flip what you want on, then tap Apply to restart. Some flags may not work on every account or IG version. Flags auto-reset if IG crashes on launch 3 times." = "Activez ce que vous voulez, puis touchez Appliquer pour redémarrer. Certains flags peuvent ne pas fonctionner sur tous les comptes ou versions d’IG. Les flags se réinitialisent automatiquement si IG plante 3 fois au lancement."; +"Forces Prism-gated experiments on" = "Force l’activation des expériences protégées par Prism"; +"Forces the Homecoming home surface / nav on" = "Force l’activation de la surface/navigation Homecoming"; +"Forces the QuickSnap / Instants surface on in feed, inbox, stories, and notes tray" = "Force l’activation de la surface QuickSnap / Instants dans le fil, la boîte de réception, les stories et le bandeau des notes"; +"Got it" = "Compris"; +"Heads up" = "Attention"; +"Hidden Instagram experiments" = "Expériences Instagram masquées"; +"Hidden Instagram experiments (in Advanced)" = "Expériences Instagram masquées (dans Avancé)"; +"Homecoming" = "Homecoming"; +"Notes & QuickSnap" = "Notes et QuickSnap"; +"Prism design system" = "Système de design Prism"; +"QuickSnap (Instants)" = "QuickSnap (Instants)"; +"Reset all experimental flags" = "Réinitialiser tous les flags expérimentaux"; +"Reset experimental flags?" = "Réinitialiser les flags expérimentaux ?"; +"Restart Instagram to apply changes" = "Redémarrez Instagram pour appliquer les changements"; +"Shows the friend map entry in Direct Notes" = "Affiche l’entrée Carte des amis dans Direct Notes"; +"Surfaces" = "Surfaces"; +"These toggles flip hidden Instagram experiments on. Some features may not work on every account or IG version. If IG keeps crashing on launch, the flags auto-reset after 3 failed starts." = "Ces réglages activent des expériences Instagram masquées. Certaines fonctionnalités peuvent ne pas fonctionner sur tous les comptes ou versions d’IG. Si IG continue de planter au lancement, les flags se réinitialisent après 3 échecs."; +"Toggle hidden Instagram experiments. Some may not work on every account or IG version." = "Activez des expériences Instagram masquées. Certaines peuvent ne pas fonctionner sur tous les comptes ou versions d’IG."; +"Turn every experimental toggle off" = "Désactiver tous les réglages expérimentaux"; + +////////////////////////////////////////////////////////////////////////////// +// DEBUG // +// Settings → Debug tab // +////////////////////////////////////////////////////////////////////////////// + +"Button Cell" = "Cellule bouton"; +"Change the value on the right" = "Changez la valeur à droite"; +"Could not delete: %@" = "Suppression impossible : %@"; +"Debug" = "Débogage"; +"Delete an imported override and fall back to the shipped strings" = "Supprimer une traduction importée et revenir aux chaînes intégrées"; +"Deleted %@ override. Restart to apply." = "Traduction %@ supprimée. Redémarrez pour appliquer."; +"Enable FLEX gesture" = "Activer le geste FLEX"; +"Export strings" = "Exporter les chaînes"; +"Hold 5 fingers on the screen to open FLEX" = "Maintenez 5 doigts sur l’écran pour ouvrir FLEX"; +"I have %@%@" = "J’ai %@%@"; +"Import a .strings file for a language" = "Importer un fichier .strings pour une langue"; +"Import a .strings file to update a translation. Pick a language, select the file, restart." = "Importer un fichier .strings pour mettre à jour une traduction. Choisissez une langue, sélectionnez le fichier, redémarrez."; +"Link Cell" = "Cellule lien"; +"Localization" = "Localisation"; +"Menu Cell" = "Cellule menu"; +"Navigation Cell" = "Cellule navigation"; +"No imported localization files to reset." = "Aucun fichier de localisation importé à réinitialiser."; +"No overrides" = "Aucun remplacement"; +"Open FLEX on app focus" = "Ouvrir FLEX au focus de l’app"; +"Open FLEX on app launch" = "Ouvrir FLEX au lancement de l’app"; +"Opens FLEX when the app is focused" = "Ouvre FLEX lorsque l’app reçoit le focus"; +"Opens FLEX when the app launches" = "Ouvre FLEX au lancement de l’app"; +"Pick a language to delete the imported file" = "Choisissez une langue pour supprimer le fichier importé"; +"Pick a language to export" = "Choisissez une langue à exporter"; +"Reset localization" = "Réinitialiser la localisation"; +"Pick a language and share its .strings file" = "Choisissez une langue pour partager son fichier .strings"; +"Static Cell" = "Cellule statique"; +"Stepper cell" = "Cellule pas-à-pas"; +"Switch Cell" = "Cellule interrupteur"; +"Switch Cell (Restart)" = "Cellule interrupteur (redémarrage)"; +"Tap the switch" = "Touchez l’interrupteur"; +"These features rely on hidden Instagram flags and may not work on all accounts or versions." = "Ces fonctionnalités reposent sur des flags Instagram masqués et peuvent ne pas fonctionner sur tous les comptes ou versions."; +"Update localization file" = "Mettre à jour le fichier de localisation"; +"Using icon" = "Utilise une icône"; +"Using image" = "Utilise une image"; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOADS & MEDIA ACTIONS // +// Action button menus, download/share/copy toasts, quality picker pills. // +////////////////////////////////////////////////////////////////////////////// + +"%@ settings" = "Réglages %@"; +"%lu items" = "%lu éléments"; +"Cancelled" = "Annulé"; +"Carousel" = "Carrousel"; +"Carousel · %lu items" = "Carrousel · %lu éléments"; +"Copied %lu URLs" = "%lu URL copiées"; +"Copied caption" = "Légende copiée"; +"Copied download URL" = "URL de téléchargement copiée"; +"Copied quality info" = "Infos de qualité copiées"; +"Copied video URL" = "URL de la vidéo copiée"; +"Copy all URLs" = "Copier toutes les URL"; +"Copy caption" = "Copier la légende"; +"Copy download URL" = "Copier l’URL de téléchargement"; +"Could not extract any URLs" = "Impossible d’extraire des URL"; +"Could not extract audio URL" = "Impossible d’extraire l’URL audio"; +"Could not extract media URL" = "Impossible d’extraire l’URL du média"; +"Could not extract photo URL" = "Impossible d’extraire l’URL de la photo"; +"Could not extract video URL" = "Impossible d’extraire l’URL de la vidéo"; +"Done" = "Terminé"; +"Download all stories and share?" = "Télécharger toutes les stories et partager ?"; +"Download all to Photos" = "Tout télécharger dans Photos"; +"Download and share all" = "Tout télécharger et partager"; +"Download failed" = "Échec du téléchargement"; +"Downloaded %lu items" = "%lu éléments téléchargés"; +"Downloading audio…" = "Téléchargement de l'audio…"; +"Failed to save" = "Échec de l’enregistrement"; +"File" = "Fichier"; +"HD" = "HD"; +"HD download complete" = "Téléchargement HD terminé"; +"HD video" = "Vidéo HD"; +"Mute audio" = "Couper le son"; +"No caption on this post" = "Aucune légende sur cette publication"; +"No carousel children" = "Aucun élément de carrousel"; +"No cover image" = "Aucune image de couverture"; +"No media" = "Aucun média"; +"No media to expand" = "Aucun média à agrandir"; +"No media to show" = "Aucun média à afficher"; +"No media URL" = "Aucune URL de média"; +"No URLs" = "Aucune URL"; +"No URLs found" = "Aucune URL trouvée"; +"No video URL" = "Aucune URL vidéo"; +"Not a carousel" = "Ce n’est pas un carrousel"; +"Nothing to share" = "Rien à partager"; +"Opening creator…" = "Ouverture de l’éditeur..."; +"Photo library access denied" = "Accès à la photothèque refusé"; +"Photos access denied" = "Accès à Photos refusé"; +"Preparing repost…" = "Préparation du repost..."; +"Raw image" = "Image brute"; +"Repost" = "Repost"; +"Repost unavailable" = "Repost indisponible"; +"Save failed" = "Échec de l’enregistrement"; +"Saved %lu items" = "%lu éléments enregistrés"; +"Saved to Photos" = "Enregistré dans Photos"; +"Saved to RyukGram" = "Enregistré dans RyukGram"; +"Saving to Photos" = "Enregistrement dans Photos"; +"Saving…" = "Enregistrement..."; +"Unmute audio" = "Rétablir le son"; +"Video · %@" = "Vidéo · %@"; +"View cover" = "Voir la couverture"; +"View mentions" = "Voir les mentions"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES & MESSAGES (FEATURES) // +// Buttons, menu entries, toasts and alerts shown while watching stories or // +// inside DM threads. // +////////////////////////////////////////////////////////////////////////////// + +" %lu votes · avg %.0f%% " = " %lu votes · moy. %.0f%% "; +"%@ can't be converted" = "%@ ne peut pas être converti"; +"%@ unsent a message" = "%@ a annulé un message"; +"%@ unsent a message from %@" = "%@ a annulé un message de %@"; +"A message was unsent" = "Un message a été annulé"; +"Add" = "Ajouter"; +"Add to block list" = "Ajouter à la liste de blocage"; +"Added to block list" = "Ajouté à la liste de blocage"; +"Added to exclude list" = "Ajouté à la liste d’exclusion"; +"Audio not loaded yet. Play the message first and try again." = "L’audio n’est pas encore chargé. Lancez d’abord le message puis réessayez."; +"Audio sent" = "Audio envoyé"; +"Audio URL not available" = "URL audio indisponible"; +"Audio/Video from Files" = "Audio/vidéo depuis Fichiers"; +"Blocked" = "Bloqué"; +"Cancel" = "Annuler"; +"Clear preserved messages?" = "Effacer les messages conservés ?"; +"Converting…" = "Conversion..."; +"Copy link" = "Copier le lien"; +"Copy text" = "Copier le texte"; +"Could not copy selected video" = "Impossible de copier la vidéo sélectionnée"; +"Could not find media" = "Média introuvable"; +"Could not find story media" = "Média de story introuvable"; +"Could not get audio data. Try again after refreshing the chat." = "Impossible d’obtenir les données audio. Réessayez après avoir rafraîchi la discussion."; +"Disable read receipts" = "Désactiver les accusés de lecture"; +"Disappearing media" = "Média éphémère"; +"Download audio" = "Télécharger l’audio"; +"Enable read receipts" = "Activer les accusés de lecture"; +"Error: %@" = "Erreur : %@"; +"Exclude chat" = "Exclure la discussion"; +"Exclude from seen" = "Exclure des vues"; +"Exclude story seen" = "Exclure la vue de story"; +"Excluded" = "Exclu"; +"Extracting audio…" = "Extraction de l’audio..."; +"FFmpeg conversion failed" = "Échec de la conversion FFmpeg"; +"File sending not supported" = "Envoi de fichiers non pris en charge"; +"Follow" = "Suivre"; +"Following" = "Abonné"; +"Format not supported without FFmpegKit" = "Format non pris en charge sans FFmpegKit"; +"Inserts a button on disappearing media overlays" = "Insère un bouton sur les médias éphémères"; +"Inserts a speaker button to mute/unmute disappearing media" = "Insère un bouton haut-parleur pour couper/rétablir le son des médias éphémères"; +"Inserts an eye button to mark the current disappearing media as viewed" = "Insère un bouton œil pour marquer le média éphémère actuel comme vu"; +"Link copied" = "Lien copié"; +"Mark as viewed" = "Marquer comme vu"; +"Mark messages as seen" = "Marquer les messages comme vus"; +"Mark seen" = "Marquer vu"; +"Marked as viewed" = "Marqué comme vu"; +"Marked messages as seen" = "Messages marqués comme vus"; +"Mentions" = "Mentions"; +"Message from %@ was unsent" = "Un message de %@ a été annulé"; +"Message sender not found" = "Expéditeur du message introuvable"; +"Messages settings" = "Réglages des messages"; +"Mute story audio" = "Couper le son de la story"; +"no audio track could be read" = "aucune piste audio n’a pu être lue"; +"No audio URL found. Try again after refreshing the chat." = "Aucune URL audio trouvée. Réessayez après avoir rafraîchi la discussion."; +"No mentions in this story" = "Aucune mention dans cette story"; +"No thread key" = "Aucune clé de fil"; +"No video selected" = "Aucune vidéo sélectionnée"; +"No voice send method found" = "Aucune méthode d’envoi vocal trouvée"; +"Note has no downloadable content" = "La note n'a aucun contenu téléchargeable"; +"Note text copied" = "Texte de la note copié"; +"Open GitHub" = "Ouvrir GitHub"; +"Pick audio or video" = "Choisir audio ou vidéo"; +"Read receipts disabled" = "Accusés de lecture désactivés"; +"Read receipts enabled" = "Accusés de lecture activés"; +"Read receipts will be blocked for this chat." = "Les accusés de lecture seront bloqués pour cette discussion."; +"Read receipts will no longer be blocked for this chat." = "Les accusés de lecture ne seront plus bloqués pour cette discussion."; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "Rafraîchir l’onglet DM effacera %lu message annulé conservé. Cette action est irréversible."; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "Rafraîchir l’onglet DM effacera %lu messages annulés conservés. Cette action est irréversible."; +"Remove" = "Retirer"; +"Remove from block list" = "Retirer de la liste de blocage"; +"Remove from exclude list" = "Retirer de la liste d’exclusion"; +"Removed" = "Retiré"; +"Removed from list" = "Retiré de la liste"; +"Save GIF" = "Enregistrer le GIF"; +"Selection too short (min 0.5s)" = "Sélection trop courte (min 0,5 s)"; +"Send anyway" = "Envoyer quand même"; +"Send Audio" = "Envoyer l’audio"; +"Send failed: %@" = "Échec de l’envoi : %@"; +"Send File" = "Envoyer un fichier"; +"Send service not found" = "Service d’envoi introuvable"; +"Show audio toggle" = "Afficher l’interrupteur audio"; +"Show mark-as-viewed button" = "Afficher le bouton marquer comme vu"; +"Story read receipts disabled" = "Accusés de vue des stories désactivés"; +"Story read receipts enabled" = "Accusés de vue des stories activés"; +"This chat will resume normal read-receipt behavior." = "Cette discussion reprendra le comportement normal des accusés de lecture."; +"This file" = "Ce fichier"; +"Total: %@" = "Total : %@"; +"Un-exclude chat" = "Ne plus exclure la discussion"; +"Un-exclude story seen" = "Ne plus exclure la vue de story"; +"Un-excluded" = "Réintégré"; +"Unblocked" = "Débloqué"; +"Unlimited replay enabled" = "Relecture illimitée activée"; +"Unmute story audio" = "Rétablir le son de la story"; +"Unsent" = "Annulé"; +"Upload Audio" = "Téléverser l’audio"; +"VC not found" = "VC introuvable"; +"Video from Library" = "Vidéo depuis la photothèque"; +"Visual messages will expire" = "Les messages visuels expireront"; +"Visual messages: expiring" = "Messages visuels : expiration"; +"Visual messages: unlimited replay" = "Messages visuels : relecture illimitée"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "Ajouter un fond"; +"Add Chat Background" = "Ajouter un fond de discussion"; +"Adds your own image backgrounds to Instagram chats" = "Ajoute vos propres images de fond aux discussions Instagram"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "Après activation, ouvrez une discussion, appuyez sur le bouton de thème, puis sur l'icône photo en haut à droite."; +"Blur" = "Flou"; +"Browse chats" = "Parcourir les discussions"; +"Browse chats (%ld)" = "Parcourir les discussions (%ld)"; +"Change Background" = "Changer de fond"; +"Change default" = "Changer la valeur par défaut"; +"Chat Backgrounds" = "Fonds de discussion"; +"Choose an image used when no chat override exists" = "Choisir une image utilisée quand aucun fond personnalisé n'existe"; +"Choose Image" = "Choisir une image"; +"Clear default" = "Effacer la valeur par défaut"; +"Couldn't import image" = "Impossible d'importer l'image"; +"Custom Chat Background" = "Fond de discussion personnalisé"; +"Default background" = "Fond par défaut"; +"Delete library images, default background, and chat overrides" = "Supprimer les images de la bibliothèque, le fond par défaut et les fonds personnalisés des discussions"; +"Dim in dark mode" = "Assombrir en mode sombre"; +"Edit image settings" = "Modifier les réglages d'image"; +"Enable custom backgrounds" = "Activer les fonds personnalisés"; +"Enter a username, chat name, or thread ID." = "Saisissez un nom d'utilisateur, un nom de discussion ou un ID de fil."; +"Group" = "Groupe"; +"Image Settings" = "Réglages d'image"; +"Library" = "Bibliothèque"; +"Library, default, and per-chat overrides will be deleted." = "La bibliothèque, le fond par défaut et les fonds par discussion seront supprimés."; +"No Custom" = "Aucun personnalisé"; +"Opacity" = "Opacité"; +"Photo Library" = "Photothèque"; +"Pick default" = "Choisir la valeur par défaut"; +"Pinch + drag to position" = "Pincez et glissez pour positionner"; +"Quit and reopen Instagram for the change to take effect." = "Quittez et rouvrez Instagram pour que le changement prenne effet."; +"Recently set" = "Récemment défini"; +"Remove the global fallback background" = "Supprimer le fond de secours global"; +"Replace the default background image" = "Remplacer l'image de fond par défaut"; +"Reset all backgrounds" = "Réinitialiser tous les fonds"; +"Reset all backgrounds?" = "Réinitialiser tous les fonds ?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "La réinitialisation règle l'opacité sur 1.0, le flou sur 0 et l'assombrissement sur 0."; +"RyukGram Gallery" = "Galerie RyukGram"; +"Search username, name, or thread ID" = "Rechercher un nom d'utilisateur, un nom ou un ID de fil"; +"Set as default" = "Définir par défaut"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "Appuyez sur plus pour ajouter. Appuyez sur un fond pour le modifier, le définir par défaut ou le supprimer."; +"This Chat Background" = "Fond de cette discussion"; +"Thread ID" = "ID de fil"; +"Used only when a chat does not have its own custom background." = "Utilisé uniquement quand une discussion n'a pas son propre fond personnalisé."; +"View and manage chats with custom backgrounds" = "Voir et gérer les discussions avec fonds personnalisés"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL FEATURES // +// Strings inside per-feature overlays: fake location, color picker, notes // +// customization, profile copy, etc. // +////////////////////////////////////////////////////////////////////////////// + +"Add location" = "Ajouter un lieu"; +"Add preset" = "Ajouter un préréglage"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "Affecte tout ce qui précède. Désactivé, le thème et les remplacements de surface de RyukGram ne s’appliquent que lorsque iOS est en mode sombre — le mode clair reste intact."; +"Apply & restart" = "Appliquer et redémarrer"; +"Background" = "Arrière-plan"; +"Behavior" = "Comportement"; +"Change location" = "Changer le lieu"; +"Clipboard is not an Instagram URL" = "Le presse-papiers ne contient pas une URL Instagram"; +"Comments hidden" = "Commentaires masqués"; +"Comments shown" = "Commentaires affichés"; +"Copied text to clipboard" = "Texte copié dans le presse-papiers"; +"Copy" = "Copier"; +"Copy bio" = "Copier la bio"; +"Copy name" = "Copier le nom"; +"Could not find cover image" = "Image de couverture introuvable"; +"Current: %@" = "Actuel : %@"; +"Dark" = "Sombre"; +"Disable" = "Désactiver"; +"Download GIF" = "Télécharger le GIF"; +"Dropped pin" = "Repère placé"; +"Emoji" = "Emoji"; +"Enable" = "Activer"; +"Enable Location Services for Instagram in Settings to use your current location." = "Activez les services de localisation pour Instagram dans Réglages pour utiliser votre position actuelle."; +"Enter emoji" = "Saisir un emoji"; +"Fake location" = "Fausse position"; +"Force theme" = "Forcer le thème"; +"Keyboard theme" = "Thème du clavier"; +"Light" = "Clair"; +"Location access denied" = "Accès à la position refusé"; +"Location Services off" = "Services de localisation désactivés"; +"Name" = "Nom"; +"Nothing to copy" = "Rien à copier"; +"Off, Light, Dark, or OLED" = "Désactivé, clair, sombre ou OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "Thème de discussion OLED"; +"Open Settings" = "Ouvrir les réglages"; +"Optional per-surface overrides. Each one is independent of the theme above." = "Remplacements optionnels par surface. Chacun est indépendant du thème ci-dessus."; +"Override iOS appearance regardless of system mode" = "Remplace l’apparence iOS quel que soit le mode système"; +"Override the keyboard appearance when typing" = "Remplace l’apparence du clavier lors de la saisie"; +"Pick location" = "Choisir un lieu"; +"Pure black DM thread + incoming bubbles" = "Fil de DM et bulles reçues en noir pur"; +"Reset theme" = "Réinitialiser le thème"; +"Restart Instagram to apply your theme changes" = "Redémarrez Instagram pour appliquer vos changements de thème"; +"Save" = "Enregistrer"; +"Save preset" = "Enregistrer le préréglage"; +"Saved locations" = "Lieux enregistrés"; +"Select color" = "Sélectionner une couleur"; +"Set location" = "Définir le lieu"; +"The theme RyukGram applies to Instagram." = "Le thème que RyukGram applique à Instagram."; +"Theme" = "Thème"; +"Turn every theme option off and restart" = "Désactiver chaque option de thème et redémarrer"; +"Turn Location Services on in Settings → Privacy to use your current location." = "Activez les services de localisation dans Réglages → Confidentialité pour utiliser votre position actuelle."; +"Type an emoji to use as the note bubble icon." = "Saisissez un emoji à utiliser comme icône de la bulle de note."; +"View profile picture" = "Voir la photo de profil"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE ANALYZER // +// Settings → Profile Analyzer // +////////////////////////////////////////////////////////////////////////////// + +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu comptes ? Les %ld premiers seront traités pour éviter les limites de débit."; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu comptes ? L’opération se fait séquentiellement avec une courte pause entre chaque."; +"%@ followers · %@ following" = "%@ abonnés · %@ abonnements"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "il y a %dj"; +"%dh ago" = "il y a %dh"; +"%dm ago" = "il y a %dmin"; +"%lu accounts followed" = "%lu comptes suivis"; +"%lu accounts unfollowed" = "%lu comptes désabonnés"; +"%lu followers · %lu following" = "%lu abonnés · %lu abonnements"; +"%lu of %lu" = "%lu sur %lu"; +"%lu saved · comparing against %@" = "%lu enregistrés · comparaison avec %@"; +"(empty)" = "(vide)"; +"(no analyzer data)" = "(aucune donnée d’analyseur)"; +"a saved snapshot" = "un instantané enregistré"; +"About Profile Analyzer" = "À propos de l’analyseur de profil"; +"All preferences (%lu)" = "Toutes les préférences (%lu)"; +"Analysis complete" = "Analyse terminée"; +"Analysis failed" = "Échec de l’analyse"; +"Another analysis is already running" = "Une autre analyse est déjà en cours"; +"Available after your next scan" = "Disponible après votre prochaine analyse"; +"Batch follow" = "Suivi par lot"; +"Batch follow finished" = "Suivi par lot terminé"; +"Batch unfollow" = "Désabonnement par lot"; +"Batch unfollow finished" = "Désabonnement par lot terminé"; +"Categories" = "Catégories"; +"Clear visited profiles" = "Effacer les profils visités"; +"Compare next scan against" = "Comparer le prochain scan avec"; +"Comparing against %@" = "Comparaison avec %@"; +"Continue" = "Continuer"; +"Couldn't fetch profile information" = "Impossible de récupérer les informations du profil"; +"Delete %lu snapshots? This can't be undone." = "Supprimer %lu instantanés ? Cette action est irréversible."; +"Delete (%lu)" = "Supprimer (%lu)"; +"Delete snapshots" = "Supprimer les instantanés"; +"Delete this snapshot? This can't be undone." = "Supprimer cet instantané ? Cette action est irréversible."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "Chaque scan enregistre une copie complète de vos abonnés et abonnements pour pouvoir les comparer plus tard. Tout reste sur cet appareil."; +"Export" = "Exporter"; +"Fetching followers (%lu/%ld)…" = "Récupération des abonnés (%lu/%ld)…"; +"Fetching following (%lu/%ld)…" = "Récupération des abonnements (%lu/%ld)…"; +"Fetching profile info…" = "Récupération des infos du profil…"; +"File is not a valid RyukGram backup." = "Le fichier n’est pas un export RyukGram valide."; +"Filter" = "Filtrer"; +"Filter · %lu" = "Filtre · %lu"; +"First scan: %@" = "Première analyse : %@"; +"First scan: we collect your followers and following lists and save them locally." = "Première analyse : nous collectons vos listes d’abonnés et d’abonnements et les enregistrons localement."; +"Follow %lu" = "Suivre %lu"; +"Follower count exceeds %ld — analysis disabled to avoid rate limits." = "Le nombre d’abonnés dépasse %ld — analyse désactivée pour éviter les limites de débit."; +"Followers" = "Abonnés"; +"Following… %lu / %lu" = "Abonnement… %lu / %lu"; +"Gained since last scan" = "Gagnés depuis la dernière analyse"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Attention : cette fonctionnalité est en bêta et utilise l’API privée d’Instagram. L’exécuter plusieurs fois de suite ou juste après une activité importante de suivi/désabonnement peut déclencher une courte limitation. Utilisez-la avec parcimonie et à vos risques."; +"Import complete" = "Import terminé"; +"Include" = "Inclure"; +"Keep newest" = "Garder les plus récents"; +"Keep newest snapshots" = "Garder les instantanés les plus récents"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Les grands comptes sont bloqués : l’analyse est désactivée au-dessus de 13 000 abonnés pour éviter qu’Instagram limite toute l’app."; +"Last scan: %@" = "Dernière analyse : %@"; +"Logs every profile you open. Stays on-device." = "Enregistre chaque profil que vous ouvrez. Reste sur l’appareil."; +"Lost followers" = "Abonnés perdus"; +"Most visited" = "Plus visités"; +"Mutual followers" = "Abonnements mutuels"; +"Name: %@ → %@" = "Nom : %@ → %@"; +"New followers" = "Nouveaux abonnés"; +"No active Instagram session found" = "Aucune session Instagram active trouvée"; +"No results" = "Aucun résultat"; +"No scan yet" = "Aucune analyse pour le moment"; +"Not following you back" = "Ne vous suivent pas en retour"; +"Not verified only" = "Non vérifiés seulement"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "Rien n’est téléversé — tout reste sur cet appareil et peut être effacé depuis l’icône de corbeille."; +"Nothing was applied." = "Rien n’a été appliqué."; +"OK" = "OK"; +"Older snapshots beyond the limit are removed automatically" = "Les instantanés plus anciens au-delà de la limite sont supprimés automatiquement"; +"Older snapshots beyond this limit are deleted on the next scan." = "Les instantanés plus anciens au-delà de cette limite sont supprimés au prochain scan."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "Choisissez ce qu'il faut supprimer. « Instantanés » efface les différences de scan et tous les instantanés enregistrés ; « profils visités » efface l'historique des visites."; +"Posts" = "Publications"; +"Preferences" = "Préférences"; +"Previous scan" = "Scan précédent"; +"Private account" = "Compte privé"; +"Private only" = "Privés seulement"; +"Profile Analyzer" = "Analyseur de profil"; +"Profile Analyzer data" = "Données de l’analyseur de profil"; +"Profile picture changed" = "Photo de profil modifiée"; +"Profile updates" = "Mises à jour du profil"; +"Profiles you've opened recently" = "Profils que vous avez ouverts récemment"; +"Raw" = "Brut"; +"Raw JSON" = "JSON brut"; +"Record snapshots" = "Enregistrer les instantanés"; +"Recording" = "Enregistrement"; +"Request failed" = "Échec de la requête"; +"Reset analyzer data" = "Réinitialiser les données de l’analyseur"; +"Reset complete" = "Réinitialisation terminée"; +"Reset everything" = "Tout réinitialiser"; +"Reset selected data?" = "Réinitialiser les données sélectionnées ?"; +"Reset snapshots" = "Réinitialiser les instantanés"; +"Rolling — always your last run" = "Continu — toujours votre dernier scan"; +"Run analysis" = "Lancer l’analyse"; +"Run your first analysis" = "Lancer votre première analyse"; +"Save a dated entry on every scan" = "Enregistrer une entrée datée à chaque scan"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "À partir de la deuxième analyse : chaque analyse est comparée à la précédente afin d’afficher les abonnés gagnés/perdus, vos propres suivis/désabonnements et les mises à jour de profil."; +"Settings" = "Réglages"; +"Since last scan" = "Depuis la dernière analyse"; +"Snapshot" = "Instantané"; +"Snapshots" = "Instantanés"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "Les instantanés vous permettent d'archiver chaque scan et de choisir celui auquel les nouveaux scans se comparent. « Suivre les visites » enregistre chaque profil que vous ouvrez pour les consulter ici."; +"Sort" = "Trier"; +"Starting…" = "Démarrage…"; +"They follow you, you don't follow back" = "Ils vous suivent, vous ne les suivez pas en retour"; +"This can't be undone." = "Cette action est irréversible."; +"Ticked data will be cleared. Tap a row to see what's stored." = "Les données sélectionnées seront effacées. Touchez une ligne pour voir ce qui est stocké."; +"Today" = "Aujourd’hui"; +"Too many followers" = "Trop d’abonnés"; +"Too many followers to analyze" = "Trop d’abonnés à analyser"; +"Track visited profiles" = "Suivre les profils visités"; +"Tracking" = "Suivi"; +"Tracking off — enable below to log visits" = "Suivi désactivé — activez ci-dessous pour enregistrer les visites"; +"Unfollow" = "Se désabonner"; +"Unfollow %lu" = "Se désabonner de %lu"; +"Unfollow @%@?" = "Se désabonner de @%@ ?"; +"Unfollowed you since last scan" = "Vous ont désabonné depuis la dernière analyse"; +"Unfollowing… %lu / %lu" = "Désabonnement… %lu / %lu"; +"Unlimited" = "Illimité"; +"Username A → Z" = "Nom d’utilisateur A → Z"; +"Username Z → A" = "Nom d’utilisateur Z → A"; +"Username, name or picture changes" = "Changements de nom d’utilisateur, nom ou photo"; +"Username: @%@ → @%@" = "Nom d’utilisateur : @%@ → @%@"; +"Using %@ across %lu snapshots." = "Utilisation de %@ sur %lu instantanés."; +"Verified only" = "Vérifiés seulement"; +"Visited" = "Visité"; +"Visited profiles" = "Profils visités"; +"We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "Nous refusons de lancer l’analyse lorsque le nombre d’abonnés dépasse %ld afin d’éviter les limites de débit d’Instagram."; +"You both follow each other" = "Vous vous suivez mutuellement"; +"You don't follow back" = "Vous ne suivez pas en retour"; +"You follow them, they don't follow back" = "Vous les suivez, ils ne vous suivent pas en retour"; +"You started following" = "Vous avez commencé à suivre"; +"You unfollowed" = "Vous vous êtes désabonné"; +"your previous scan" = "votre scan précédent"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "« Scan précédent » se mesure toujours par rapport à votre dernier scan. Choisissez un instantané enregistré pour comparer plutôt à un point fixe dans le temps."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ Cela devient volumineux — baissez la limite ou supprimez les instantanés plus anciens pour libérer de l'espace."; + +////////////////////////////////////////////////////////////////////////////// +// SETTINGS VIEWS & DIALOGS // +// Excluded-lists managers, backup/restore flows, in-picker labels. // +////////////////////////////////////////////////////////////////////////////// + +"Absolute format" = "Format absolu"; +"Add chat" = "Ajouter une discussion"; +"Add custom domain" = "Ajouter un domaine personnalisé"; +"Add to list?" = "Ajouter à la liste ?"; +"Add user" = "Ajouter un utilisateur"; +"Apply" = "Appliquer"; +"Apply to" = "Appliquer à"; +"Chats" = "Discussions"; +"Colored" = "Coloré"; +"Could not read file." = "Impossible de lire le fichier."; +"Could not resolve user ID" = "Impossible de résoudre l’ID utilisateur"; +"Current location" = "Position actuelle"; +"Custom" = "Personnalisé"; +"Delete" = "Supprimer"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "Chaque surface d’IG utilise un formateur NSDate différent. Activez celles auxquelles vous voulez appliquer ce format."; +"Enable fake location" = "Activer la fausse position"; +"Excluded chats" = "Discussions exclues"; +"Excluded users" = "Utilisateurs exclus"; +"Follow default" = "Suivre par défaut"; +"Force OFF (allow unsends)" = "Forcer NON (autoriser les annulations)"; +"Force ON (preserve unsends)" = "Forcer OUI (conserver les annulations)"; +"Include seconds when the format already shows time." = "Inclure les secondes lorsque le format affiche déjà l’heure."; +"Included chats" = "Discussions incluses"; +"Included users" = "Utilisateurs inclus"; +"KD: default" = "CS : défaut"; +"KD: ON" = "CS : OUI"; +"Keep-deleted" = "Conservation des supprimés"; +"Keep-deleted override" = "Remplacement de conservation"; +"Name (A–Z)" = "Nom (A–Z)"; +"No DM thread found with @%@" = "Aucun fil de DM trouvé avec @%@"; +"Presets" = "Préréglages"; +"Recently added" = "Ajoutés récemment"; +"Relative time" = "Temps relatif"; +"Relative within" = "Relatif dans"; +"Remove from list" = "Retirer de la liste"; +"Reset" = "Réinitialiser"; +"Search" = "Rechercher"; +"Search address or place" = "Rechercher une adresse ou un lieu"; +"Search by name or username" = "Rechercher par nom ou nom d’utilisateur"; +"Search by username or name" = "Rechercher par nom d’utilisateur ou nom"; +"Select location on map" = "Sélectionner un lieu sur la carte"; +"Set current location" = "Définir la position actuelle"; +"Set keep-deleted override" = "Définir le remplacement de conservation"; +"Show map button" = "Afficher le bouton carte"; +"Show relative time for dates younger than this many days. 0 disables it." = "Afficher le temps relatif pour les dates plus récentes que ce nombre de jours. 0 le désactive."; +"Show seconds" = "Afficher les secondes"; +"Sort by" = "Trier par"; +"Thread" = "Fil"; +"Time" = "Heure"; +"Use this location" = "Utiliser ce lieu"; +"User '%@' not found" = "Utilisateur « %@ » introuvable"; +"Username (A–Z)" = "Nom d’utilisateur (A–Z)"; +"Within %ld days" = "Sous %ld jours"; +"Within 1 day" = "Sous 1 jour"; + +////////////////////////////////////////////////////////////////////////////// +// REELS (FEATURES) // +// Strings from Reels. // +////////////////////////////////////////////////////////////////////////////// + +"No password found" = "Aucun mot de passe trouvé"; +"No text field found" = "Aucun champ de texte trouvé"; +"Refresh Reels?" = "Rafraîchir les reels ?"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE (FEATURES) // +// Strings from Profile. // +////////////////////////////////////////////////////////////////////////////// + +"%lu accounts" = "%lu comptes"; +"%lu loaded" = "%lu chargés"; +"%lu loaded · all loaded" = "%lu chargés · tout chargé"; +"Doesn't follow you" = "Ne vous suit pas"; +"Everyone is already loaded." = "Tout le monde est déjà chargé."; +"Filter & sort" = "Filtrer et trier"; +"Follows me" = "M'abonne"; +"Follows me first" = "M'abonne d'abord"; +"Follows you" = "Vous suit"; +"Hides everyone who doesn't match all picked filters." = "Masque tous ceux qui ne correspondent pas à tous les filtres choisis."; +"Jump to bottom" = "Aller en bas"; +"Jump to top" = "Aller en haut"; +"List" = "Liste"; +"List fully loaded" = "Liste entièrement chargée"; +"Load more" = "Charger plus"; +"Loaded more" = "Plus chargés"; +"Mutuals" = "Abonnements mutuels"; +"Mutuals first" = "Abonnements mutuels d'abord"; +"Note copied" = "Note copiée"; +"People I follow" = "Personnes que je suis"; +"People I follow first" = "Personnes que je suis d'abord"; +"Reverse order" = "Ordre inverse"; +"Show only" = "Afficher uniquement"; +"Verified" = "Vérifié"; +"Verified first" = "Vérifiés d'abord"; + +////////////////////////////////////////////////////////////////////////////// +// MISC // +// Anything that didn't fit a named section. Usually short labels. // +////////////////////////////////////////////////////////////////////////////// + +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(non défini)"; +"720p • progressive • fastest" = "720p • progressif • le plus rapide"; +"Add language" = "Ajouter une langue"; +"Album name" = "Nom de l'album"; +"Are you sure?" = "Êtes-vous sûr ?"; +"Bundle" = "Bundle"; +"Copy audio URL" = "Copier l’URL audio"; +"Copy quality info" = "Copier les infos de qualité"; +"Copy video URL" = "Copier l’URL vidéo"; +"Could not access reel media" = "Impossible d’accéder au média du reel"; +"Could not access reel photo" = "Impossible d’accéder à la photo du reel"; +"Could not write file." = "Impossible d’écrire le fichier."; +"Download all and share?" = "Tout télécharger et partager ?"; +"Download Quality" = "Qualité de téléchargement"; +"Downloading %d%%" = "Téléchargement %d%%"; +"e.g. 1000000" = "ex. 1000000"; +"Localization file not found" = "Fichier de localisation introuvable"; +"Enter the language code (e.g. fr, de, ja)" = "Saisir le code de langue (ex. fr, de, ja)"; +"Error" = "Erreur"; +"Extras" = "Extras"; +"FFmpegKit Debug" = "Débogage FFmpegKit"; +"File is empty or not a valid .strings file." = "Le fichier est vide ou n’est pas un fichier .strings valide."; +"KD: OFF" = "CS : NON"; +"Keep-deleted: OFF" = " • Conservation des supprimés : DÉSACTIVÉ"; +"Keep-deleted: ON" = " • Conservation des supprimés : ACTIVÉ"; +"Later" = "Plus tard"; +"Loading" = "Chargement"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "Nom de l'album Photos dans lequel RyukGram enregistre. Laissez vide pour restaurer la valeur par défaut."; +"Next" = "Suivant"; +"No results found." = "Aucun résultat trouvé."; +"No!" = "Non !"; +"Pick a language to update, or add a new one" = "Choisissez une langue à mettre à jour, ou ajoutez-en une nouvelle"; +"Preset" = "Préréglage"; +"Restart" = "Redémarrer"; +"Restart now" = "Redémarrer maintenant"; +"Restart required" = "Redémarrage requis"; +"Saved preset \"%@\"" = "Préréglage « %@ » enregistré"; +"selected" = "sélectionné"; +"Shared icon, or override per button" = "Icône partagée, ou remplacement par bouton"; +"Speed" = "Vitesse"; +"Unset" = "Non défini"; +"Update localization" = "Mettre à jour la localisation"; +"Updated %@ (%ld keys). Restart to apply." = "%@ mis à jour (%ld clés). Redémarrez pour appliquer."; +"Use default" = "Utiliser la valeur par défaut"; +"Username or PK" = "Nom d'utilisateur ou PK"; +"Username or raw user PK" = "Nom d'utilisateur ou PK brut"; +"Yes" = "Oui"; +"You must restart the app to apply this change" = "Vous devez redémarrer l’app pour appliquer ce changement"; + +////////////////////////////////////////////////////////////////////////////// +// ABOUT / CREDITS // +// Strings from the About / Credits footer of Settings. // +////////////////////////////////////////////////////////////////////////////// + +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub, Telegram, Don"; +"About" = "À propos"; +"Arabic translation" = "Traduction arabe"; +"Chinese (Traditional and Simplified) translation" = "Traduction chinoise (traditionnelle et simplifiée)"; +"Credits" = "Crédits"; +"Developers" = "Développeurs"; +"Donate to SoCuul" = "Faire un don à SoCuul"; +"installed" = "installée"; +"Korean translation" = "Traduction coréenne"; +"Portuguese (Brazil) translation" = "Traduction portugaise (Brésil)"; +"Turkish translation" = "Traduction turque"; +"Vietnamese translation" = "Traduction vietnamienne"; +"French translation" = "Traduction française"; +"Code contributions" = "Contributions de code"; +"Following feed mode (from InstaSane)" = "Mode du fil Abonnements (depuis InstaSane)"; +"latest" = "dernière"; +"Links" = "Liens"; +"No releases" = "Aucune version"; +"Original SCInsta developer" = "Développeur original de SCInsta"; +"Release notes" = "Notes de version"; +"Releases" = "Versions"; +"Report an issue" = "Signaler un problème"; +"Russian translation" = "Traduction russe"; +"RyukGram developer" = "Développeur RyukGram"; +"Join Telegram channel" = "Rejoindre le canal Telegram"; +"Source code" = "Code source"; +"View on GitHub" = "Voir sur GitHub"; +"Spanish translation" = "Traduction espagnole"; +"Support the original SCInsta developer" = "Soutenir le développeur original de SCInsta"; +"Inspirations" = "Inspirations"; +"Inspirations, contributors, translators" = "Inspirations, contributeurs, traducteurs"; +"Code and research" = "Code et recherche"; +"Translators" = "Traducteurs"; +"Original BHInstagram developer" = "Développeur original de BHInstagram"; +"OLED theme inspiration" = "Inspiration du thème OLED"; +"Donate to Ryuk" = "Faire un don à Ryuk"; +"Support RyukGram development" = "Soutenir le développement de RyukGram"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram est un fork largement retravaillé de SCInsta — soutenir le développeur original est apprécié."; +"Browse changes from previous releases" = "Parcourir les changements des versions précédentes"; +"Code inspiration" = "Inspiration de code"; +"zxPluginsInject sideload compatibility shim" = "Shim de compatibilité sideload zxPluginsInject"; +"Telegram channel" = "Canal Telegram"; +"Testing and feature suggestions" = "Tests et suggestions de fonctionnalités"; +"Version" = "Version"; +"Version, credits, and links" = "Version, crédits et liens"; +"What's new in RyukGram" = "Nouveautés de RyukGram"; + +////////////////////////////////////////////////////////////////////////////// +// HD DOWNLOADS // +// Enhanced / HD downloads settings (DASH + FFmpegKit encoding). // +////////////////////////////////////////////////////////////////////////////// + +"720p • progressive • silent" = "720p • progressif • silencieux"; +"Audio only" = "Audio uniquement"; +"Audio ready" = "Audio prêt"; +"Download video at the highest available quality" = "Télécharger la vidéo dans la meilleure qualité disponible"; +"Downloads HD video via DASH streams and encodes to H.264. Requires FFmpegKit." = "Télécharge la vidéo HD via des flux DASH et l’encode en H.264. Nécessite FFmpegKit."; +"Encoding speed" = "Vitesse d’encodage"; +"Enhanced downloads" = "Téléchargements améliorés"; +"Faster = lower quality" = "Plus rapide = qualité inférieure"; +"FFmpeg not available" = "FFmpeg indisponible"; +"FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit n’est pas disponible. Installez l’IPA sideloadée ou la variante .deb _ffmpeg pour l’activer."; +"No audio track found" = "Aucune piste audio trouvée"; +"Photo" = "Photo"; +"Photo quality" = "Qualité photo"; +"silent" = "silencieux"; +"Use highest resolution available" = "Utiliser la plus haute résolution disponible"; +"Video quality" = "Qualité vidéo"; +"Which quality to download" = "Qualité à télécharger"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "« %@ » n'est pas dans cette version de FFmpegKit — utilisation du h264 matériel à la place."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-bit 4:2:0. ~2x plus lent, dégradés plus doux."; +"10-bit colour. Slower, smoother gradients. Software only." = "Couleur 10-bit. Plus lent, dégradés plus doux. Logiciel uniquement."; +"1080p30 baseline." = "Base 1080p30."; +"4K30 baseline." = "Base 4K30."; +"8-bit 4:2:0. Universal default." = "8-bit 4:2:0. Valeur universelle par défaut."; +"8-bit 4:2:2 chroma. Niche playback." = "Chroma 8-bit 4:2:2. Lecture spécialisée."; +"8-bit 4:2:2 chroma. Software only." = "Chroma 8-bit 4:2:2. Logiciel uniquement."; +"8-bit 4:4:4 chroma. Software only." = "Chroma 8-bit 4:4:4. Logiciel uniquement."; +"8-bit 4:4:4 full chroma. Niche playback." = "Chroma complet 8-bit 4:4:4. Lecture spécialisée."; +"8-bit. Best for modern devices." = "8-bit. Idéal pour les appareils modernes."; +"Advanced encoding" = "Encodage avancé"; +"Advanced encoding settings" = "Réglages d'encodage avancés"; +"Archival quality." = "Qualité d'archivage."; +"Audio bitrate" = "Débit audio"; +"Audio channels" = "Canaux audio"; +"Audio codec" = "Codec audio"; +"Audio conversion failed" = "Échec de la conversion audio"; +"Audio sample rate" = "Fréquence d'échantillonnage audio"; +"Balanced. libx264 default." = "Équilibré. Valeur par défaut de libx264."; +"Best practical quality per bit." = "Meilleure qualité pratique par bit."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "Le débit, les canaux et la fréquence d'échantillonnage ne s'appliquent que lorsque le codec est AAC (réencodage)."; +"Cartoons / anime." = "Dessins animés / anime."; +"Cinematic. Smaller files." = "Cinématique. Fichiers plus petits."; +"Codec" = "Codec"; +"Container" = "Conteneur"; +"Copy (passthrough)" = "Copier (passthrough)"; +"CRF quality" = "Qualité CRF"; +"Downloading video…" = "Téléchargement de la vidéo…"; +"Easier to play back on weak devices." = "Plus facile à lire sur les appareils peu puissants."; +"Encoder unavailable" = "Encodeur indisponible"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "Exemples : 8M, 12M, 25M, 4500k. Laissez vide pour auto."; +"Failed to download video" = "Échec du téléchargement de la vidéo"; +"Fast, fixed-bitrate, GPU-accelerated." = "Rapide, débit fixe, accéléré par GPU."; +"Fastest, worst compression." = "Le plus rapide, pire compression."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "Faststart déplace l'index MP4 au début pour que la lecture commence avant la mise en mémoire tampon complète du fichier. « Supprimer les métadonnées » retire les balises source (date de création, gestionnaire, encodeur) du fichier."; +"FFmpeg documentation" = "Documentation FFmpeg"; +"FFmpeg mux failed" = "Échec du multiplexage FFmpeg"; +"Frame rate" = "Fréquence d'images"; +"H.264 level" = "Niveau H.264"; +"H.264 profile" = "Profil H.264"; +"Hardware (VideoToolbox)" = "Matériel (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "Le matériel (VideoToolbox) ne prend en charge que yuv420p — « %@ » a été ignoré. Passez au logiciel (libx264) pour l'utiliser."; +"Keep original audio. Fast." = "Conserver l'audio d'origine. Rapide."; +"Keep the source frame rate." = "Conserver la fréquence d'images source."; +"Let the encoder pick." = "Laisser l'encodeur choisir."; +"Live-action video." = "Vidéo en prises de vue réelles."; +"Lossless. Huge files." = "Sans perte. Fichiers énormes."; +"Low-latency streaming." = "Diffusion à faible latence."; +"Manual ffmpeg controls in place of Encoding speed." = "Contrôles ffmpeg manuels à la place de la vitesse d'encodage."; +"Marginal gain, huge time cost." = "Gain marginal, coût en temps énorme."; +"Max resolution" = "Résolution max."; +"Mono" = "Mono"; +"No tuning. Default." = "Aucun réglage. Par défaut."; +"None" = "Aucun"; +"Pixel format" = "Format de pixel"; +"Pixel format ignored" = "Format de pixel ignoré"; +"Preserve film grain." = "Préserver le grain du film."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "Le préréglage et le réglage ne s'appliquent qu'au logiciel (libx264). Associez le profil au format de pixel : high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Les incompatibilités sont reconverties silencieusement. Le matériel utilise toujours yuv420p."; +"Re-encode. Use when source is opus or unsupported." = "Réencoder. À utiliser quand la source est opus ou non prise en charge."; +"Reset advanced encoding" = "Réinitialiser l'encodage avancé"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "Définir un débit vidéo fait passer le logiciel en débit fixe et ignore le CRF. Laissez vide pour le CRF. Le matériel utilise le débit."; +"Slideshow-like content." = "Contenu de type diaporama."; +"Slower, better compression per bit." = "Plus lent, meilleure compression par bit."; +"Smaller, visible artefacts." = "Plus petit, artéfacts visibles."; +"Software (libx264)" = "Logiciel (libx264)"; +"Standard 8-bit." = "8-bit standard."; +"Stereo" = "Stéréo"; +"Streaming default." = "Valeur par défaut de la diffusion."; +"Strip metadata" = "Supprimer les métadonnées"; +"Top of AAC." = "Le meilleur de l'AAC."; +"Tune" = "Réglage"; +"Unknown error" = "Erreur inconnue"; +"Very high quality." = "Très haute qualité."; +"Video bitrate" = "Débit vidéo"; +"Video codec" = "Codec vidéo"; +"Visually lossless. RyukGram default." = "Visuellement sans perte. Valeur par défaut de RyukGram."; +"Widest compatibility, no B-frames." = "Compatibilité maximale, pas d'images B."; +"Worst quality." = "Pire qualité."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "Gestes d’appui long"; +"Inserts a button in the profile navigation header" = "Insère un bouton dans l’en-tête de navigation du profil"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "Ajoute un bouton d’action RyukGram à l’en-tête du profil avec copier, voir la photo, partager, enregistrer et infos de profil. Par défaut, un toucher ouvre le menu ; changez ce comportement dans Configurer le menu."; +"Configure menu" = "Configurer le menu"; +"Reorder, enable/disable, set default tap, show date" = "Réordonner, activer/désactiver, définir l’action par défaut, afficher la date"; +"Reorder, enable/disable, set default tap" = "Réordonner, activer/désactiver, définir l’action par défaut"; +"RyukGram profile actions" = "Actions de profil RyukGram"; +"Reorder sections" = "Réordonner les sections"; +"Drag the ≡ handle to reorder sections." = "Faites glisser la poignée ≡ pour réordonner les sections."; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "Faites glisser la poignée ≡ pour réordonner. Désactivez une ligne pour la masquer du menu. Marquez une section comme sous-menu pour replier ses actions derrière une entrée unique."; +"Show as submenu" = "Afficher comme sous-menu"; +"Collapse this section's actions behind a single entry" = "Replier les actions de cette section derrière une entrée unique"; +"Configure: %@" = "Configurer : %@"; +"What happens on a single tap. Long-press always opens the full menu." = "Ce qui se passe lors d’un simple toucher. L’appui long ouvre toujours le menu complet."; +"Reset to defaults" = "Réinitialiser aux valeurs par défaut"; +"This will restore the default sections, order, and toggles for this menu." = "Cela restaurera les sections, l’ordre et les réglages par défaut de ce menu."; +"Audio & visibility" = "Audio et visibilité"; +"DM disappearing media" = "Média éphémère des DM"; +"Bulk download" = "Téléchargement groupé"; +"Feed settings" = "Réglages du fil"; +"Reels settings" = "Réglages des reels"; +"Profile settings" = "Réglages du profil"; +"Stories settings" = "Réglages des stories"; +"Copy ID" = "Copier l’ID"; +"Copy Info" = "Copier les infos"; +"Copy all info" = "Copier toutes les infos"; +"Copy media URL" = "Copier l’URL du média"; +"Copy profile link" = "Copier le lien du profil"; +"Copy username" = "Copier le nom d’utilisateur"; +"Download" = "Télécharger"; +"Download to Gallery" = "Télécharger dans la galerie"; +"Download all to Gallery" = "Tout télécharger dans la galerie"; +"Exclude/include user" = "Exclure/inclure l’utilisateur"; +"Mute / unmute audio" = "Couper/rétablir le son"; +"Save picture to Gallery" = "Enregistrer la photo dans la galerie"; +"Share picture" = "Partager la photo"; +"View picture" = "Voir la photo"; +"Bio" = "Bio"; +"ID" = "ID"; +"Info" = "Infos"; +"Profile info" = "infos du profil"; +"Profile link" = "Lien du profil"; +"Picture not found" = "Photo introuvable"; +"Private profile" = "Profil privé"; +"Profile unavailable" = "Profil indisponible"; +"Public profile" = "Profil public"; +"Username" = "Nom d’utilisateur"; +"Followers: %@" = "Abonnés : %@"; +"Following: %@" = "Abonnements : %@"; +"Copied %@" = "Copié %@"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(inconnu)"; +"All files deleted" = "Tous les fichiers ont été supprimés"; +"Browsing" = "Navigation"; +"By source" = "Par source"; +"By type" = "Par type"; +"By user" = "Par utilisateur"; +"Clear filters" = "Effacer les filtres"; +"Comment" = "Commentaire"; +"Create" = "Créer"; +"Create & Move" = "Créer et déplacer"; +"Delete %@?" = "Supprimer %@ ?"; +"Delete all files" = "Supprimer tous les fichiers"; +"Delete all images" = "Supprimer toutes les images"; +"Delete all videos" = "Supprimer toutes les vidéos"; +"Delete by user" = "Supprimer par utilisateur"; +"Delete DM media" = "Supprimer les médias des DM"; +"Delete feed posts" = "Supprimer les publications du fil"; +"Delete files" = "Supprimer les fichiers"; +"Delete Folder" = "Supprimer le dossier"; +"Delete from Gallery?" = "Supprimer de la galerie ?"; +"Delete profile pictures" = "Supprimer les photos de profil"; +"Delete reels" = "Supprimer les reels"; +"Delete selected" = "Supprimer la sélection"; +"Delete Selected Files?" = "Supprimer les fichiers sélectionnés ?"; +"Delete stories" = "Supprimer les stories"; +"Delete thumbnails" = "Supprimer les miniatures"; +"Deleted from Gallery" = "Supprimé de la galerie"; +"Deleted selected files" = "Fichiers sélectionnés supprimés"; +"Deselect All" = "Tout désélectionner"; +"DM media deleted" = "Médias des DM supprimés"; +"DMs" = "DM"; +"Each user appears as a folder next to your real folders." = "Chaque utilisateur apparaît comme un dossier à côté de vos vrais dossiers."; +"Each user gets a labelled section in the grid/list." = "Chaque utilisateur a une section étiquetée dans la grille/liste."; +"Enable gallery" = "Activer la galerie"; +"Failed" = "Échec"; +"Failed to delete" = "Échec de la suppression"; +"Favorite" = "Favori"; +"Favorite selected" = "Mettre la sélection en favori"; +"Favorites only" = "Favoris seulement"; +"Feed posts deleted" = "Publications du fil supprimées"; +"Files deleted" = "Fichiers supprimés"; +"Flat list. No grouping." = "Liste à plat. Sans regroupement."; +"Folder name" = "Nom du dossier"; +"Folders" = "Dossiers"; +"From RyukGram Gallery" = "Audio depuis la galerie RyukGram"; +"Gallery" = "Galerie"; +"Gallery only" = "Galerie seulement"; +"Gallery save mode" = "Mode d’enregistrement de la galerie"; +"Gallery Settings" = "Réglages de la galerie"; +"GIFs" = "GIF"; +"Grid view" = "Vue en grille"; +"Group by user" = "Grouper par utilisateur"; +"Hold DM tab to open gallery" = "Maintenir l’onglet DM pour ouvrir la galerie"; +"Images" = "Images"; +"Images deleted" = "Images supprimées"; +"Images first" = "Images d’abord"; +"item" = "élément"; +"items" = "éléments"; +"Largest first" = "Les plus grands d’abord"; +"List view" = "Vue en liste"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "Maintenez le bouton de la boîte de réception dans la barre du bas pour ouvrir la galerie RyukGram"; +"Manage" = "Gérer"; +"More" = "Plus"; +"Move selected" = "Déplacer la sélection"; +"Move to Folder" = "Déplacer vers un dossier"; +"Name A-Z" = "Nom A-Z"; +"Name Z-A" = "Nom Z-A"; +"New Folder" = "Nouveau dossier"; +"New folder…" = "Nouveau dossier…"; +"Newest first" = "Plus récents d’abord"; +"No files in Gallery" = "Aucun fichier dans la galerie"; +"No files to delete" = "Aucun fichier à supprimer"; +"No matching files" = "Aucun fichier correspondant"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "Bibliothèque locale des médias téléchargés via RyukGram. Le mode d’enregistrement détermine où « Télécharger dans Photos » écrit réellement."; +"Open" = "Ouvrir"; +"Open Original Post" = "Ouvrir la publication d’origine"; +"Options" = "Options"; +"Other" = "Autre"; +"Photos + Gallery" = "Photos + Galerie"; +"Photos only" = "Photos seulement"; +"Profile pictures deleted" = "Photos de profil supprimées"; +"Reels deleted" = "Reels supprimés"; +"Rename" = "Renommer"; +"Rename Folder" = "Renommer le dossier"; +"Root" = "Racine"; +"Save media from the preview screen\nto see it here." = "Enregistrez des médias depuis l’écran d’aperçu\npour les voir ici."; +"Saved %lu items to Gallery" = "%lu éléments enregistrés dans la galerie"; +"Saved to Gallery" = "Enregistré dans la galerie"; +"Saving to Gallery" = "Enregistrement dans la galerie..."; +"Search users" = "Rechercher des utilisateurs"; +"Sections" = "Sections"; +"Select All" = "Tout sélectionner"; +"Share" = "Partager"; +"Share selected" = "Partager la sélection"; +"Show favorites at top" = "Afficher les favoris en haut"; +"Show gallery entries in download menus and unlock the gallery button" = "Afficher les entrées de galerie dans les menus de téléchargement et débloquer le bouton galerie"; +"Smallest first" = "Les plus petits d’abord"; +"Source" = "Source"; +"Source user" = "Utilisateur source"; +"Storage" = "Stockage"; +"Stories deleted" = "Stories supprimées"; +"Story" = "Story"; +"The original content may no longer exist." = "Le contenu d’origine n’existe peut-être plus."; +"This folder contains %ld file(s). They will be moved to the parent folder." = "Ce dossier contient %ld fichier(s). Ils seront déplacés vers le dossier parent."; +"This folder is empty." = "Ce dossier est vide."; +"This will permanently remove %ld file%@ from the gallery." = "Cela supprimera définitivement %ld fichier%@ de la galerie."; +"This will permanently remove %ld file(s)." = "Cela supprimera définitivement %ld fichier(s)."; +"This will permanently remove this file from the gallery." = "Cela supprimera définitivement ce fichier de la galerie."; +"Thumb" = "Miniature"; +"Thumbnails deleted" = "Miniatures supprimées"; +"to Gallery" = "vers la galerie"; +"Total files" = "Total des fichiers"; +"Total size" = "Taille totale"; +"Type" = "Type"; +"Unable to open original post" = "Impossible d’ouvrir la publication d’origine"; +"Unable to open profile" = "Impossible d’ouvrir le profil"; +"Unfavorite" = "Retirer des favoris"; +"Unknown user" = "Utilisateur inconnu"; +"User files deleted" = "Fichiers de l’utilisateur supprimés"; +"Videos" = "Vidéos"; +"Videos deleted" = "Vidéos supprimées"; +"Videos first" = "Vidéos d’abord"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "Activé, les favoris sont épinglés au-dessus des autres fichiers dans le tri et le contexte de dossier actuels."; +"Where 'Download to Photos' actually writes when gallery is on" = "Où « Télécharger dans Photos » écrit réellement quand la galerie est activée"; +"Yesterday" = "Hier"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "Bouton de raccourci d’accueil"; +"Show the extra button on the home top bar" = "Configurer le bouton supplémentaire de la barre supérieure d’accueil"; +"Auto" = "Auto"; +"Icon" = "Icône"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "Faites glisser la poignée ≡ pour réordonner. Désactivez une ligne pour masquer cette destination. Avec une seule action activée, le toucher la déclenche ; avec deux ou plus, le toucher ouvre un menu."; +"Changelog" = "Journal des modifications"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "Ajoute un bouton de raccourci supplémentaire à côté du bouton + de création dans la barre supérieure de l'accueil."; +"All buttons" = "Tous les boutons"; +"Choose icon, reorder actions, and enable menu items" = "Choisir l'icône, réorganiser les actions et activer les éléments de menu"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "Choisir l'icône affichée dans la barre supérieure de l'accueil. « Auto » utilise l'icône de l'action sélectionnée quand une seule action est activée."; +"Configure button" = "Configurer le bouton"; +"Global Action Icons" = "Icônes d'action globales"; +"Interface" = "Interface"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "Remplacer l'icône d'un bouton spécifique. Les boutons laissés sur « Par défaut » suivent l'icône partagée ci-dessus."; +"Per button" = "Par bouton"; +"Show home shortcut button" = "Afficher le bouton de raccourci d'accueil"; +"Tab bar" = "Barre d'onglets"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "Notifications universelles dans l’app. Choisissez le style, la position, le routage par action (pastille personnalisée/IG natif/désactivé)."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "Notifications"; +"Appearance" = "Apparence"; +"Routing" = "Routage"; +"Style" = "Style"; +"Position" = "Position"; +"Stack size" = "Taille de la pile"; +"Duration" = "Durée"; +"Default surface" = "Surface par défaut"; +"Enable notifications" = "Activer les notifications"; +"Haptic feedback" = "Retour haptique"; +"Preview pill" = "Aperçu de la pastille"; +"Preview download pill" = "Aperçu de la pastille de téléchargement"; +"Preview loading pill" = "Aperçu de la pastille de chargement"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "Interrupteur principal. Désactivé, aucune pastille RyukGram ni toast natif IG n’est émis."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "Notifications universelles dans l’app. Tout le retour RyukGram (téléchargements, copies, erreurs, messages de succès) passe par ici."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal : flou plat. Coloré : teinté selon le ton. Halo : auréole colorée. Island : capsule de type dynamic island."; +"Top slides down, bottom slides up." = "Le haut glisse vers le bas, le bas glisse vers le haut."; +"How many pills can show at once before queueing." = "Combien de pastilles peuvent s’afficher en même temps avant d’être mises en file."; +"Multiplies how long toasts stay on screen." = "Multiplie la durée d’affichage des toasts à l’écran."; +"Vibration on success/error pills." = "Vibration sur les pastilles de succès/erreur."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "Pour les actions de type toast, vous pouvez choisir entre notre pastille et le toast natif d’IG en bas. Les remplacements par action se trouvent ci-dessous."; +"What to use when an action doesn't have its own override." = "Ce qu’il faut utiliser quand une action n’a pas son propre remplacement."; +"Tap to cycle: info → success → warning → error" = "Toucher pour faire défiler : info → succès → avertissement → erreur"; +"Tap to cycle between success and failure" = "Toucher pour basculer entre succès et échec"; +"Progress UI — pill or off only." = "Interface de progression — pastille ou désactivée uniquement."; +"Minimal" = "Minimal"; +"Colorful" = "Coloré"; +"Glow" = "Halo"; +"Island" = "Island"; +"Top" = "Haut"; +"Bottom" = "Bas"; +"Custom pill" = "Pastille personnalisée"; +"IG native toast" = "Toast natif IG"; +"Short" = "Court"; +"Normal" = "Normal"; +"Long" = "Long"; +"Very long" = "Très long"; +"Downloads & saving" = "Téléchargements et enregistrement"; +"Copy to clipboard" = "Copier dans le presse-papiers"; +"Read receipts & seen" = "Accusés de lecture et vu"; +"Block, exclude & pin" = "Bloquer, exclure et épingler"; +"Stories & messages" = "Stories et messages"; +"Voice & audio" = "Voix et audio"; +"Errors" = "Erreurs"; +"Download progress" = "Progression du téléchargement"; +"Bulk download progress" = "Progression du téléchargement groupé"; +"Copied post / reel URL" = "URL de la publication/du reel copiée"; +"Copied comment text" = "Texte du commentaire copié"; +"Copied note text" = "Texte de note copié"; +"Copied profile info" = "Infos de profil copiées"; +"Copied audio URL" = "URL audio copiée"; +"Copied quality picker URL" = "URL du sélecteur de qualité copiée"; +"Copied unlocked password" = "Mot de passe déverrouillé copié"; +"Copied description text" = "Texte de description copié"; +"DM seen / read receipts" = "Accusés de vue/lecture des DM"; +"Story seen / read receipts" = "Accusés de vue/lecture des stories"; +"User blocked / unblocked" = "Utilisateur bloqué/débloqué"; +"Chat added / removed from exclude" = "Discussion ajoutée/retirée des exclusions"; +"Story user added / removed from exclude" = "Utilisateur de story ajouté/retiré des exclusions"; +"Share-sheet recipient pinned" = "Destinataire de la feuille de partage épinglé"; +"Unsent message detected" = "Message annulé détecté"; +"Live comments toggled" = "Commentaires de live basculés"; +"Custom GIF sent" = "GIF personnalisé envoyé"; +"Voice DM sent" = "DM vocal envoyé"; +"Audio extraction status" = "Statut de l’extraction audio"; +"Profile Analyzer complete" = "Analyseur de profil terminé"; +"Media extraction failed" = "Échec de l’extraction du média"; +"Permission denied" = "Autorisation refusée"; +"Validation error" = "Erreur de validation"; +"Network / API error" = "Erreur réseau/API"; +"Action error fallback" = "Repli sur erreur d’action"; +"Invalid clipboard link" = "Lien du presse-papiers invalide"; +"Experimental flag warning" = "Avertissement de flag expérimental"; +"Settings action confirmed" = "Action des réglages confirmée"; +"Cache clearing progress" = "Progression du vidage du cache"; +"Other / uncategorized" = "Autre/non catégorisé"; +"Comment copied" = "Commentaire copié"; +"FFmpeg log copied" = "Journal FFmpeg copié"; +"GIF inserted" = "GIF inséré"; +"Story marked as seen" = "Story marquée comme vue"; +"Saved" = "Enregistré"; +"Tap to retry" = "Toucher pour réessayer"; +"Looks great" = "Tout va bien"; +"Something broke" = "Quelque chose s’est cassé"; +"Just so you know" = "À titre d’information"; +"Success preview" = "Aperçu de succès"; +"Error preview" = "Aperçu d’erreur"; +"Warning preview" = "Aperçu d’avertissement"; +"Info preview" = "Aperçu d’info"; +"Preview download…" = "Aperçu du téléchargement…"; +"Colors" = "Couleurs"; +"+ Add new language" = "+ Ajouter une nouvelle langue"; +"Each chat can override this in the list" = "Chaque discussion peut remplacer ce réglage dans la liste"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "Activé, les requêtes de position d’Instagram renvoient votre fausse position sélectionnée. Le bouton carte ajoute un raccourci rapide dans la Carte des amis."; +"Tap a preset to make it active. Swipe left to delete." = "Touchez un préréglage pour l’activer. Balayez vers la gauche pour supprimer."; +"Override Instagram location reads." = "Remplace les lectures de position d’Instagram."; +"Show the quick button in Friends Map." = "Afficher le bouton rapide sur la Carte des amis."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "Choisissez comment les dates absolues sont écrites. « Par défaut » laisse intact le format d’IG."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "Les dates plus récentes que le seuil s’affichent en temps relatif. Les dates plus anciennes utilisent le format absolu. « Combiner avec la date » affiche les deux — « 5 janv. 2026 (2h) » ou « 2h – 5 janv. 2026 »."; +"Compact style" = "Style compact"; +"Example: “1h” instead of “1 hour ago”" = "Exemple : « 1h » au lieu de « il y a 1 heure »"; +"Example: “Jan 5, 2026 (2h)”" = "Exemple : « 5 janv. 2026 (2h) »"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "Les API audio d’iOS n’ont pas pu traiter ce fichier%@%@\n\nVous pouvez essayer de l’envoyer à Instagram tel quel, ou ouvrir un ticket d’assistance."; +"Combine with date" = "Combiner avec la date"; +"Absolute then relative" = "Absolu puis relatif"; +"Relative – absolute" = "Relatif – absolu"; +"Relative when young, absolute when older." = "Relatif si récent, absolu sinon."; +"Example: “2h – Jan 5, 2026”" = "Exemple : « 2h – 5 janv. 2026 »"; diff --git a/src/Localization/Resources/ko.lproj/Localizable.strings b/src/Localization/Resources/ko.lproj/Localizable.strings index e338fd3..1558b51 100644 --- a/src/Localization/Resources/ko.lproj/Localizable.strings +++ b/src/Localization/Resources/ko.lproj/Localizable.strings @@ -1,61 +1,60 @@ /* - * RyukGram — Localizable.strings (English source of truth) - * ------------------------------------------------------------------------- + * RyukGram — Localizable.strings (English source of truth) + * ------------------------------------------------------------------------- * - * Every user-facing string in RyukGram goes through the macro - * SCILocalized(@"English text here") - * in the Objective-C source. The argument is BOTH the lookup key and the - * English fallback, so if a translation is missing the user still sees - * clean English — nothing ever breaks. + * Every user-facing string in RyukGram goes through the macro + * SCILocalized(@"English text here") + * in the Objective-C source. The argument is BOTH the lookup key and the + * English fallback, so if a translation is missing the user still sees + * clean English — nothing ever breaks. * * - * HOW TO ADD A NEW LANGUAGE - * ------------------------------------------------------------------------- + * HOW TO ADD A NEW LANGUAGE + * ------------------------------------------------------------------------- * - * 1. Copy this file into a new folder named after the language code: - * src/Localization/Resources/.lproj/Localizable.strings - * e.g. ar.lproj (Arabic) - * es.lproj (Spanish) - * fr.lproj (French) - * 2. Translate the RIGHT-hand side of every `"key" = "value";` line. - * Do NOT touch the left-hand side — that is the lookup key and must - * stay identical to the English version, otherwise the app will never - * find your translation. - * 3. Keep every format specifier (%@, %lu, %d, %lld, %1$@, …) exactly - * as-is, in the same order. If you need to reorder them, switch to - * positional specifiers (%1$@ %2$lu). - * 4. Keep embedded quotes escaped with a backslash: \" — and newlines - * as \n. - * 5. Open a pull request at https://github.com/faroukbmiled/RyukGram/pulls - * so we can ship the language in the next release. + * 1. Copy this file into a new folder named after the language code: + * src/Localization/Resources/.lproj/Localizable.strings + * e.g. ar.lproj (Arabic) + * es.lproj (Spanish) + * fr.lproj (French) + * 2. Translate the RIGHT-hand side of every `"key" = "value";` line. + * Do NOT touch the left-hand side — that is the lookup key and must + * stay identical to the English version, otherwise the app will never + * find your translation. + * 3. Keep every format specifier (%@, %lu, %d, %lld, %1$@, …) exactly + * as-is, in the same order. If you need to reorder them, switch to + * positional specifiers (%1$@ %2$lu). + * 4. Keep embedded quotes escaped with a backslash: \" — and newlines + * as \n. + * 5. Open a pull request at https://github.com/faroukbmiled/RyukGram/pulls + * so we can ship the language in the next release. * * - * HOW TO ADD A NEW STRING IN CODE - * ------------------------------------------------------------------------- + * HOW TO ADD A NEW STRING IN CODE + * ------------------------------------------------------------------------- * - * Just wrap the English text with SCILocalized(...) in the .m / .x / .xm - * file — the helper resolves to the English text automatically when no - * translation exists. Then add the same English text as BOTH the key and - * the value inside the matching section below, e.g. + * Just wrap the English text with SCILocalized(...) in the .m / .x / .xm + * file — the helper resolves to the English text automatically when no + * translation exists. Then add the same English text as BOTH the key and + * the value inside the matching section below, e.g. * - * "Download all items" = "Download all items"; + * "Download all items" = "Download all items"; * - * Translators copy that line into their own .lproj and translate only the - * right-hand side. + * Translators copy that line into their own .lproj and translate only the + * right-hand side. * * - * FILE FORMAT NOTES - * ------------------------------------------------------------------------- + * FILE FORMAT NOTES + * ------------------------------------------------------------------------- * - * - UTF-8, LF line endings. - * - Slash-star block comments and double-slash line comments both work. - * - DO NOT nest one slash-star block comment inside another — the - * parser will close the outer block at the first inner close marker - * and every lookup in the file will silently fail. - * - Keys and values are both quoted; every line ends with a semicolon. + * - UTF-8, LF line endings. + * - Slash-star block comments and double-slash line comments both work. + * - DO NOT nest one slash-star block comment inside another — the + * parser will close the outer block at the first inner close marker + * and every lookup in the file will silently fail. + * - Keys and values are both quoted; every line ends with a semicolon. */ - ////////////////////////////////////////////////////////////////////////////// // CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // // Shown on the root Settings screen: title, search bar, the globe language // @@ -68,11 +67,12 @@ "settings.firstrun.title" = "RyukGram 설정 정보"; "settings.language.english_only" = "RyukGram은 현재 영어만 기본 제공합니다. 다른 언어는 번역을 기다리고 있습니다 — README의 짧은 가이드를 따라 한국어 번역에 참여해 보세요."; "settings.language.help_translate" = "번역 돕기"; -"settings.language.ok" = "확인"; "settings.language.system" = "시스템 기본값"; "settings.language.title" = "언어"; +"settings.language.restart.message" = "설정이 업데이트되었습니다. 앱의 다른 곳에 있는 메뉴, 버튼, 토스트에도 새 언어가 반영되도록 Instagram을 재시작하세요."; +"settings.language.restart.title" = "전체에 적용하려면 재시작하세요"; +"settings.language.available" = "사용 가능"; "settings.results.many" = "%lu개의 결과"; -"settings.results.none" = "결과 없음"; "settings.results.one" = "%lu개의 결과"; "settings.search.placeholder" = "설정 검색"; "settings.title" = "RyukGram 설정"; @@ -82,20 +82,33 @@ // Settings → General tab // ////////////////////////////////////////////////////////////////////////////// +"Action button icon" = "동작 버튼 아이콘"; "Adds a copy option to the comment long-press menu" = "댓글을 길게 누를 때 복사 옵션을 추가합니다"; -"Adds a download option for GIF comments" = "GIF 댓글 다운로드 옵션을 추가합니다"; +"Adds a download button next to share/save on the reels audio page" = "릴스 오디오 페이지의 공유/저장 옆에 다운로드 버튼을 추가합니다"; +"Adds download, copy and expand options to GIF and image comments" = "GIF 및 이미지 댓글에 다운로드, 복사, 확대 옵션을 추가합니다"; +"Allow video in photo sticker" = "사진 스티커에서 동영상 허용"; +"Alternate icons are not supported" = "대체 아이콘이 지원되지 않습니다"; "Anonymous live viewing" = "익명 라이브 시청"; +"App Icon" = "앱 아이콘"; +"Audio page" = "오디오 페이지"; +"Auto-reveals sensitive media" = "민감한 콘텐츠를 자동으로 표시합니다"; "Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "시청자 수 하트비트를 차단하여 방송자가 당신을 보지 못하게 합니다 — 당신도 시청자 수를 볼 수 없습니다"; "Browser" = "브라우저"; +"Change the app icon from the bundled icons" = "기본 제공 아이콘으로 앱 아이콘 변경"; +"Choose Icon" = "아이콘 선택"; +"Choose which surfaces hide ads" = "광고를 숨길 화면을 선택합니다"; "Comments" = "댓글"; +"Commerce carousels in comments and shoppable CTAs on reels" = "댓글의 쇼핑 캐러셀과 릴스의 쇼핑 CTA"; "Copy comment text" = "댓글 텍스트 복사"; "Copy description" = "설명 복사"; "Copy description text fields by long-pressing on them" = "설명 텍스트 필드를 길게 눌러 복사합니다"; +"Custom music sticker color" = "음악 스티커 사용자 지정 색상"; "Date format" = "날짜 형식"; "Disable app haptics" = "앱 햅틱 비활성화"; "Disables haptics/vibrations within the app" = "앱 내의 햅틱/진동을 비활성화합니다"; "Do not save recent searches" = "최근 검색어 저장 안 함"; -"Download GIF comments" = "GIF 댓글 다운로드"; +"Download GIF & image comments" = "GIF 및 이미지 댓글 다운로드"; +"Download image" = "이미지 다운로드"; "Embed domain" = "임베드 도메인"; "Embed domain: %@" = "임베드 도메인: %@"; "Enable liquid glass buttons" = "리퀴드 글래스 버튼 활성화"; @@ -103,15 +116,23 @@ "Enable teen app icons" = "틴(Teen) 앱 아이콘 활성화"; "Enables experimental liquid glass buttons" = "실험적인 리퀴드 글래스 버튼을 활성화합니다"; "Enables liquid glass tab bar, floating navigation, and other UI elements" = "리퀴드 글래스 탭 바, 플로팅 내비게이션 및 기타 UI 요소를 활성화합니다"; +"End" = "끝"; "Experimental features" = "실험실 기능"; +"Explore & search" = "탐색 및 검색"; +"Failed to change icon" = "아이콘 변경 실패"; +"Fixed" = "고정"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "고정은 축소를 방지합니다. 숨기기는 아래로 스크롤할 때 사라지게 합니다"; "Focus/distractions" = "집중/방해 요소"; "General" = "일반"; +"Gradient color" = "그라데이션 색상"; "Hide ads" = "광고 숨기기"; "Hide explore posts grid" = "탐색 탭 게시물 그리드 숨기기"; "Hide friends map" = "친구 지도 숨기기"; "Hide Meta AI" = "Meta AI 숨기기"; "Hide metrics" = "수치 숨기기"; "Hide notes tray" = "노트 트레이 숨기기"; +"Hide on scroll" = "스크롤 시 숨기기"; +"Hide TestFlight popup" = "TestFlight 팝업 숨기기"; "Hide trending searches" = "인기 검색어 숨기기"; "Hide UI on capture" = "캡처 시 UI 숨기기"; "Hides all suggested users for you to follow, outside your feed" = "피드 외부에서 팔로우할 추천 사용자를 모두 숨깁니다"; @@ -123,10 +144,14 @@ "Hides the suggested broadcast channels in direct messages" = "다이렉트 메시지에서 추천 공지 채널을 숨깁니다"; "Hides the trending searches under the explore search bar" = "탐색 검색창 아래의 인기 검색어를 숨깁니다"; "Hold down on the Instagram logo to change the app icon" = "Instagram 로고를 길게 눌러 앱 아이콘을 변경합니다"; +"Lets the photo sticker picker show videos too, not just photos" = "사진 스티커 선택기에서 사진뿐 아니라 동영상도 표시하도록 합니다"; +"Liquid glass tab bar" = "리퀴드 글래스 탭 바"; "Live" = "라이브"; "Long press on the eyedropper tool in stories to customize the text color more precisely" = "스토리의 스포이트 도구를 길게 눌러 텍스트 색상을 더 정밀하게 사용자 지정합니다"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "음악 또는 가사 스티커의 색상 휠을 길게 눌러 원하는 단색 또는 그라데이션 색상을 선택하세요"; "Long-press the heart button in a live to hide or show the comments" = "라이브 중 하트 버튼을 길게 눌러 댓글을 숨기거나 표시"; "Long-press the search tab to open a copied Instagram link" = "검색 탭을 길게 눌러 복사한 Instagram 링크 열기"; +"Master switch. When off, all per-surface toggles below are ignored." = "마스터 스위치. 끄면 아래의 화면별 토글이 모두 무시됩니다."; "No suggested chats" = "추천 채팅 없음"; "No suggested users" = "추천 사용자 없음"; "Notes" = "노트"; @@ -135,25 +160,49 @@ "Open links in external browser" = "외부 브라우저에서 링크 열기"; "Opens links in Safari instead of Instagram's in-app browser" = "Instagram 인앱 브라우저 대신 Safari에서 링크를 엽니다"; "Privacy" = "개인정보"; -"Redacts RyukGram buttons from screenshots, screen recordings, and mirroring" = "스크린샷, 화면 녹화, 미러링에서 RyukGram 버튼을 숨깁니다"; -"Removes all ads from the Instagram app" = "Instagram 앱에서 모든 광고를 제거합니다"; +"Removes ads across enabled surfaces" = "활성화된 화면 전반에서 광고를 제거합니다"; "Removes igsh, utm_source, and other tracking parameters from shared links" = "공유 링크에서 igsh, utm_source 및 기타 추적 매개변수를 제거합니다"; "Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "URL에서 Instagram 추적 래퍼(l.instagram.com) 및 UTM/fbclid 매개변수를 제거합니다"; "Replace domain in shared links" = "공유 링크의 도메인 교체"; "Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "IG의 상대적 타임스탬프(\"3일 전\")를 사용자 지정 형식으로 바꿉니다. 선택기 내에서 적용할 영역을 전환하세요."; "Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "복사/공유된 링크를 재작성하여 Discord, Telegram 등에서 미리보기가 잘 되는 도메인을 사용합니다."; "Search bars will no longer save your recent searches" = "검색창에 최근 검색어가 더 이상 저장되지 않습니다"; +"Selected" = "선택됨"; "Sharing" = "공유"; +"Shopping" = "쇼핑"; +"Skip sensitive content covers" = "민감한 콘텐츠 가림 건너뛰기"; +"Solid color" = "단색"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "메인, 맥락, 동영상, 연결 피드의 스폰서 게시물"; +"Sponsored posts on the explore grid" = "탐색 그리드의 스폰서 게시물"; +"Sponsored reels in the sundial feed" = "선다이얼 피드의 스폰서 릴스"; +"Start" = "시작"; +"Story ads and sponsored entries in the story tray" = "스토리 트레이의 스토리 광고 및 스폰서 항목"; "Strip tracking from links" = "링크에서 추적 제거"; "Strip tracking params" = "추적 매개변수 제거"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "\"It's time to update Instagram Beta\" 알림을 차단"; +"Tap to apply" = "탭하여 적용"; +"The selected icon will be saved and shown here the next time you open this page." = "선택한 아이콘은 저장되며 다음에 이 페이지를 열 때 여기에 표시됩니다."; "Toggle live comments" = "라이브 댓글 전환"; "Use detailed color picker" = "상세 색상 선택기 사용"; +"Used across feed, stories, reels, and DMs." = "피드, 스토리, 릴스, DM 전체에서 사용됩니다"; ////////////////////////////////////////////////////////////////////////////// // DATE FORMAT // // Settings → Date format tab // ////////////////////////////////////////////////////////////////////////////// +"%ld day ago" = "%ld일 전"; +"%ld days ago" = "%ld일 전"; +"%ld hour ago" = "%ld시간 전"; +"%ld hours ago" = "%ld시간 전"; +"%ld minute ago" = "%ld분 전"; +"%ld minutes ago" = "%ld분 전"; +"%ld week ago" = "%ld주 전"; +"%ld weeks ago" = "%ld주 전"; +"%ldd" = "%ld일"; +"%ldh" = "%ld시간"; +"%ldm" = "%ld분"; +"%ldw" = "%ld주"; "Alternate" = "대체"; "Always ask" = "항상 묻기"; "Balanced" = "균형"; @@ -171,12 +220,16 @@ "Explore" = "탐색"; "Fast" = "빠름"; "Feed" = "피드"; +"Feed posts" = "피드 게시물"; "High" = "높음"; "Inbox" = "받은 편지함"; +"just now" = "방금 전"; "Low" = "낮음"; "Max" = "최대"; "Medium" = "보통"; "Mute/Unmute" = "음소거/해제"; +"Notes, comments, stories" = "노트, 댓글, 스토리"; +"now" = "방금"; "Open menu" = "메뉴 열기"; "Pause/Play" = "일시정지/재생"; "Profile" = "프로필"; @@ -196,6 +249,8 @@ "Action button" = "작업 버튼"; "Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "스토리 트레이를 길게 누를 때의 메뉴에 '프로필 사진 보기' 및 '커버 보기'를 추가합니다"; "Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "각 피드 게시물 아래에 다운로드/공유/복사/확장/리포스트 항목이 있는 RyukGram 작업 버튼을 추가합니다. 탭하면 기본적으로 메뉴가 열립니다. 아래에서 탭 동작을 변경하세요."; +"Choose Instagram's default feed or force the Following feed" = "Instagram의 기본 피드를 사용하거나 팔로잉 피드를 강제합니다"; +"Main feed" = "메인 피드"; "Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "피드 새로고침 시점과 방법을 제어합니다. 백그라운드 새로고침은 약 10분 후 앱으로 돌아올 때 발생합니다. 홈 버튼 새로고침은 이미 홈 탭에 있을 때 홈 탭을 탭하면 발생합니다."; "Default tap action" = "기본 탭 작업"; "Disable background refresh" = "백그라운드 새로고침 비활성화"; @@ -214,6 +269,11 @@ "Hides the story tray at the top" = "상단의 스토리 트레이를 숨깁니다"; "Inserts a button row below like/comment/share on each post" = "각 게시물의 좋아요/댓글/공유 아래에 버튼 행을 삽입합니다"; "Long press on media to expand in full-screen viewer" = "미디어를 길게 눌러 전체 화면 뷰어로 확대합니다"; +"Start media muted" = "음소거로 미디어 시작"; +"Expanded videos open with sound off" = "확대된 동영상이 소리 꺼진 상태로 열립니다"; +"Enhanced media resolution" = "향상된 미디어 해상도"; +"Media saving" = "미디어 저장"; +"Spoof device profile so IG serves higher-quality images" = "기기 프로파일을 위조하여 IG가 고품질 이미지를 제공하도록 합니다"; "Media" = "미디어"; "Media zoom" = "미디어 확대"; "No suggested for you" = "회원님을 위한 추천 없음"; @@ -228,10 +288,23 @@ "Removes suggested posts" = "추천 게시물을 제거합니다"; "Scroll to top without refreshing when tapping Home" = "홈을 탭할 때 새로고침하지 않고 맨 위로 스크롤합니다"; "Show action button" = "작업 버튼 표시"; +"Show date" = "날짜 표시"; "Stories tray" = "스토리 트레이"; "Tapping Home does nothing when already on feed" = "이미 피드에 있을 때 홈을 탭해도 아무 작업도 수행하지 않습니다"; "Tray long-press actions" = "트레이 길게 누르기 작업"; -"What happens on a single tap. Long-press always opens the full menu" = "한 번 탭할 때의 동작입니다. 길게 누르면 항상 전체 메뉴가 열립니다."; +"Composer doesn't accept GIFs" = "댓글 입력기가 GIF를 지원하지 않습니다"; +"Copy GIF link" = "GIF 링크 복사"; +"Copy image link" = "이미지 링크 복사"; +"Custom GIF in comments" = "댓글에서 사용자 지정 GIF"; +"Failed to build GIF model" = "GIF 모델 생성 실패"; +"GIF link copied" = "GIF 링크가 복사되었습니다"; +"Image" = "이미지"; +"Image link copied" = "이미지 링크가 복사되었습니다"; +"Invalid Giphy URL" = "유효하지 않은 Giphy URL"; +"Long-press the GIF button to paste any Giphy URL" = "GIF 버튼을 길게 눌러 Giphy URL을 붙여넣으세요"; +"Paste Giphy Link" = "Giphy 링크 붙여넣기"; +"Paste a giphy.com URL or media ID" = "giphy.com URL 또는 미디어 ID 붙여넣기"; +"Send" = "보내기"; ////////////////////////////////////////////////////////////////////////////// // REELS // @@ -243,27 +316,40 @@ "Auto-scroll reels" = "릴스 자동 스크롤"; "Change what happens when you tap on a reel" = "릴스를 탭할 때 발생하는 동작을 변경합니다"; "Confirm reel refresh" = "릴스 새로고침 확인"; +"Custom speed" = "사용자 지정 속도"; "Disable auto-unmuting reels" = "릴스 자동 음소거 해제 비활성화"; "Disable scrolling reels" = "릴스 스크롤 비활성화"; "Disable tab button refresh" = "탭 버튼 새로고침 비활성화"; "Doom scrolling limit" = "둠스크롤링 제한"; +"e.g. 1.75" = "예: 1.75"; +"Enter a value between 0.5 and 2.0" = "0.5에서 2.0 사이의 값을 입력하세요"; "Forces the progress bar to appear on every reel" = "모든 릴스에 재생 진행 바를 강제로 표시합니다"; +"Hide \"Made with Edits\" badge" = "\"Made with Edits\" 배지 숨기기"; +"Hide friends avatars" = "친구 아바타 숨기기"; "Hide reels header" = "릴스 헤더 숨기기"; +"Hide social context overlay" = "소셜 컨텍스트 오버레이 숨기기"; +"Hides the avatar bubbles next to the Friends tab in reels" = "릴스의 친구 탭 옆에 표시되는 아바타 버블을 숨깁니다"; +"Hides the Edits app promo pill on reels" = "릴스에서 Edits 앱 홍보 알약 배너를 숨깁니다"; +"Hides the floating overlay showing who reposted or commented on reels" = "릴스에서 누가 리포스트하거나 댓글을 달았는지 표시하는 플로팅 오버레이를 숨깁니다"; "Hides the repost button on the reels sidebar" = "릴스 사이드바에서 리포스트 버튼을 숨깁니다"; "Hides the top navigation bar when watching reels" = "릴스를 시청할 때 상단 내비게이션 바를 숨깁니다"; "Hiding" = "숨김"; +"Hold the 3-dot on any reel to open speed picker" = "릴스에서 점 3개를 길게 눌러 속도 선택기를 엽니다"; "IG default" = "IG 기본값"; "IG default: native behavior. RyukGram: re-advances after swiping back." = "IG 기본값: 기본 동작. RyukGram: 뒤로 스와이프한 후 다시 진행합니다."; "Limits" = "제한"; "Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "한 번에 스크롤할 수 있는 릴스의 양을 제한하고 새로고침을 방지합니다"; "Only loads %@ %@" = "%@ %@만 로드합니다"; "Places a button above the like/comment/share column on each reel" = "각 릴스의 좋아요/댓글/공유 열 위에 버튼을 배치합니다"; +"Playback speed" = "재생 속도"; "Prevent doom scrolling" = "둠스크롤링 방지"; "Prevents reels from being scrolled to the next video" = "릴스가 다음 동영상으로 스크롤되는 것을 방지합니다"; "Prevents reels from unmuting when the volume/silent button is pressed" = "볼륨/무음 버튼을 누를 때 릴스의 음소거가 해제되는 것을 방지합니다"; "RyukGram" = "RyukGram"; "Shows an alert when you trigger a reels refresh" = "릴스 새로고침을 트리거할 때 경고를 표시합니다"; "Shows buttons to reveal and auto-fill the password on locked reels" = "잠긴 릴스에서 비밀번호를 표시하고 자동 입력하는 버튼을 표시합니다"; +"Swipe a reel left to open the author's profile" = "릴스를 왼쪽으로 스와이프하면 작성자의 프로필이 열립니다"; +"Swipe left to profile" = "왼쪽으로 스와이프하여 프로필 열기"; "Tap Controls" = "탭 제어"; "Tap to mute on photo reels" = "사진 릴에서 탭으로 음소거"; "Tapping the Reels tab while on reels does nothing" = "릴스 탭에 있을 때 릴스 탭을 탭해도 아무 작업도 수행하지 않습니다"; @@ -275,15 +361,19 @@ // Settings → Profile tab // ////////////////////////////////////////////////////////////////////////////// -"Adds a button next to the burger menu on profiles to copy username, name or bio" = "프로필의 햄버거 메뉴 옆에 사용자 이름, 이름 또는 소개를 복사하는 버튼을 추가합니다"; +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "팔로워/팔로잉 목록을 필터링하고 정렬하는 버튼을 추가합니다. 나가면 초기화됩니다."; "Adds a view option to the highlight long-press menu to open the cover in full-screen" = "하이라이트를 길게 누를 때의 메뉴에 커버를 전체 화면으로 여는 보기 옵션을 추가합니다"; "Copy note on long press" = "길게 눌러 노트 복사"; +"Extra stats shown on each post and reel card in profile grids." = "프로필 그리드의 각 게시물과 릴 카드에 표시되는 추가 통계입니다."; "Fake follower count" = "가짜 팔로워 수"; "Fake following count" = "가짜 팔로잉 수"; "Fake post count" = "가짜 게시물 수"; "Fake profile stats" = "가짜 프로필 통계"; "Fake verified badge" = "가짜 인증 배지"; +"Fetch missing counts" = "누락된 수치 가져오기"; +"Filter & sort lists" = "목록 필터 및 정렬"; "Follow indicator" = "팔로우 표시기"; +"Follower & following lists" = "팔로워 및 팔로잉 목록"; "Follower count" = "팔로워 수"; "Following count" = "팔로잉 수"; "Long press a profile picture to open it in full-screen with zoom, share, and save" = "프로필 사진을 길게 눌러 확대, 공유 및 저장이 가능한 전체 화면으로 엽니다"; @@ -291,12 +381,21 @@ "Long press to download directly (ignored when zoom is on)" = "길게 눌러 바로 다운로드 (확대가 켜져 있으면 무시됨)"; "Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "프로필 요소의 길게 누르기 제스처 — 기능별 작업 버튼과 별도로 유지됩니다."; "Only affects your own profile header. Other users see the real numbers." = "본인 프로필 헤더에만 적용됩니다. 다른 사용자에게는 실제 숫자가 표시됩니다."; +"Override view count" = "조회수 덮어쓰기"; "Post count" = "게시물 수"; -"Profile copy button" = "프로필 복사 버튼"; +"Profile card details" = "프로필 카드 정보"; +"Profile stats" = "프로필 통계"; +"Render counts in shortened format." = "숫자를 축약된 형식으로 표시합니다."; "Save profile picture" = "프로필 사진 저장"; +"Short numbers" = "축약된 숫자"; "Show a checkmark next to your name on your own profile" = "본인 프로필 이름 옆에 체크 표시를 보여줍니다"; +"Show full follower count" = "전체 팔로워 수 표시"; +"Show full post count" = "전체 게시물 수 표시"; +"Show like count" = "좋아요 수 표시"; +"Show upload date" = "업로드 날짜 표시"; "Shows whether the profile user follows you" = "프로필 사용자가 회원님을 팔로우하는지 표시합니다"; "Tap to set" = "탭하여 설정"; +"Uses Instagram's API. May hit rate limits." = "Instagram API를 사용합니다. 속도 제한에 걸릴 수 있습니다."; "View highlight cover" = "하이라이트 커버 보기"; "Zoom profile photo" = "프로필 사진 확대"; @@ -305,23 +404,62 @@ // Settings → Saving tab // ////////////////////////////////////////////////////////////////////////////// +"Active, queued, and finished downloads" = "진행 중·대기 중·완료된 다운로드"; +"Auto-retry attempts" = "자동 재시도 횟수"; +"Auto-retry failed downloads" = "실패한 다운로드 자동 재시도"; "Confirm before download" = "다운로드 전 확인"; "Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "더 이상 사용되지 않습니다. RyukGram 작업 버튼(피드/릴스/스토리에서 기능별로 구성됨)이 미디어를 다운로드하는 새로운 방법입니다. 미디어 위에서 여러 손가락으로 길게 누르는 기존 방식을 선호하는 경우에만 이 마스터 토글을 활성화하세요."; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "앱을 나가도 다운로드, 인코딩, 프로필 스캔을 멈추지 않습니다"; +"Download queue" = "다운로드 대기열"; "Downloads" = "다운로드"; "Downloads with %@ %@" = "%@ %@(으)로 다운로드합니다"; "Enable long-press gesture" = "길게 누르기 제스처 활성화"; "Finger count for long-press" = "길게 누르기 손가락 개수"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "동시에 실행할 다운로드 수 — 나머지는 대기열에서 기다리다 슬롯이 비면 시작됩니다. 실패한 다운로드는 네트워크 오류 시 자동으로 재시도됩니다. 관리자를 열어 다운로드를 확인, 취소 또는 재시도하세요."; +"Keep running in background" = "백그라운드에서 계속 실행"; "Legacy long-press gesture" = "기존 길게 누르기 제스처 (레거시)"; "Long-press hold time" = "길게 누르기 유지 시간"; "Master toggle for the deprecated gesture workflow (off by default)" = "더 이상 사용되지 않는 제스처 워크플로를 위한 마스터 토글 (기본적으로 꺼져 있음)"; +"Max simultaneous downloads" = "최대 동시 다운로드"; +"Open download manager" = "다운로드 관리자 열기"; "Press finger(s) for %@ %@" = "%@ %@ 동안 손가락을 누르세요"; -"Route saves into a dedicated album in Photos instead of the camera roll root" = "기본 카메라 롤 대신 사진 앱의 전용 앨범으로 저장 경로를 지정합니다"; +"Retry automatically when a download drops on a network error" = "네트워크 오류로 다운로드가 끊기면 자동으로 재시도"; +"Route saves into a custom album in Photos instead of the camera roll root" = "기본 카메라 롤 대신 사진 앱의 전용 앨범으로 저장 경로를 지정합니다"; +"Run up to %@ %@ at once" = "한 번에 최대 %@ %@ 실행"; "Save action" = "저장 동작"; -"Save to RyukGram album" = "RyukGram 앨범에 저장"; -"Saving" = "저장 중"; +"Save to dedicated album" = "전용 앨범에 저장"; "Show a confirmation dialog before starting a download" = "다운로드를 시작하기 전에 확인 대화 상자를 표시합니다"; +"Try %@ more %@ before giving up" = "포기하기 전에 %@번 더 %@ 시도"; "What happens after the gesture downloads" = "제스처 다운로드 후 동작"; -"When \"Save to RyukGram album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a dedicated \"RyukGram\" album in your Photos library." = "\"RyukGram 앨범에 저장\"이 켜져 있으면, 다운로드 및 공유 시트의 \"사진 앱에 저장\" 선택 항목이 사진 라이브러리의 전용 \"RyukGram\" 앨범으로 라우팅됩니다."; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "\"전용 앨범에 저장\"이 켜져 있으면 다운로드와 공유 시트의 \"사진에 저장\" 선택이 사진 보관함의 지정된 앨범으로 저장됩니다. \"앨범 이름\"을 눌러 변경하세요."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu개 실패"; +"%lu of %lu done" = "%lu/%lu 완료"; +"%lu saved, %lu failed" = "%lu개 저장, %lu개 실패"; +"Active" = "활성"; +"Auto-retry" = "자동 재시도"; +"Clear completed" = "완료된 항목 지우기"; +"Completed" = "완료"; +"Download settings" = "다운로드 설정"; +"Downloading %lu items" = "항목 %lu개 다운로드 중"; +"Downloading…" = "다운로드 중…"; +"Encoding %d%%" = "인코딩 %d%%"; +"Encoding…" = "인코딩 중…"; +"Extra downloads wait in line and start as slots free up." = "추가 다운로드는 대기열에서 기다리다 슬롯이 비면 시작됩니다."; +"No downloads yet" = "아직 다운로드가 없습니다"; +"Preview" = "미리보기"; +"Queued" = "대기 중"; +"Redownload" = "다시 다운로드"; +"Retry" = "재시도"; +"Retrying…" = "재시도 중…"; +"Waiting for connection…" = "연결 대기 중…"; +"Waiting…" = "대기 중…"; ////////////////////////////////////////////////////////////////////////////// // STORIES // @@ -354,19 +492,24 @@ "Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "읽음 차단이 켜져 있어도 답장이나 이모티콘 반응을 보낼 때 스토리를 읽음으로 표시합니다"; "Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "서버에서는 여전히 읽음 표시를 차단하면서 로컬에서는 스토리를 읽음으로 표시(회색 링)합니다"; "Master toggle. When off, the list is ignored" = "마스터 토글. 꺼져 있으면 목록이 무시됩니다"; -"Other" = "기타"; "Playback" = "재생"; -"Quick list button in stories" = "스토리의 빠른 목록 버튼"; "Search, sort, swipe to remove" = "검색, 정렬, 스와이프하여 제거"; "Seen receipts" = "읽음 표시"; "Sending a reply or emoji reaction automatically advances to the next story" = "답장이나 이모티콘 반응을 보내면 자동으로 다음 스토리로 넘어갑니다"; -"Show mentioned users in eye button and story menu" = "눈 버튼 및 스토리 메뉴에 멘션된 사용자 표시"; -"Shows an eye button on stories to add/remove users from the list. Off = use the 3-dot menu or long-press only" = "스토리에 눈 모양 버튼을 표시하여 목록에서 사용자를 추가/제거합니다. 끄기 = 점 3개 메뉴를 사용하거나 길게 누르기만 허용"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "작업 버튼 메뉴와 스토리 점 3개 메뉴에 '멘션 보기' 항목을 추가합니다"; +"Mentions overlay button" = "멘션 오버레이 버튼"; +"Mentions count badge" = "멘션 개수 배지"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "스토리 오버레이의 작업/눈 버튼 옆에 버튼을 추가합니다. 현재 스토리에 멘션이나 공유된 게시물/릴스가 있을 때만 표시됩니다"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "오버레이 버튼에 멘션된 고유 계정 수를 빨간 배지로 표시합니다"; +"Hide stories midcards" = "스토리 미드카드 숨기기"; +"Removes the Trending and Music promo cards from the stories tray" = "스토리 트레이의 인기 / 음악 홍보 카드를 제거합니다"; "Stickers" = "스티커"; -"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force Quiz brings the legacy Quiz sticker back into the story composer tray." = "상호작용하기 전에 투표/퀴즈/슬라이더 결과를 미리 봅니다 — 평소처럼 탭해서 투표할 수 있습니다. '퀴즈 강제 활성화'는 제거된 레거시 퀴즈 스티커를 스토리 편집기 트레이에 복원합니다."; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "상호작용하기 전에 투표/퀴즈/슬라이더 결과를 미리 봅니다 — 평소처럼 탭해서 투표할 수 있습니다. '레거시 강제'는 퀴즈와 리빌 스티커를 스토리 편집기에 복원합니다."; "Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "릴스에서 상호작용하기 전에 투표/퀴즈/슬라이더 결과를 미리 봅니다 — 평소처럼 탭해서 투표할 수 있습니다."; -"Force Quiz sticker in tray" = "트레이에 퀴즈 스티커 강제 표시"; -"Adds Quiz back to the story sticker picker" = "스토리 스티커 선택기에 퀴즈 복원"; +"Force legacy stickers in tray" = "트레이에 레거시 스티커 강제 표시"; +"Adds Quiz and Reveal stickers back to the picker" = "퀴즈와 리빌 스티커를 선택기에 복원"; +"Bypass Reveal sticker" = "리빌 스티커 우회"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "리빌 스티커가 있는 스토리에서 DM 전송 단계를 건너뜁니다"; "Show quiz answer" = "퀴즈 정답 표시"; "Circle the correct option on quiz stickers, or the leading option on polls" = "퀴즈 스티커의 정답 또는 투표의 최다 득표 옵션을 강조"; "Show poll vote counts" = "투표 수 표시"; @@ -403,20 +546,21 @@ "Activity" = "활동"; "Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "음성 메시지를 길게 누를 때의 메뉴에 '다운로드' 옵션을 추가하여 M4A 오디오로 저장합니다"; +"Allows typing and sending DMs longer than Instagram's limit" = "Instagram 제한보다 긴 DM을 입력하고 보낼 수 있도록 허용"; "Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "DM의 더보기(+) 메뉴에 '파일 보내기' 옵션을 추가합니다. 지원되는 파일 형식은 Instagram에 의해 제한될 수 있습니다."; "Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "DM의 더보기(+) 메뉴에 '오디오 파일' 옵션을 추가하여 오디오 파일을 음성 메시지로 보냅니다"; "Adds copy text, download GIF/audio to the note long-press menu" = "노트를 길게 누를 때의 메뉴에 텍스트 복사, GIF/오디오 다운로드를 추가합니다"; "Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "모두 차단: 모든 채팅 차단됨 — 목록에 있는 채팅은 예외입니다.\n선택 차단: 목록에 있는 채팅만 차단됨 — 그 외에는 정상입니다.\n두 목록은 독립적으로 저장됩니다. 받은 편지함에서 채팅을 길게 눌러 추가하거나 제거하세요."; "Block keep-deleted for excluded chats" = "제외된 채팅에 대해 삭제된 메시지 보관 차단"; "Block keep-deleted for unlisted chats" = "목록에 없는 채팅에 대해 삭제된 메시지 보관 차단"; +"Bypass DM character limit" = "DM 글자 수 제한 우회"; "Chat list" = "채팅 목록"; "Confirmation dialog before clearing preserved messages" = "보존된 메시지를 지우기 전 확인 대화 상자"; "Copies note text directly on long press without opening the menu" = "메뉴를 열지 않고 길게 누르면 노트 텍스트를 바로 복사합니다"; "Copy text on hold" = "길게 눌러 텍스트 복사"; -"Custom emojis and background/text colors" = "사용자 지정 이모티콘 및 배경/텍스트 색상"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "사용자 지정 배경 및 텍스트 색상을 선택하는 페인트 브러시 버튼과 길게 누르기 단축키를 추가합니다"; "Custom note themes" = "사용자 지정 노트 테마"; "Disable vanish mode swipe" = "배니시 모드 스와이프 비활성화"; -"Disable screenshot detection" = "스크린샷 감지 비활성화"; "Disable typing status" = "입력 중 상태 비활성화"; "Disable view-once limitations" = "한 번 보기 제한 비활성화"; "Download voice messages" = "음성 메시지 다운로드"; @@ -426,20 +570,26 @@ "Files" = "파일"; "Full last active date" = "전체 마지막 활동 날짜"; "Hide reels blend button" = "릴스 블렌드 버튼 숨기기"; +"Hide send to group chat" = "그룹 채팅으로 보내기 숨기기"; +"Pin recipients on long-press" = "길게 눌러 수신자 고정"; +"Long-press in the share sheet to pin a chat/user to the top" = "공유 시트에서 길게 눌러 채팅/사용자를 상단에 고정"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "수신자를 길게 눌러 고정하거나 고정 해제하세요. 고정된 수신자는 상단에 표시됩니다."; +"Recipient pinned" = "수신자 고정됨"; +"Recipient unpinned" = "수신자 고정 해제됨"; +"Couldn't resolve recipient id" = "수신자 ID를 확인할 수 없음"; "Hide video call button" = "영상 통화 버튼 숨기기"; "Hide voice call button" = "음성 통화 버튼 숨기기"; "Hides the blend button in DMs" = "DM에서 블렌드 버튼을 숨깁니다"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "여러 명에게 공유할 때 그룹 채팅 만들기/보내기 항목을 제거합니다"; "Hides typing indicator from others" = "다른 사람에게 회원님의 입력 중 상태를 숨깁니다"; "Indicate unsent messages" = "전송 취소된 메시지 표시"; "Keep deleted messages" = "삭제된 메시지 보관"; "Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "한 번 보기 메시지를 일반 시각적 메시지처럼 작동하게 합니다(반복 재생/일시 정지 가능)"; "Note actions" = "노트 작업"; -"Preserve messages that others unsend" = "다른 사람이 전송 취소한 메시지 보존"; "Preserves messages that others unsend" = "다른 사람이 전송 취소한 메시지를 보존합니다"; "Prevents accidental swipe-up activation of vanish mode" = "실수로 위로 스와이프하여 배니시 모드가 활성화되는 것을 방지합니다"; "Quick list button in chats" = "채팅의 빠른 목록 버튼"; "Removes the audio call button from DM thread header" = "DM 스레드 헤더에서 음성 통화 버튼을 제거합니다"; -"Removes the screenshot-prevention features for visual messages in DMs" = "DM에서 시각적 메시지에 대한 스크린샷 방지 기능을 제거합니다"; "Removes the video call button from DM thread header" = "DM 스레드 헤더에서 영상 통화 버튼을 제거합니다"; "Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "만료 없이 시각적 메시지를 다시 재생합니다. 눈 버튼 메뉴에서 토글하거나 눈 버튼이 비활성화된 경우 독립형 버튼으로 표시됩니다."; "Search, sort, swipe to remove or toggle keep-deleted" = "검색, 정렬, 스와이프하여 제거 또는 삭제된 메시지 보관 토글"; @@ -456,13 +606,127 @@ "Which chats get read-receipt blocking" = "읽음 표시 차단을 적용할 채팅"; "⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ DM 탭에서 당겨서 새로고침하면 보존된 모든 메시지가 지워집니다. 확인 대화 상자를 표시하려면 아래 경고를 활성화하세요."; +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu 삭제됨"; +"%lu messages from %lu users" = "사용자 %lu명에게서 받은 메시지 %lu개"; +"%lu selected" = "%lu개 선택됨"; +"Absolute date + time" = "절대 날짜+시간"; +"Adjust the filters or clear the search to see more." = "필터를 조정하거나 검색을 지워 더 많은 결과를 확인하세요."; +"All time" = "전체 기간"; +"Browse, filter and search recorded messages" = "기록된 메시지를 탐색, 필터링, 검색"; +"Captures unsent messages with their text or media" = "전송 취소된 메시지를 텍스트와 미디어와 함께 저장합니다"; +"Clear deleted-message log?" = "삭제된 메시지 로그를 지울까요?"; +"Clear from this user" = "이 사용자 기록 지우기"; +"Clear log" = "로그 지우기"; +"Clear log for this account" = "이 계정의 로그 지우기"; +"Clear log for this user?" = "이 사용자의 로그를 지울까요?"; +"Clear media files" = "미디어 파일 지우기"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "미디어를 지워도 기록(텍스트, 발신자, 시각)은 유지됩니다. 로그를 지우면 이 계정의 모든 데이터가 제거됩니다."; +"Close" = "닫기"; +"Content unavailable" = "콘텐츠를 사용할 수 없음"; +"Copied" = "복사됨"; +"Copy URL" = "URL 복사"; +"Date range" = "날짜 범위"; +"Deleted messages" = "삭제된 메시지"; +"Deleted messages log" = "삭제된 메시지 로그"; +"Deleted: %@\n" = "삭제됨: %@\n"; +"Edit %lu" = "수정 %lu"; +"Edit history" = "수정 기록"; +"Edited" = "수정됨"; +"Empty" = "비어 있음"; +"Enable deleted messages log" = "삭제된 메시지 로그 사용"; +"Enable Settings → Messages → Deleted messages log to start recording." = "설정 → 메시지 → 삭제된 메시지 로그를 활성화하여 기록을 시작하세요."; +"GIF" = "GIF"; +"Hashtag" = "해시태그"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "종류: %@\n"; +"Last 30 days" = "최근 30일"; +"Last 7 days" = "최근 7일"; +"Link" = "링크"; +"Live location" = "실시간 위치"; +"Location" = "위치"; +"Logging is off" = "기록이 꺼져 있음"; +"Media on disk" = "디스크의 미디어"; +"Most messages" = "메시지 많은 순"; +"Most recent" = "최신순"; +"No deleted messages yet" = "아직 삭제된 메시지가 없습니다"; +"No matches" = "결과 없음"; +"Nothing to save" = "저장할 내용 없음"; +"Oldest first" = "오래된 순"; +"Open log" = "로그 열기"; +"Open profile" = "프로필 열기"; +"Original" = "원본"; +"Play" = "재생"; +"Post" = "게시물"; +"Records every message someone unsends, grouped by sender" = "누군가 전송 취소한 모든 메시지를 발신자별로 기록"; +"Reel" = "릴스"; +"Relative (1m / 3h / 3d ago)" = "상대 (1분 / 3시간 / 3일 전)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "현재 계정의 모든 보존된 삭제 메시지와 캡처된 미디어를 삭제합니다. 되돌릴 수 없습니다."; +"Removes every preserved deleted message and its captured media for this account." = "이 계정의 모든 보존된 삭제 메시지와 캡처된 미디어를 삭제합니다."; +"Removes every preserved deleted message from this sender." = "이 발신자의 보존된 모든 삭제 메시지를 제거합니다."; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "저장된 모든 사진, 동영상, 음성 클립을 삭제합니다. 기록은 텍스트와 발신자 정보를 유지합니다."; +"Search messages" = "메시지 검색"; +"Search senders or messages" = "발신자 또는 메시지 검색"; +"Select" = "선택"; +"Show edit history" = "수정 기록 보기"; +"Source URL recorded but media not stored.\n" = "원본 URL은 기록되었지만 미디어는 저장되지 않았습니다.\n"; +"Sticker" = "스티커"; +"Tap to open in Instagram" = "Instagram에서 열려면 탭"; +"Tap to open in Maps" = "지도에서 열려면 탭"; +"Tap to play" = "재생하려면 탭"; +"Tap to play · %@" = "재생하려면 탭 · %@"; +"Text" = "텍스트"; +"This account" = "이 계정"; +"Unknown" = "알 수 없음"; +"Video" = "동영상"; +"View" = "보기"; +"Voice" = "음성"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "활성화하면 삭제된 메시지와 미디어가 이 기기에 저장됩니다. 끄고 로그를 지우면 기록이 지워집니다."; +"When someone unsends a message, it will appear here grouped by sender." = "누군가 메시지를 전송 취소하면 발신자별로 묶여 여기에 표시됩니다."; + ////////////////////////////////////////////////////////////////////////////// // MESSAGES // // Settings → Messages tab // ////////////////////////////////////////////////////////////////////////////// +"Custom chat background" = "맞춤 채팅 배경"; +"Incoming calls stay silent — no ring, no screen, no notification" = "걸려오는 전화를 무음으로 유지 — 벨소리, 화면, 알림 없음"; "Messages" = "메시지"; +"Silence incoming calls" = "걸려오는 전화 무음"; "Threads" = "스레드"; +"Use your own images as chat backgrounds" = "직접 만든 이미지를 채팅 배경으로 사용"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "인스턴트 카메라에 갤러리 버튼을 추가하여 앨범의 사진을 보낼 수 있습니다"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "Instants 뷰어 헤더에 RyukGram 액션 버튼을 추가하며 확대, 저장, 공유, 일괄 저장 항목을 제공합니다"; +"All loaded instants" = "로드된 모든 인스턴트"; +"Bypasses the Instants screenshot block" = "Instants 스크린샷 차단 우회"; +"Could not locate the instant on screen" = "화면에서 인스턴트를 찾지 못했습니다"; +"Current instant" = "현재 인스턴트"; +"In-app Gallery" = "내장 갤러리"; +"Instant" = "인스턴트"; +"Instants" = "인스턴트"; +"Instants action button" = "Instants 액션 버튼"; +"No instants currently loaded" = "로드된 인스턴트 없음"; +"No media available to save" = "저장할 미디어가 없습니다"; +"Photos library" = "사진 보관함"; +"Pick from" = "선택 위치"; +"Queued %lu instants" = "인스턴트 %lu개 대기 중"; +"Save all to Gallery" = "모두 갤러리에 저장"; +"Save all to Photos" = "모두 사진에 저장"; +"Save to Gallery" = "갤러리에 저장"; +"Send from gallery" = "갤러리에서 보내기"; +"Tweaks for the QuickSnap / Instants camera surface." = "QuickSnap / 인스턴트 카메라 화면 조정"; +"Use" = "사용"; ////////////////////////////////////////////////////////////////////////////// // NAVIGATION // @@ -499,46 +763,236 @@ // Settings → Confirm actions tab // ////////////////////////////////////////////////////////////////////////////// +"All" = "모두"; +"Calls" = "통화"; +"Comments & posts" = "댓글 및 게시물"; "Confirm actions" = "작업 확인"; -"Confirm video call" = "영상 통화 확인"; -"Confirm voice call" = "음성 통화 확인"; "Confirm changing theme" = "테마 변경 확인"; "Confirm follow" = "팔로우 확인"; "Confirm follow requests" = "팔로우 요청 확인"; +"Confirm Instants capture" = "Instants 촬영 확인"; +"Confirm Instants emoji reaction" = "Instants 이모티콘 반응 확인"; "Confirm like: Posts" = "게시물 좋아요 확인"; "Confirm like: Reels" = "릴스 좋아요 확인"; +"Confirm note emoji reaction" = "노트 이모티콘 반응 확인"; +"Confirm note like" = "노트 좋아요 확인"; "Confirm posting comment" = "댓글 게시 확인"; "Confirm repost" = "리포스트 확인"; -"Confirm vanish mode" = "배니시 모드 확인"; -"Confirm sticker interaction (stories)" = "스티커 상호작용 확인 (스토리)"; +"Confirm send to group chat" = "그룹 채팅으로 보내기 확인"; "Confirm sticker interaction (highlights)" = "스티커 상호작용 확인 (하이라이트)"; +"Confirm sticker interaction (stories)" = "스티커 상호작용 확인 (스토리)"; "Confirm story emoji reaction" = "스토리 이모티콘 반응 확인"; "Confirm story like" = "스토리 좋아요 확인"; +"Confirm switching Instant" = "Instant 전환 확인"; "Confirm unfollow" = "언팔로우 확인"; +"Confirm vanish mode" = "배니시 모드 확인"; +"Confirm video call" = "영상 통화 확인"; +"Confirm voice call" = "음성 통화 확인"; "Confirm voice messages" = "음성 메시지 확인"; +"Follows" = "팔로잉"; +"Likes" = "좋아요"; +"Messaging" = "메시지"; +"Reaction stickers only" = "반응 스티커만"; +"Reactions" = "반응"; +"Send to group chat?" = "그룹 채팅으로 보내시겠습니까?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "공유 메뉴에서 그룹 채팅 만들기/보내기 전에 확인 알림을 표시합니다"; +"Shows an alert before sending an emoji reaction on a note" = "노트에 이모티콘 반응을 보내기 전에 경고를 표시합니다"; "Shows an alert before sending an emoji reaction on a story" = "스토리에 이모티콘 반응을 보내기 전에 경고를 표시합니다"; +"Shows an alert before sending an emoji reaction on an Instant" = "Instant에 이모티콘 반응을 보내기 전에 알림 표시"; +"Shows an alert before taking a photo with the Instants camera" = "Instants 카메라로 사진을 찍기 전에 알림 표시"; +"Shows an alert before tapping to switch to the next/previous Instant" = "다음/이전 Instant로 전환하기 위해 탭하기 전에 알림 표시"; "Shows an alert to confirm before sending a voice message" = "음성 메시지를 보내기 전에 확인할 경고를 표시합니다"; "Shows an alert to confirm before toggling vanish mode" = "배니시 모드를 전환하기 전에 확인 경고를 표시합니다"; "Shows an alert when you accept/decline a follow request" = "팔로우 요청을 수락/거절할 때 경고를 표시합니다"; "Shows an alert when you change a chat theme to confirm" = "채팅 테마를 변경할 때 확인할 경고를 표시합니다"; -"Shows an alert when you tap a sticker on someone's story" = "누군가의 스토리에서 스티커를 누를 때 경고를 표시합니다"; -"Shows an alert when you tap a sticker inside a highlight" = "하이라이트 안의 스티커를 누를 때 경고를 표시합니다"; -"Shows an alert when you click the video call button to confirm before calling" = "영상 통화 버튼을 클릭할 때 통화 전에 확인할 경고를 표시합니다"; -"Shows an alert when you click the voice call button to confirm before calling" = "음성 통화 버튼을 클릭할 때 통화 전에 확인할 경고를 표시합니다"; "Shows an alert when you click the follow button to confirm the follow" = "팔로우 버튼을 클릭할 때 팔로우를 확인할 경고를 표시합니다"; +"Shows an alert when you click the like button on notes to confirm the like" = "노트에서 좋아요 버튼을 클릭할 때 좋아요를 확인할 경고를 표시합니다"; "Shows an alert when you click the like button on posts to confirm the like" = "게시물에서 좋아요 버튼을 클릭할 때 좋아요를 확인할 경고를 표시합니다"; "Shows an alert when you click the like button on reels to confirm the like" = "릴스에서 좋아요 버튼을 클릭할 때 좋아요를 확인할 경고를 표시합니다"; "Shows an alert when you click the like button on stories to confirm the like" = "스토리에서 좋아요 버튼을 클릭할 때 좋아요를 확인할 경고를 표시합니다"; "Shows an alert when you click the post comment button to confirm" = "댓글 게시 버튼을 클릭할 때 확인할 경고를 표시합니다"; -"Shows an alert when you click the repost button to confirm before resposting" = "리포스트 버튼을 클릭할 때 리포스트하기 전에 확인할 경고를 표시합니다"; +"Shows an alert when you click the repost button to confirm before reposting" = "리포스트 버튼을 클릭할 때 리포스트하기 전에 확인할 경고를 표시합니다"; "Shows an alert when you click the unfollow button to confirm" = "언팔로우 버튼을 클릭할 때 확인할 경고를 표시합니다"; +"Shows an alert when you click the video call button to confirm before calling" = "영상 통화 버튼을 클릭할 때 통화 전에 확인할 경고를 표시합니다"; +"Shows an alert when you click the voice call button to confirm before calling" = "음성 통화 버튼을 클릭할 때 통화 전에 확인할 경고를 표시합니다"; +"Shows an alert when you tap a sticker inside a highlight" = "하이라이트 안의 스티커를 누를 때 경고를 표시합니다"; +"Shows an alert when you tap a sticker on someone's story" = "누군가의 스토리에서 스티커를 누를 때 경고를 표시합니다"; +"Stories & highlights" = "스토리 및 하이라이트"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld시간"; +"%ld locked" = "%ld 잠김"; +"%ld min" = "%ld분"; +"%ldh idle" = "대기 %ld시간"; +"%ldm idle" = "대기 %ld분"; +"%lds" = "%ld초"; +"%lds idle" = "대기 %ld초"; +"%lu hidden" = "%lu개 숨김"; +"4 digits" = "4자리"; +"6 digits" = "6자리"; +"Add hidden chat" = "숨긴 채팅 추가"; +"Add locked chat" = "잠긴 채팅 추가"; +"Allow Instants screenshots" = "Instants 스크린샷 허용"; +"Always ask when opening again" = "다시 열 때 항상 확인"; +"Ask again after Instagram returns" = "Instagram으로 돌아온 후 다시 확인"; +"Auto-relock after idle" = "대기 후 자동 재잠금"; +"Balanced default" = "균형 잡힌 기본값"; +"Best for sensitive sections" = "민감한 항목에 적합"; +"Biometric" = "생체 인증"; +"Change passcode" = "암호 변경"; +"Chat hidden" = "채팅이 숨겨졌습니다"; +"Chat locked" = "채팅이 잠겼습니다"; +"Chat unlocked" = "채팅이 잠금 해제되었습니다"; +"Choose a code you'll remember." = "기억할 수 있는 코드를 선택하세요."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "이 항목이 미사용 상태에서 잠금 해제로 유지되는 시간을 선택합니다. '안 함'은 Instagram을 닫거나 백그라운드로 보낼 때까지 잠금 해제로 유지합니다."; +"Confirm current passcode" = "현재 암호 확인"; +"Confirm passcode" = "암호 확인"; +"Could not save passcode" = "암호를 저장할 수 없습니다"; +"Create passcode" = "암호 생성"; +"Derivation failed" = "파생 실패"; +"DM inbox" = "DM 받은 편지함"; +"Don't share unlock" = "잠금 해제 공유 안 함"; +"Each target has its own enable, timeout, and re-lock configuration." = "각 대상은 자체 활성화, 시간 제한, 재잠금 설정을 가집니다."; +"Enable lock" = "잠금 활성화"; +"Enter passcode" = "암호 입력"; +"Enter value" = "값 입력"; +"Enter your current passcode to change it" = "변경하려면 현재 암호를 입력하세요"; +"Enter your current passcode to reset it" = "재설정하려면 현재 암호를 입력하세요"; +"Enter your passcode to continue" = "계속하려면 암호를 입력하세요"; +"every use" = "매번"; +"Every use" = "매번"; +"Hidden chats" = "숨긴 채팅"; +"Hide chat" = "채팅 숨기기"; +"Hide message preview" = "메시지 미리보기 숨기기"; +"Hide this chat?" = "이 채팅을 숨기시겠습니까?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "스크린샷/녹화에서 RyukGram UI를 숨기고 Instagram의 기능별 스크린샷 경고를 우회합니다."; +"Idle timeout" = "대기 시간 초과"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "이 대상을 별도로 잠금 유지"; +"Less frequent prompts" = "확인 빈도 줄이기"; +"Lock" = "잠금"; +"Lock chat" = "채팅 잠금"; +"Lock every time" = "매번 잠금"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "'매번 잠금'은 미사용 시간 제한보다 우선합니다. '잠금 해제 공유 안 함'은 이 대상을 별도로 유지합니다."; +"Lock targets" = "잠금 대상"; +"Lock the tweak" = "트윅 잠금"; +"Lock this chat" = "이 채팅 잠금"; +"Lock this chat?" = "이 채팅을 잠그시겠습니까?"; +"Lock with passcode" = "암호로 잠금"; +"Locked chats" = "잠긴 채팅"; +"Long-press a chat to lock it individually" = "채팅을 길게 눌러 개별적으로 잠그세요"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "DM 스레드를 길게 누르고 → 채팅 숨기기를 눌러 여기에 추가하세요. 숨긴 채팅은 이 목록에서 제거할 때까지 받은 편지함에서 걸러집니다."; +"Long-press a DM to add" = "추가하려면 DM을 길게 누르세요"; +"Longest idle window" = "가장 긴 미사용 시간"; +"Manage locked chats" = "잠긴 채팅 관리"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "마스터 스위치. 끄면 대상별 구성을 잃지 않고 모든 잠금 대상을 비활성화합니다."; +"Never" = "안 함"; +"No passcode set" = "설정된 암호 없음"; +"Nothing here yet." = "아직 아무것도 없습니다."; +"Off" = "끄기"; +"On" = "켜기"; +"On — %@" = "켜짐 — %@"; +"On — %@ + %ld more" = "켜짐 — %@ 외 %ld개"; +"On — no targets enabled" = "켜짐 — 활성화된 대상 없음"; +"Passcode" = "암호"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "암호 + 생체 인증. 트윅 설정 팝업, 갤러리, 삭제된 메시지 로그, 개별 채팅 및 앱 전체를 잠급니다."; +"Passcode changed" = "암호가 변경되었습니다"; +"Passcode reset" = "암호가 재설정되었습니다"; +"Passcode set" = "암호가 설정되었습니다"; +"Passcode too short" = "암호가 너무 짧습니다"; +"Passcodes did not match — try again" = "암호가 일치하지 않습니다 — 다시 시도하세요"; +"Per-chat locks" = "채팅별 잠금"; +"Prompt before Instagram opens" = "Instagram 열기 전에 요청"; +"Prompt before Profile Analyzer opens" = "프로필 분석기 열기 전에 요청"; +"Prompt before the deleted-messages log opens" = "삭제된 메시지 로그 열기 전에 요청"; +"Prompt before the gallery opens" = "갤러리 열기 전에 요청"; +"Prompt before tweak settings open" = "트윅 설정 열기 전에 요청"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "메시지로 바로 실행하는 경우를 포함해 DM 받은 편지함에 진입할 때마다 요청"; +"Re-enter the same passcode" = "같은 암호를 다시 입력"; +"Re-lock on background" = "백그라운드에서 재잠금"; +"re-lock on bg" = "백그라운드 재잠금"; +"Recently hidden" = "최근 숨김"; +"Recently locked" = "최근 잠금"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "스크린샷, 화면 녹화 및 미러링에서 RyukGram 버튼을 가립니다"; +"Remove screenshot alert" = "스크린샷 경고 제거"; +"Replace inbox preview with • • •" = "받은 메시지함 미리보기를 • • •(으)로 대체"; +"Require passcode for this section" = "이 항목에 암호 요구"; +"Requires your current passcode" = "현재 암호가 필요합니다"; +"Reset passcode" = "암호 재설정"; +"Reset passcode?" = "암호를 재설정하시겠습니까?"; +"Screenshots & capture" = "스크린샷 및 캡처"; +"Security & Privacy" = "보안 및 개인정보"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "설정, 갤러리, 삭제된 메시지 로그, 개별 채팅, DM 받은 편지함, 프로필 분석기 또는 Instagram 자체를 잠그려면 암호를 설정하세요."; +"Set passcode" = "암호 설정"; +"Short idle window" = "짧은 미사용 시간"; +"Stay unlocked until app close or background" = "앱을 닫거나 백그라운드로 보낼 때까지 잠금 해제 유지"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "스토리, DM, 사라지는 미디어 전반에서 IG의 \"X님이 스크린샷을 찍었습니다\" 알림 차단"; +"Tap Unlock" = "잠금 해제 탭"; +"Tap Unlock or enter your passcode" = "잠금 해제를 탭하거나 암호를 입력하세요"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "암호를 지우고 모든 잠금 대상을 비활성화하며 모든 채팅을 잠금 해제합니다. 갤러리와 삭제된 메시지 데이터는 영향을 받지 않습니다."; +"Thread %@" = "스레드 %@"; +"Tweak settings" = "트윅 설정"; +"Unlock" = "잠금 해제"; +"Unlock %@" = "%@ 잠금 해제"; +"Unlock chat" = "채팅 잠금 해제"; +"Unlock Instagram" = "Instagram 잠금 해제"; +"Unlock this chat" = "이 채팅 잠금 해제"; +"Use %@" = "%@ 사용"; +"Username (looks up the DM thread) or raw thread ID" = "사용자 이름(DM 스레드 조회) 또는 스레드 ID 원본"; +"Username or thread ID" = "사용자 이름 또는 스레드 ID"; +"Wrong passcode" = "잘못된 암호"; +"Wrong passcode • %ld attempts" = "잘못된 암호 • %ld회 시도"; ////////////////////////////////////////////////////////////////////////////// // BACKUP & RESTORE // // Settings → Backup & Restore tab // ////////////////////////////////////////////////////////////////////////////// +"%lu account(s)" = "계정 %lu개"; +"%lu account(s) · %lu image(s) · %@" = "계정 %lu개 · 이미지 %lu개 · %@"; +"%lu file(s) · %@" = "파일 %lu개 · %@"; +"%lu preferences" = "설정 %lu개"; +"(none)" = "(없음)"; +"Apply backup?" = "백업을 적용할까요?"; +"Applying backup…" = "백업 적용 중…"; +"archive error" = "아카이브 오류"; +"Archived snapshots" = "보관된 스냅샷"; "Backup & Restore" = "백업 및 복원"; +"Backup exported" = "백업 내보냄"; +"Backup failed" = "백업 실패"; +"Backup has no importable sections." = "백업에 가져올 수 있는 항목이 없습니다."; +"Chat & story filters" = "채팅·스토리 필터"; +"Chat backgrounds" = "채팅 배경"; +"Clear selected data" = "선택한 데이터 지우기"; +"Corrupt entry path." = "손상된 항목 경로."; +"Could not decompress archive." = "아카이브의 압축을 풀 수 없습니다."; +"Could not open archive." = "아카이브를 열 수 없습니다."; +"Could not open staging file." = "스테이징 파일을 열 수 없습니다."; +"Could not read the backup archive." = "백업 아카이브를 읽을 수 없습니다."; +"Could not write archive." = "아카이브를 쓸 수 없습니다."; +"Could not write backup file." = "백업 파일을 쓸 수 없습니다."; +"Could not write extracted file." = "추출한 파일을 쓸 수 없습니다."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "선택한 항목의 기존 데이터가 대체됩니다. 모두 적용되려면 재시작이 필요할 수 있습니다."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "RyukGram 데이터를 내보내거나 가져옵니다 — 설정, 계정별 필터, 숨김·잠금 채팅, 프로필 분석기, 갤러리, 채팅 배경, 삭제된 메시지. 각 페이지에서 원하는 조합을 선택하세요. 설정은 일반 JSON 파일로 유지되며, 미디어가 포함된 번들은 압축된 .ryukbak로 내보내집니다."; +"Hidden & locked chats" = "숨김 및 잠금 채팅"; +"Import" = "가져오기"; +"Inspect the full manifest" = "전체 매니페스트 검사"; +"Load a .json or .ryukbak backup" = ".json 또는 .ryukbak 백업 불러오기"; +"Not a RyukGram backup archive." = "RyukGram 백업 아카이브가 아닙니다."; +"PK %@" = "PK %@"; +"Preparing backup…" = "백업 준비 중…"; +"Reading backup…" = "백업 읽는 중…"; +"Save settings or a full backup" = "설정 또는 전체 백업 저장"; +"Tick what to apply. Rows not in this backup are hidden." = "적용할 항목을 선택하세요. 이 백업에 없는 행은 숨겨집니다."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "포함할 항목을 선택하세요. 행을 눌러 검사할 수 있습니다. 갤러리, 채팅 배경 또는 삭제된 메시지를 추가하면 압축된 .ryukbak 번들이 생성됩니다."; +"Truncated entry data." = "잘린 항목 데이터."; +"Truncated entry length." = "잘린 항목 길이."; +"Truncated entry path." = "잘린 항목 경로."; +"Unsafe entry path." = "안전하지 않은 항목 경로."; ////////////////////////////////////////////////////////////////////////////// // ADVANCED // @@ -554,27 +1008,32 @@ "Clear" = "지우기"; "Clear cache" = "캐시 지우기"; "Clear cache (%@)" = "캐시 지우기 (%@)"; -"Clear cache?" = "캐시를 지우시겠습니까?"; "Clearing cache…" = "캐시 지우는 중…"; "Clearing still scans on demand." = "지우기는 필요할 때 여전히 스캔합니다."; "Daily" = "매일"; "Disable safe mode" = "안전 모드 비활성화"; "Enable tweak settings quick-access" = "트윅 설정 빠른 접근 활성화"; -"Free %@ of Instagram cache. A restart is recommended." = "Instagram 캐시에서 %@을(를) 확보합니다. 재시작을 권장합니다."; -"Freed %@. Restart to apply." = "%@ 확보됨. 적용하려면 재시작하세요."; +"Fix duplicate notifications" = "중복 알림 수정"; +"Free %@ of Instagram cache." = "Instagram 캐시에서 %@을(를) 확보합니다."; +"Freed %@" = "%@ 확보됨"; "Hold on the home tab to open RyukGram settings" = "홈 탭을 길게 눌러 RyukGram 설정을 엽니다"; -"Instagram" = "Instagram"; "Monthly" = "매월"; "Nothing to clear" = "지울 것이 없습니다"; "Off skips the size scan when Advanced opens." = "꺼짐은 고급 설정을 열 때 크기 스캔을 건너뜁니다."; "Pause playback when opening settings" = "설정을 열 때 재생 일시 정지"; +"Always show what's new" = "새로운 기능 항상 표시"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "새 기능의 파란 점을 확인 후 지우지 않고 항상 표시"; +"Preserve messages database" = "메시지 데이터베이스 보존"; "Pauses any playing video/audio when settings opens" = "설정이 열릴 때 재생 중인 비디오/오디오를 일시 정지합니다"; "Prevents Instagram from resetting settings after crashes (at your own risk)" = "충돌 후 Instagram이 설정을 재설정하는 것을 방지합니다 (본인 책임)"; +"Prevents two banners for the same message when IG is in the foreground" = "IG가 포그라운드에 있을 때 동일한 메시지에 대한 두 개의 배너를 방지합니다"; "Remove Instagram's cached images, videos, and temporary files." = "Instagram의 캐시된 이미지, 동영상, 임시 파일을 제거합니다."; "Reset onboarding state" = "온보딩 상태 재설정"; "Run a silent cache clear on launch when the interval has elapsed." = "간격이 지나면 실행 시 조용히 캐시를 지웁니다."; "Show cache size" = "캐시 크기 표시"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "지울 때 메시지 데이터베이스를 건너뜁니다 — DM, 임시 저장 메시지, 저장된 메시지를 유지합니다."; "Show tweak settings on app launch" = "앱 실행 시 트윅 설정 표시"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "알림 확장 프로그램이 알림을 전달하는 동안 IG가 앱 내에서 추가하는 두 번째 알림을 억제합니다."; "Weekly" = "매주"; ////////////////////////////////////////////////////////////////////////////// @@ -629,7 +1088,7 @@ "Delete an imported override and fall back to the shipped strings" = "가져온 재정의를 삭제하고 기본 문자열로 되돌리기"; "Deleted %@ override. Restart to apply." = "%@ 재정의를 삭제했습니다. 적용하려면 재시작하세요."; "Enable FLEX gesture" = "FLEX 제스처 활성화"; -"Export English strings" = "영어 문자열 내보내기"; +"Export strings" = "문자열 내보내기"; "Hold 5 fingers on the screen to open FLEX" = "화면에 손가락 5개를 대고 있으면 FLEX가 열립니다"; "I have %@%@" = "나는 %@%@를 가지고 있습니다"; "Import a .strings file for a language" = "언어에 대한 .strings 파일 가져오기"; @@ -645,8 +1104,9 @@ "Opens FLEX when the app is focused" = "앱이 활성화될 때 FLEX를 엽니다"; "Opens FLEX when the app launches" = "앱을 실행할 때 FLEX를 엽니다"; "Pick a language to delete the imported file" = "가져온 파일을 삭제할 언어 선택"; +"Pick a language to export" = "내보낼 언어 선택"; "Reset localization" = "로컬라이제이션 재설정"; -"Share the base English .strings file for translating" = "번역을 위해 기본 영어 .strings 파일 공유"; +"Pick a language and share its .strings file" = "언어를 선택해 해당 .strings 파일 공유"; "Static Cell" = "정적 셀"; "Stepper cell" = "스테퍼 셀"; "Switch Cell" = "스위치 셀"; @@ -663,34 +1123,39 @@ ////////////////////////////////////////////////////////////////////////////// "%@ settings" = "%@ 설정"; +"%lu items" = "항목 %lu개"; "Cancelled" = "취소됨"; +"Carousel" = "캐러셀"; +"Carousel · %lu items" = "캐러셀 · 항목 %lu개"; "Copied %lu URLs" = "%lu개의 URL 복사됨"; "Copied caption" = "캡션 복사됨"; "Copied download URL" = "다운로드 URL 복사됨"; +"Copied quality info" = "품질 정보 복사됨"; +"Copied video URL" = "동영상 URL 복사됨"; "Copy all URLs" = "모든 URL 복사"; "Copy caption" = "캡션 복사"; "Copy download URL" = "다운로드 URL 복사"; "Could not extract any URLs" = "URL을 추출할 수 없습니다"; +"Could not extract audio URL" = "오디오 URL을 추출할 수 없습니다"; "Could not extract media URL" = "미디어 URL을 추출할 수 없습니다"; "Could not extract photo URL" = "사진 URL을 추출할 수 없습니다"; "Could not extract video URL" = "동영상 URL을 추출할 수 없습니다"; "Done" = "완료"; -"Download all (%lu)" = "모두 다운로드 (%lu)"; "Download all stories and share?" = "모든 스토리를 다운로드하고 공유하시겠습니까?"; "Download all to Photos" = "사진 앱에 모두 다운로드"; "Download and share all" = "모두 다운로드 및 공유"; -"Download and share?" = "다운로드하고 공유하시겠습니까?"; "Download failed" = "다운로드 실패"; "Downloaded %lu items" = "%lu개의 항목 다운로드됨"; -"Downloading %@..." = "%@ 다운로드 중..."; -"Downloading..." = "다운로드 중..."; +"Downloading audio…" = "오디오 다운로드 중…"; "Failed to save" = "저장 실패"; +"File" = "파일"; +"HD" = "HD"; "HD download complete" = "HD 다운로드 완료"; +"HD video" = "HD 동영상"; "Mute audio" = "오디오 음소거"; "No caption on this post" = "이 게시물에 캡션이 없습니다"; "No carousel children" = "캐러셀 항목이 없습니다"; "No cover image" = "커버 이미지가 없습니다"; -"No files downloaded" = "다운로드된 파일이 없습니다"; "No media" = "미디어 없음"; "No media to expand" = "확장할 미디어가 없습니다"; "No media to show" = "표시할 미디어가 없습니다"; @@ -699,22 +1164,22 @@ "No URLs found" = "URL을 찾을 수 없습니다"; "No video URL" = "동영상 URL 없음"; "Not a carousel" = "캐러셀이 아닙니다"; -"Nothing to save" = "저장할 내용 없음"; "Nothing to share" = "공유할 내용 없음"; -"Opening creator..." = "크리에이터 여는 중..."; +"Opening creator…" = "크리에이터 여는 중..."; "Photo library access denied" = "사진 보관함 접근 거부됨"; "Photos access denied" = "사진 앱 접근 거부됨"; -"Preparing repost..." = "리포스트 준비 중..."; +"Preparing repost…" = "리포스트 준비 중..."; +"Raw image" = "원본 이미지"; "Repost" = "리포스트"; "Repost unavailable" = "리포스트를 사용할 수 없습니다"; -"Save all stories to Photos?" = "모든 스토리를 사진 앱에 저장하시겠습니까?"; "Save failed" = "저장 실패"; -"Save to Photos?" = "사진 앱에 저장하시겠습니까?"; "Saved %lu items" = "%lu개의 항목 저장됨"; "Saved to Photos" = "사진 앱에 저장됨"; "Saved to RyukGram" = "RyukGram에 저장됨"; -"Tap to cancel" = "탭하여 취소"; +"Saving to Photos" = "사진에 저장 중"; +"Saving…" = "저장 중..."; "Unmute audio" = "오디오 음소거 해제"; +"Video · %@" = "동영상 · %@"; "View cover" = "커버 보기"; "View mentions" = "멘션 보기"; @@ -724,68 +1189,76 @@ // inside DM threads. // ////////////////////////////////////////////////////////////////////////////// +" %lu votes · avg %.0f%% " = " 투표 %lu개 · 평균 %.0f%% "; +"%@ can't be converted" = "%@ 변환 불가"; +"%@ unsent a message" = "%@님이 메시지 전송을 취소했습니다"; +"%@ unsent a message from %@" = "%1$@님이 %2$@님의 메시지 전송을 취소했습니다"; "A message was unsent" = "메시지 전송이 취소되었습니다"; "Add" = "추가"; "Add to block list" = "차단 목록에 추가"; -"Add to block list?" = "차단 목록에 추가하시겠습니까?"; "Added to block list" = "차단 목록에 추가됨"; "Added to exclude list" = "제외 목록에 추가됨"; "Audio not loaded yet. Play the message first and try again." = "오디오가 아직 로드되지 않았습니다. 먼저 메시지를 재생한 다음 다시 시도하세요."; "Audio sent" = "오디오 전송됨"; +"Audio URL not available" = "오디오 URL을 사용할 수 없음"; "Audio/Video from Files" = "파일 앱의 오디오/비디오"; "Blocked" = "차단됨"; "Cancel" = "취소"; "Clear preserved messages?" = "보존된 메시지를 지우시겠습니까?"; -"Converting..." = "변환 중..."; +"Converting…" = "변환 중..."; +"Copy link" = "링크 복사"; "Copy text" = "텍스트 복사"; +"Could not copy selected video" = "선택한 동영상을 복사할 수 없습니다"; "Could not find media" = "미디어를 찾을 수 없습니다"; "Could not find story media" = "스토리 미디어를 찾을 수 없습니다"; "Could not get audio data. Try again after refreshing the chat." = "오디오 데이터를 가져올 수 없습니다. 채팅을 새로고침한 후 다시 시도하세요."; -"Could not get video URL" = "동영상 URL을 가져올 수 없습니다"; "Disable read receipts" = "읽음 표시 비활성화"; "Disappearing media" = "사라지는 미디어"; -"Done!" = "완료!"; "Download audio" = "오디오 다운로드"; -"Downloading audio..." = "오디오 다운로드 중..."; "Enable read receipts" = "읽음 표시 활성화"; "Error: %@" = "오류: %@"; "Exclude chat" = "채팅 제외"; "Exclude from seen" = "본 것에서 제외"; "Exclude story seen" = "스토리 읽음 제외"; "Excluded" = "제외됨"; -"Extracting audio..." = "오디오 추출 중..."; -"Failed to encode GIF" = "GIF 인코딩 실패"; +"Extracting audio…" = "오디오 추출 중..."; +"FFmpeg conversion failed" = "FFmpeg 변환 실패"; "File sending not supported" = "파일 전송은 지원되지 않습니다"; "Follow" = "팔로우"; "Following" = "팔로잉"; +"Format not supported without FFmpegKit" = "FFmpegKit 없이 지원되지 않는 형식"; "Inserts a button on disappearing media overlays" = "사라지는 미디어 오버레이에 버튼을 추가"; "Inserts a speaker button to mute/unmute disappearing media" = "사라지는 미디어를 음소거/해제하는 스피커 버튼을 추가"; "Inserts an eye button to mark the current disappearing media as viewed" = "현재 사라지는 미디어를 본 것으로 표시하는 눈 버튼을 추가"; +"Link copied" = "링크 복사됨"; "Mark as viewed" = "본 것으로 표시"; "Mark messages as seen" = "메시지를 읽음으로 표시"; "Mark seen" = "읽음 표시"; -"Marked as seen" = "읽음으로 표시됨"; "Marked as viewed" = "조회한 것으로 표시됨"; "Marked messages as seen" = "메시지를 읽음으로 표시함"; "Mentions" = "멘션"; +"Message from %@ was unsent" = "%@님의 메시지 전송이 취소되었습니다"; "Message sender not found" = "메시지 보낸 사람을 찾을 수 없습니다"; "Messages settings" = "메시지 설정"; -"Audio URL not available" = "오디오 URL을 사용할 수 없음"; "Mute story audio" = "스토리 오디오 음소거"; +"no audio track could be read" = "읽을 수 있는 오디오 트랙이 없음"; "No audio URL found. Try again after refreshing the chat." = "오디오 URL을 찾을 수 없습니다. 채팅을 새로고침한 후 다시 시도하세요."; "No mentions in this story" = "이 스토리에 멘션이 없습니다"; "No thread key" = "스레드 키가 없습니다"; +"No video selected" = "선택된 동영상 없음"; "No voice send method found" = "음성 전송 방법을 찾을 수 없습니다"; -"Note not found" = "노트를 찾을 수 없습니다"; +"Note has no downloadable content" = "노트에 다운로드할 콘텐츠가 없습니다"; "Note text copied" = "노트 텍스트 복사됨"; "Open GitHub" = "GitHub 열기"; +"Pick audio or video" = "오디오 또는 동영상 선택"; "Read receipts disabled" = "읽음 표시가 비활성화되었습니다"; "Read receipts enabled" = "읽음 표시가 활성화되었습니다"; "Read receipts will be blocked for this chat." = "이 채팅에 대해 읽음 표시가 차단됩니다."; "Read receipts will no longer be blocked for this chat." = "이 채팅에 대해 더 이상 읽음 표시가 차단되지 않습니다."; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "DM 탭을 새로고침하면 보존된 메시지 %lu개가 삭제됩니다. 되돌릴 수 없습니다."; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "DM 탭을 새로고침하면 보존된 메시지 %lu개가 삭제됩니다. 되돌릴 수 없습니다."; "Remove" = "제거"; "Remove from block list" = "차단 목록에서 제거"; -"Remove from block list?" = "차단 목록에서 제거하시겠습니까?"; "Remove from exclude list" = "제외 목록에서 제거"; "Removed" = "제거됨"; "Removed from list" = "목록에서 제거됨"; @@ -794,15 +1267,16 @@ "Send anyway" = "그래도 보내기"; "Send Audio" = "오디오 보내기"; "Send failed: %@" = "전송 실패: %@"; +"Send File" = "파일 보내기"; "Send service not found" = "전송 서비스를 찾을 수 없습니다"; "Show audio toggle" = "오디오 토글 표시"; "Show mark-as-viewed button" = "보기 표시 버튼 표시"; "Story read receipts disabled" = "스토리 읽음 표시가 비활성화되었습니다"; "Story read receipts enabled" = "스토리 읽음 표시가 활성화되었습니다"; "This chat will resume normal read-receipt behavior." = "이 채팅은 정상적인 읽음 표시 동작을 재개합니다."; +"This file" = "이 파일"; "Total: %@" = "총: %@"; "Un-exclude chat" = "채팅 제외 취소"; -"Un-exclude chat?" = "채팅 제외를 취소하시겠습니까?"; "Un-exclude story seen" = "스토리 읽음 제외 취소"; "Un-excluded" = "제외 취소됨"; "Unblocked" = "차단 해제됨"; @@ -815,7 +1289,58 @@ "Visual messages will expire" = "시각적 메시지가 만료됩니다"; "Visual messages: expiring" = "시각적 메시지: 만료 예정"; "Visual messages: unlimited replay" = "시각적 메시지: 무제한 다시 보기"; -"Will sync when leaving stories" = "스토리를 나갈 때 동기화됩니다"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "배경 추가"; +"Add Chat Background" = "채팅 배경 추가"; +"Adds your own image backgrounds to Instagram chats" = "Instagram 채팅에 직접 만든 이미지 배경을 추가합니다"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "켠 후 아무 채팅이나 열어 테마 버튼을 누른 다음 오른쪽 상단의 사진 아이콘을 누르세요."; +"Blur" = "흐림"; +"Browse chats" = "채팅 둘러보기"; +"Browse chats (%ld)" = "채팅 둘러보기 (%ld)"; +"Change Background" = "배경 변경"; +"Change default" = "기본값 변경"; +"Chat Backgrounds" = "채팅 배경"; +"Choose an image used when no chat override exists" = "채팅별 설정이 없을 때 사용할 이미지를 선택합니다"; +"Choose Image" = "이미지 선택"; +"Clear default" = "기본값 지우기"; +"Couldn't import image" = "이미지를 가져올 수 없습니다"; +"Custom Chat Background" = "맞춤 채팅 배경"; +"Default background" = "기본 배경"; +"Delete library images, default background, and chat overrides" = "라이브러리 이미지, 기본 배경, 채팅별 설정을 삭제합니다"; +"Dim in dark mode" = "다크 모드에서 어둡게"; +"Edit image settings" = "이미지 설정 편집"; +"Enable custom backgrounds" = "맞춤 배경 사용"; +"Enter a username, chat name, or thread ID." = "사용자 이름, 채팅 이름 또는 스레드 ID를 입력하세요."; +"Group" = "그룹"; +"Image Settings" = "이미지 설정"; +"Library" = "라이브러리"; +"Library, default, and per-chat overrides will be deleted." = "라이브러리, 기본값, 채팅별 설정이 삭제됩니다."; +"No Custom" = "맞춤 없음"; +"Opacity" = "불투명도"; +"Photo Library" = "사진 보관함"; +"Pick default" = "기본값 선택"; +"Pinch + drag to position" = "손가락으로 오므리거나 드래그해 위치 조정"; +"Quit and reopen Instagram for the change to take effect." = "변경 사항을 적용하려면 Instagram을 종료한 후 다시 여세요."; +"Recently set" = "최근 설정됨"; +"Remove the global fallback background" = "전역 대체 배경 제거"; +"Replace the default background image" = "기본 배경 이미지 대체"; +"Reset all backgrounds" = "모든 배경 초기화"; +"Reset all backgrounds?" = "모든 배경을 초기화할까요?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "초기화하면 불투명도 1.0, 흐림 0, 어둡게 0으로 설정됩니다."; +"RyukGram Gallery" = "RyukGram 갤러리"; +"Search username, name, or thread ID" = "사용자 이름, 이름 또는 스레드 ID 검색"; +"Set as default" = "기본값으로 설정"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "더하기를 눌러 추가하세요. 배경을 눌러 편집, 기본값 설정 또는 삭제할 수 있습니다."; +"This Chat Background" = "이 채팅 배경"; +"Thread ID" = "스레드 ID"; +"Used only when a chat does not have its own custom background." = "채팅에 자체 맞춤 배경이 없을 때만 사용됩니다."; +"View and manage chats with custom backgrounds" = "맞춤 배경이 있는 채팅 보기 및 관리"; ////////////////////////////////////////////////////////////////////////////// // GENERAL FEATURES // @@ -825,213 +1350,231 @@ "Add location" = "위치 추가"; "Add preset" = "프리셋 추가"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "위의 모든 항목에 영향을 줍니다. 꺼져 있을 때는 RyukGram의 테마와 표면 재정의가 iOS가 다크 모드일 때만 적용됩니다 — 라이트 모드는 그대로 유지됩니다."; +"Apply & restart" = "적용 및 재시작"; +"Background" = "배경"; +"Behavior" = "동작"; "Change location" = "위치 변경"; -"Click the Apply button after this to see the emoji" = "이모티콘을 보려면 이후에 적용 버튼을 클릭하세요"; "Clipboard is not an Instagram URL" = "클립보드가 Instagram URL이 아닙니다"; "Comments hidden" = "댓글 숨김"; "Comments shown" = "댓글 표시됨"; "Copied text to clipboard" = "클립보드에 텍스트 복사됨"; "Copy" = "복사"; -"Copy all" = "모두 복사"; "Copy bio" = "소개 복사"; -"Copy from profile" = "프로필에서 복사"; "Copy name" = "이름 복사"; "Could not find cover image" = "커버 이미지를 찾을 수 없습니다"; "Current: %@" = "현재: %@"; +"Dark" = "다크"; "Disable" = "비활성화"; "Download GIF" = "GIF 다운로드"; "Dropped pin" = "놓은 핀"; +"Emoji" = "이모지"; "Enable" = "활성화"; "Enable Location Services for Instagram in Settings to use your current location." = "현재 위치를 사용하려면 설정에서 Instagram의 위치 서비스를 활성화하세요."; -"Enter Emoji Text" = "이모티콘 텍스트 입력"; +"Enter emoji" = "이모지 입력"; "Fake location" = "가짜 위치"; +"Force theme" = "테마 강제"; +"Keyboard theme" = "키보드 테마"; +"Light" = "라이트"; "Location access denied" = "위치 접근이 거부됨"; "Location Services off" = "위치 서비스 꺼짐"; "Name" = "이름"; "Nothing to copy" = "복사할 내용 없음"; +"Off, Light, Dark, or OLED" = "끄기, 라이트, 다크, OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "OLED 채팅 테마"; "Open Settings" = "설정 열기"; +"Optional per-surface overrides. Each one is independent of the theme above." = "선택적 표면별 재정의. 각 항목은 위 테마와 독립적입니다."; +"Override iOS appearance regardless of system mode" = "시스템 모드와 관계없이 iOS 모양을 무시"; +"Override the keyboard appearance when typing" = "입력할 때 키보드 모양을 재정의"; "Pick location" = "위치 선택"; +"Pure black DM thread + incoming bubbles" = "DM 스레드 배경과 수신 말풍선을 순수한 검정으로"; +"Reset theme" = "테마 초기화"; +"Restart Instagram to apply your theme changes" = "테마 변경을 적용하려면 Instagram을 재시작하세요"; "Save" = "저장"; "Save preset" = "프리셋 저장"; "Saved locations" = "저장된 위치"; "Select color" = "색상 선택"; "Set location" = "위치 설정"; -"Settings…" = "설정…"; -"Turn Location Services on in Settings → Privacy to use your current location." = "현재 위치를 사용하려면 설정 → 개인정보에서 위치 서비스를 켜세요."; -"Type emoji..." = "이모티콘 입력..."; - +"The theme RyukGram applies to Instagram." = "RyukGram이 Instagram에 적용하는 테마입니다."; "Theme" = "테마"; -"Appearance" = "모양"; -"Keyboard" = "키보드"; -"Force dark mode" = "다크 모드 강제"; -"Keep Instagram in dark appearance regardless of iOS system setting" = "iOS 시스템 설정과 관계없이 Instagram을 다크 모드로 유지"; -"Full OLED" = "전체 OLED"; -"Replace Instagram's dark grays with pure black across the entire app" = "앱 전체에서 Instagram의 어두운 회색을 순수한 검정으로 교체"; -"OLED chat theme" = "OLED 채팅 테마"; -"Pure black DM thread background and incoming message bubbles" = "DM 스레드 배경과 수신 메시지 말풍선을 순수한 검정으로"; -"Keyboard theme" = "키보드 테마"; -"Override the keyboard appearance when typing inside Instagram" = "Instagram 안에서 입력할 때 키보드 모양을 재정의"; -"Dark uses the system dark keyboard. OLED forces the keyboard backdrop to pure black." = "다크는 시스템 다크 키보드를 사용합니다. OLED는 키보드 배경을 순수한 검정으로 강제합니다."; -"Dark" = "다크"; -"OLED" = "OLED"; -"Apply & restart" = "적용 및 재시작"; -"Restart Instagram to apply your theme changes" = "테마 변경을 적용하려면 Instagram을 재시작하세요"; -"Theme changes only take effect after an app restart. Tap Apply below when you're done choosing." = "테마 변경은 앱을 재시작해야 적용됩니다. 선택이 끝나면 아래 적용 버튼을 누르세요."; +"Turn every theme option off and restart" = "모든 테마 옵션을 끄고 재시작"; +"Turn Location Services on in Settings → Privacy to use your current location." = "현재 위치를 사용하려면 설정 → 개인정보에서 위치 서비스를 켜세요."; +"Type an emoji to use as the note bubble icon." = "노트 말풍선 아이콘으로 사용할 이모지를 입력하세요."; +"View profile picture" = "프로필 사진 보기"; ////////////////////////////////////////////////////////////////////////////// // PROFILE ANALYZER // -// Settings → General → Profile Analyzer // +// Settings → Profile Analyzer // ////////////////////////////////////////////////////////////////////////////// +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu개 계정? API 제한을 피하기 위해 처음 %ld개만 처리됩니다."; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu개 계정? 각 요청 사이에 짧은 간격을 두고 순차적으로 실행됩니다."; +"%@ followers · %@ following" = "팔로워 %@ · 팔로잉 %@"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "%d일 전"; +"%dh ago" = "%d시간 전"; +"%dm ago" = "%d분 전"; +"%lu accounts followed" = "%lu명 팔로우함"; +"%lu accounts unfollowed" = "%lu명 언팔로우함"; "%lu followers · %lu following" = "팔로워 %lu · 팔로잉 %lu"; "%lu of %lu" = "%lu / %lu"; +"%lu saved · comparing against %@" = "%lu개 저장됨 · %@과(와) 비교 중"; +"(empty)" = "(비어 있음)"; +"(no analyzer data)" = "(분석 데이터 없음)"; +"a saved snapshot" = "저장된 스냅샷"; +"About Profile Analyzer" = "프로필 분석 정보"; +"All preferences (%lu)" = "모든 설정 (%lu)"; "Analysis complete" = "분석 완료"; "Analysis failed" = "분석 실패"; "Another analysis is already running" = "이미 다른 분석이 진행 중입니다"; "Available after your next scan" = "다음 분석 후 사용 가능"; -"Cancelled" = "취소됨"; +"Batch follow" = "일괄 팔로우"; +"Batch follow finished" = "일괄 팔로우 완료"; +"Batch unfollow" = "일괄 언팔로우"; +"Batch unfollow finished" = "일괄 언팔로우 완료"; +"Categories" = "카테고리"; +"Clear visited profiles" = "방문한 프로필 지우기"; +"Compare next scan against" = "다음 스캔 비교 대상"; +"Comparing against %@" = "%@과(와) 비교 중"; +"Continue" = "계속"; "Couldn't fetch profile information" = "프로필 정보를 가져오지 못했습니다"; +"Delete %lu snapshots? This can't be undone." = "스냅샷 %lu개를 삭제할까요? 되돌릴 수 없습니다."; +"Delete (%lu)" = "삭제 (%lu)"; +"Delete snapshots" = "스냅샷 삭제"; +"Delete this snapshot? This can't be undone." = "이 스냅샷을 삭제할까요? 되돌릴 수 없습니다."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "각 스캔은 나중에 비교할 수 있도록 팔로워와 팔로잉의 전체 사본을 저장합니다. 모든 데이터는 이 기기에만 보관됩니다."; +"Export" = "내보내기"; "Fetching followers (%lu/%ld)…" = "팔로워 가져오는 중 (%lu/%ld)…"; "Fetching following (%lu/%ld)…" = "팔로잉 가져오는 중 (%lu/%ld)…"; "Fetching profile info…" = "프로필 정보 가져오는 중…"; -"Categories" = "카테고리"; +"File is not a valid RyukGram backup." = "유효한 RyukGram 내보내기 파일이 아닙니다."; +"Filter" = "필터"; +"Filter · %lu" = "필터 · %lu"; "First scan: %@" = "첫 분석: %@"; +"First scan: we collect your followers and following lists and save them locally." = "첫 분석: 팔로워와 팔로잉 목록을 수집해 기기에 저장합니다."; +"Follow %lu" = "팔로우 %lu"; "Follower count exceeds %ld — analysis disabled to avoid rate limits." = "팔로워 수가 %ld명을 초과하여 API 제한을 피하기 위해 분석이 비활성화되었습니다."; +"Followers" = "팔로워"; +"Following… %lu / %lu" = "팔로우 중… %lu / %lu"; "Gained since last scan" = "마지막 분석 이후 증가"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "참고: 이 기능은 베타이며 Instagram 비공개 API를 사용합니다. 연속 실행하거나 팔로우/언팔로우를 많이 한 직후에 실행하면 짧은 제한에 걸릴 수 있습니다. 드물게, 본인 책임하에 사용하세요."; +"Import complete" = "가져오기 완료"; +"Include" = "포함"; +"Keep newest" = "최신 항목 유지"; +"Keep newest snapshots" = "최신 스냅샷 유지"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "대형 계정 차단: 팔로워가 13,000명을 초과하면 Instagram이 앱 전체에 제한을 걸 수 있어 분석이 비활성화됩니다."; "Last scan: %@" = "마지막 분석: %@"; +"Logs every profile you open. Stays on-device." = "여는 모든 프로필을 기록합니다. 기기에만 저장됩니다."; "Lost followers" = "이탈 팔로워"; +"Most visited" = "가장 많이 방문"; "Mutual followers" = "맞팔 팔로워"; "Name: %@ → %@" = "이름: %@ → %@"; "New followers" = "새 팔로워"; -"No results" = "결과 없음"; "No active Instagram session found" = "활성화된 Instagram 세션을 찾을 수 없습니다"; +"No results" = "결과 없음"; "No scan yet" = "분석 기록 없음"; "Not following you back" = "맞팔하지 않음"; +"Not verified only" = "미인증 계정만"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "업로드되지 않습니다 — 모든 데이터는 이 기기에 저장되며 휴지통 아이콘으로 삭제할 수 있습니다."; +"Nothing was applied." = "적용된 내용이 없습니다."; "OK" = "확인"; +"Older snapshots beyond the limit are removed automatically" = "제한을 초과한 오래된 스냅샷은 자동으로 제거됩니다"; +"Older snapshots beyond this limit are deleted on the next scan." = "이 제한을 초과한 오래된 스냅샷은 다음 스캔 시 삭제됩니다."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "제거할 항목을 선택하세요. 스냅샷은 스캔 차이와 기록된 모든 스냅샷을 지웁니다. 방문한 프로필은 방문 기록을 지웁니다."; +"Posts" = "게시물"; +"Preferences" = "설정"; +"Previous scan" = "이전 스캔"; "Private account" = "비공개 계정"; +"Private only" = "비공개만"; "Profile Analyzer" = "프로필 분석"; +"Profile Analyzer data" = "프로필 분석 데이터"; "Profile picture changed" = "프로필 사진 변경됨"; "Profile updates" = "프로필 변경"; -"Removes cached snapshots for this account. You'll lose since-last-scan diffs." = "이 계정의 저장된 스냅샷을 삭제합니다. 마지막 분석 이후 변경 사항이 사라집니다."; +"Profiles you've opened recently" = "최근에 연 프로필"; +"Raw" = "원본"; +"Raw JSON" = "원본 JSON"; +"Record snapshots" = "스냅샷 기록"; +"Recording" = "녹음"; "Request failed" = "요청 실패"; -"Reset analyzer data?" = "분석 데이터를 초기화할까요?"; +"Reset analyzer data" = "분석 데이터 초기화"; +"Reset complete" = "초기화 완료"; +"Reset everything" = "모두 재설정"; +"Reset selected data?" = "선택한 데이터를 초기화할까요?"; +"Reset snapshots" = "스냅샷 재설정"; +"Rolling — always your last run" = "롤링 — 항상 마지막 실행"; "Run analysis" = "분석 실행"; "Run your first analysis" = "첫 분석을 실행하세요"; -"Search username or name" = "아이디 또는 이름 검색"; +"Save a dated entry on every scan" = "스캔할 때마다 날짜가 기록된 항목 저장"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "두 번째 분석부터: 매 분석마다 이전과 비교해 새/이탈 팔로워, 본인의 팔로우/언팔로우 변화, 프로필 변경을 보여줍니다."; +"Settings" = "설정"; "Since last scan" = "마지막 분석 이후"; +"Snapshot" = "스냅샷"; +"Snapshots" = "스냅샷"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "스냅샷을 사용하면 각 스캔을 보관하고 새 스캔이 비교할 대상을 선택할 수 있습니다. 방문 추적은 열어 본 모든 프로필을 기록하여 여기서 확인할 수 있게 합니다."; +"Sort" = "정렬"; "Starting…" = "시작 중…"; "They follow you, you don't follow back" = "나를 팔로우 중이지만 내가 맞팔하지 않음"; +"This can't be undone." = "되돌릴 수 없습니다."; +"Ticked data will be cleared. Tap a row to see what's stored." = "선택한 데이터가 삭제됩니다. 저장된 내용을 보려면 항목을 탭하세요."; +"Today" = "오늘"; "Too many followers" = "팔로워가 너무 많음"; "Too many followers to analyze" = "분석하기에는 팔로워가 너무 많습니다"; +"Track visited profiles" = "방문한 프로필 추적"; +"Tracking" = "추적"; +"Tracking off — enable below to log visits" = "추적 꺼짐 — 아래에서 활성화하여 방문 기록"; "Unfollow" = "언팔로우"; +"Unfollow %lu" = "언팔로우 %lu"; "Unfollow @%@?" = "@%@ 언팔로우할까요?"; "Unfollowed you since last scan" = "마지막 분석 이후 언팔로우함"; +"Unfollowing… %lu / %lu" = "언팔로우 중… %lu / %lu"; +"Unlimited" = "무제한"; +"Username A → Z" = "아이디 A → Z"; +"Username Z → A" = "아이디 Z → A"; "Username, name or picture changes" = "아이디·이름·사진 변경"; "Username: @%@ → @%@" = "아이디: @%@ → @%@"; +"Using %@ across %lu snapshots." = "스냅샷 %2$lu개에서 %1$@ 사용 중."; +"Verified only" = "인증 계정만"; +"Visited" = "방문함"; +"Visited profiles" = "방문한 프로필"; "We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "Instagram API 제한을 피하기 위해 팔로워 수가 %ld명을 초과하면 실행하지 않습니다."; "You both follow each other" = "서로 팔로우하는 사이"; "You don't follow back" = "내가 맞팔하지 않은 사람"; "You follow them, they don't follow back" = "팔로우 중이지만 맞팔하지 않음"; "You started following" = "새로 팔로우 시작"; "You unfollowed" = "언팔로우함"; - -"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu개 계정? API 제한을 피하기 위해 처음 %ld개만 처리됩니다."; -"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu개 계정? 각 요청 사이에 짧은 간격을 두고 순차적으로 실행됩니다."; -"%lu account(s) · %lu snapshot(s) · tap to inspect" = "계정 %lu · 스냅샷 %lu · 탭하여 확인"; -"%lu accounts followed" = "%lu명 팔로우함"; -"%lu accounts unfollowed" = "%lu명 언팔로우함"; -"%lu entries across %lu lists · tap to inspect" = "%lu개 목록에 %lu개 항목 · 탭하여 확인"; -"%lu preferences · tap to inspect" = "설정 %lu개 · 탭하여 확인"; -"(empty)" = "(비어 있음)"; -"(no analyzer data)" = "(분석 데이터 없음)"; -"(no lists)" = "(목록 없음)"; -"About Profile Analyzer" = "프로필 분석 정보"; -"All preferences (%lu)" = "모든 설정 (%lu)"; -"Apply imported data?" = "가져온 데이터를 적용할까요?"; -"Batch follow" = "일괄 팔로우"; -"Batch follow finished" = "일괄 팔로우 완료"; -"Batch unfollow" = "일괄 언팔로우"; -"Batch unfollow finished" = "일괄 언팔로우 완료"; -"Continue" = "계속"; -"Current snapshot" = "현재 스냅샷"; -"Embed domains" = "임베드 도메인"; -"Excluded lists" = "제외된 목록"; -"Excluded story users" = "스토리 제외 사용자"; -"Existing values for the selected scope will be replaced. The app may need to restart for some changes to take effect." = "선택한 범위의 기존 값이 대체됩니다. 일부 변경 사항을 적용하려면 앱을 다시 시작해야 할 수 있습니다."; -"Export" = "내보내기"; -"File has no importable sections." = "파일에 가져올 수 있는 섹션이 없습니다."; -"File is not a valid RyukGram export." = "유효한 RyukGram 내보내기 파일이 아닙니다."; -"Filter" = "필터"; -"First scan: we collect your followers and following lists and save them locally." = "첫 분석: 팔로워와 팔로잉 목록을 수집해 기기에 저장합니다."; -"Follow %lu" = "팔로우 %lu"; -"Followers" = "팔로워"; -"Following… %lu / %lu" = "팔로우 중… %lu / %lu"; -"Full name" = "이름"; -"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "참고: 이 기능은 베타이며 Instagram 비공개 API를 사용합니다. 연속 실행하거나 팔로우/언팔로우를 많이 한 직후에 실행하면 짧은 제한에 걸릴 수 있습니다. 드물게, 본인 책임하에 사용하세요."; -"Import complete" = "가져오기 완료"; -"Include" = "포함"; -"Included story users" = "스토리 포함 사용자"; -"Inspect the full payload" = "전체 데이터 보기"; -"Keep scan history" = "분석 기록 유지"; -"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "대형 계정 차단: 팔로워가 13,000명을 초과하면 Instagram이 앱 전체에 제한을 걸 수 있어 분석이 비활성화됩니다."; -"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "업로드되지 않습니다 — 모든 데이터는 이 기기에 저장되며 휴지통 아이콘으로 삭제할 수 있습니다."; -"Not verified only" = "미인증 계정만"; -"Nothing was applied." = "적용된 내용이 없습니다."; -"Posts" = "게시물"; -"Preferences" = "설정"; -"Previous snapshot" = "이전 스냅샷"; -"Private only" = "비공개만"; -"Profile Analyzer data" = "프로필 분석 데이터"; -"Raw" = "원본"; -"Raw JSON" = "원본 JSON"; -"Reset analyzer data" = "분석 데이터 초기화"; -"Reset complete" = "초기화 완료"; -"Reset selected data?" = "선택한 데이터를 초기화할까요?"; -"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "두 번째 분석부터: 매 분석마다 이전과 비교해 새/이탈 팔로워, 본인의 팔로우/언팔로우 변화, 프로필 변경을 보여줍니다."; -"Select all" = "모두 선택"; -"Selected data will be cleared. Tap any row to see what's stored." = "선택한 데이터가 삭제됩니다. 저장된 내용을 보려면 항목을 탭하세요."; -"Settings" = "설정"; -"Sort" = "정렬"; -"This can't be undone." = "되돌릴 수 없습니다."; -"Tick what to apply. Tap any row to inspect. Sections not in the file are disabled." = "적용할 항목을 선택하세요. 각 항목을 탭해 확인할 수 있습니다. 파일에 없는 섹션은 비활성화됩니다."; -"Tick what to include. Tap any row to inspect its contents." = "포함할 항목을 선택하세요. 각 항목을 탭해 내용을 확인할 수 있습니다."; -"Unfollow %lu" = "언팔로우 %lu"; -"Unfollowing… %lu / %lu" = "언팔로우 중… %lu / %lu"; -"Username A → Z" = "아이디 A → Z"; -"Username Z → A" = "아이디 Z → A"; -"Verified only" = "인증 계정만"; -"When on, scans compare against your first scan so new/lost followers and profile updates don't disappear between scans." = "켜면 각 분석이 첫 분석과 비교되어 새/이탈 팔로워와 프로필 변경이 분석 사이에 사라지지 않습니다."; +"your previous scan" = "이전 스캔"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "“이전 스캔”은 항상 마지막 실행을 기준으로 측정합니다. 대신 고정된 시점과 비교하려면 저장된 스냅샷을 선택하세요."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ 용량이 커지고 있습니다 — 제한을 낮추거나 오래된 스냅샷을 삭제해 공간을 확보하세요."; ////////////////////////////////////////////////////////////////////////////// // SETTINGS VIEWS & DIALOGS // // Excluded-lists managers, backup/restore flows, in-picker labels. // ////////////////////////////////////////////////////////////////////////////// +"Absolute format" = "절대 형식"; "Add chat" = "채팅 추가"; "Add custom domain" = "사용자 지정 도메인 추가"; -"Add preset…" = "프리셋 추가…"; "Add to list?" = "목록에 추가하시겠습니까?"; "Add user" = "사용자 추가"; "Apply" = "적용"; "Apply to" = "다음에 적용"; "Chats" = "채팅"; +"Colored" = "색상"; "Could not read file." = "파일을 읽을 수 없습니다."; "Could not resolve user ID" = "사용자 ID를 확인할 수 없습니다"; -"Could not write temporary file." = "임시 파일을 쓸 수 없습니다."; "Current location" = "현재 위치"; "Custom" = "사용자 지정"; -"Date Format" = "날짜 형식"; "Delete" = "삭제"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "IG의 각 화면은 서로 다른 NSDate 포매터를 사용합니다. 이 형식을 적용할 화면을 켜세요."; "Enable fake location" = "가짜 위치 활성화"; -"Enter username" = "사용자 이름 입력"; -"Enter username of the DM thread" = "DM 스레드의 사용자 이름을 입력하세요"; "Excluded chats" = "제외된 채팅"; "Excluded users" = "제외된 사용자"; "Follow default" = "기본값 따르기"; "Force OFF (allow unsends)" = "강제 끄기 (전송 취소 허용)"; "Force ON (preserve unsends)" = "강제 켜기 (전송 취소 보존)"; -"Format" = "형식"; -"Import failed" = "가져오기 실패"; +"Include seconds when the format already shows time." = "형식에 시간이 포함될 때 초도 함께 표시합니다."; "Included chats" = "포함된 채팅"; "Included users" = "포함된 사용자"; "KD: default" = "KD: 기본값"; @@ -1040,41 +1583,38 @@ "Keep-deleted override" = "삭제 메시지 보관 재정의"; "Name (A–Z)" = "이름 (가나다)"; "No DM thread found with @%@" = "@%@의 DM 스레드를 찾을 수 없습니다"; -"Off" = "끄기"; "Presets" = "프리셋"; "Recently added" = "최근 추가됨"; +"Relative time" = "상대 시간"; +"Relative within" = "상대 시간 적용 범위"; "Remove from list" = "목록에서 제거"; -"Remove Selected" = "선택 항목 제거"; "Reset" = "재설정"; -"Saved presets are reusable. Tap a preset to make it the active location." = "저장된 프리셋은 재사용할 수 있습니다. 프리셋을 탭하여 활성 위치로 만드세요."; "Search" = "검색"; "Search address or place" = "주소 또는 장소 검색"; "Search by name or username" = "이름 또는 사용자 이름으로 검색"; "Search by username or name" = "사용자 이름 또는 이름으로 검색"; -"Select" = "선택"; "Select location on map" = "지도에서 위치 선택"; "Set current location" = "현재 위치 설정"; "Set keep-deleted override" = "삭제 메시지 보관 재정의 설정"; -"Settings exported" = "설정 내보내기 완료"; "Show map button" = "지도 버튼 표시"; +"Show relative time for dates younger than this many days. 0 disables it." = "지정한 일수보다 최근 날짜에만 상대 시간을 표시합니다. 0이면 비활성화됩니다."; "Show seconds" = "초 표시"; "Sort by" = "정렬 기준"; -"Story users" = "스토리 사용자"; -"Toggle each NSDate formatter IG uses. Different surfaces (feed, comments, stories, DMs) go through different methods — enable the ones you want the custom format applied to." = "IG가 사용하는 각 NSDate 포맷터를 전환합니다. 각 영역(피드, 댓글, 스토리, DM)은 다른 방법을 거칩니다 — 사용자 지정 형식을 적용할 영역을 활성화하세요."; +"Thread" = "스레드"; +"Time" = "시간"; "Use this location" = "이 위치 사용"; "User '%@' not found" = "'%@' 사용자를 찾을 수 없습니다"; "Username (A–Z)" = "사용자명 (가나다)"; -"When on, all CoreLocation requests inside Instagram return the location below. Toggle the map button to show or hide the quick toggle on the Friends Map view." = "켜져 있으면 Instagram 내의 모든 CoreLocation 요청이 아래 위치를 반환합니다. 지도 버튼을 토글하여 친구 지도 보기에 빠른 토글을 표시하거나 숨길 수 있습니다."; +"Within %ld days" = "%ld일 이내"; +"Within 1 day" = "1일 이내"; ////////////////////////////////////////////////////////////////////////////// // REELS (FEATURES) // // Strings from Reels. // ////////////////////////////////////////////////////////////////////////////// -"Copied!" = "복사되었습니다!"; "No password found" = "비밀번호를 찾을 수 없습니다"; "No text field found" = "텍스트 필드를 찾을 수 없습니다"; -"Password" = "비밀번호"; "Refresh Reels?" = "릴스를 새로고침하시겠습니까?"; ////////////////////////////////////////////////////////////////////////////// @@ -1082,23 +1622,42 @@ // Strings from Profile. // ////////////////////////////////////////////////////////////////////////////// +"%lu accounts" = "계정 %lu개"; +"%lu loaded" = "%lu개 불러옴"; +"%lu loaded · all loaded" = "%lu개 불러옴 · 전체 불러옴"; "Doesn't follow you" = "회원님을 팔로우하지 않음"; +"Everyone is already loaded." = "이미 모두 불러왔습니다."; +"Filter & sort" = "필터 및 정렬"; +"Follows me" = "나를 팔로우함"; +"Follows me first" = "나를 팔로우한 순"; "Follows you" = "회원님을 팔로우함"; +"Hides everyone who doesn't match all picked filters." = "선택한 모든 필터에 맞지 않는 사람을 모두 숨깁니다."; +"Jump to bottom" = "맨 아래로 이동"; +"Jump to top" = "맨 위로 이동"; +"List" = "목록"; +"List fully loaded" = "목록 전체 불러옴"; +"Load more" = "더 불러오기"; +"Loaded more" = "추가로 불러옴"; +"Mutuals" = "맞팔"; +"Mutuals first" = "맞팔 우선"; "Note copied" = "노트 복사됨"; - -////////////////////////////////////////////////////////////////////////////// -// CONFIRM DIALOGS (IN-FEATURE) // -// Strings from Confirm dialogs. // -////////////////////////////////////////////////////////////////////////////// - -"Unfollow?" = "언팔로우하시겠습니까?"; +"People I follow" = "내가 팔로우하는 사람"; +"People I follow first" = "내가 팔로우하는 사람 우선"; +"Reverse order" = "순서 반대로"; +"Show only" = "다음만 표시"; +"Verified" = "인증됨"; +"Verified first" = "인증 계정 우선"; ////////////////////////////////////////////////////////////////////////////// // MISC // // Anything that didn't fit a named section. Usually short labels. // ////////////////////////////////////////////////////////////////////////////// +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(설정 안 됨)"; "720p • progressive • fastest" = "720p • 프로그레시브 • 가장 빠름"; +"Add language" = "언어 추가"; +"Album name" = "앨범 이름"; "Are you sure?" = "확실합니까?"; "Bundle" = "번들"; "Copy audio URL" = "오디오 URL 복사"; @@ -1106,21 +1665,41 @@ "Copy video URL" = "동영상 URL 복사"; "Could not access reel media" = "릴스 미디어에 접근할 수 없습니다"; "Could not access reel photo" = "릴스 사진에 접근할 수 없습니다"; -"Could not extract photo url from post" = "게시물에서 사진 URL을 추출할 수 없습니다"; -"Could not extract photo url from reel" = "릴스에서 사진 URL을 추출할 수 없습니다"; -"Could not extract photo url from story" = "스토리에서 사진 URL을 추출할 수 없습니다"; -"Could not extract video url from post" = "게시물에서 동영상 URL을 추출할 수 없습니다"; -"Could not extract video url from reel" = "릴스에서 동영상 URL을 추출할 수 없습니다"; -"Could not extract video url from story" = "스토리에서 동영상 URL을 추출할 수 없습니다"; +"Could not write file." = "파일을 쓸 수 없습니다."; +"Download all and share?" = "모두 다운로드하고 공유하시겠습니까?"; "Download Quality" = "다운로드 품질"; -"Extras" = "Extras"; +"Downloading %d%%" = "다운로드 중 %d%%"; +"e.g. 1000000" = "예: 1000000"; +"Localization file not found" = "번역 파일을 찾을 수 없습니다"; +"Enter the language code (e.g. fr, de, ja)" = "언어 코드를 입력하세요 (예: fr, de, ja)"; +"Error" = "오류"; +"Extras" = "추가 기능"; "FFmpegKit Debug" = "FFmpegKit 디버그"; +"File is empty or not a valid .strings file." = "파일이 비어 있거나 유효한 .strings 파일이 아닙니다."; +"KD: OFF" = "KD: 끔"; +"Keep-deleted: OFF" = " • 삭제된 메시지 보관: 끔"; +"Keep-deleted: ON" = " • 삭제된 메시지 보관: 켬"; "Later" = "나중에"; +"Loading" = "불러오는 중"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "RyukGram이 저장하는 사진 앨범 이름입니다. 기본값으로 되돌리려면 비워 두세요."; +"Next" = "다음"; +"No results found." = "결과를 찾을 수 없습니다."; "No!" = "아니요!"; -"OK" = "확인"; +"Pick a language to update, or add a new one" = "업데이트할 언어를 고르거나 새 언어를 추가하세요"; +"Preset" = "프리셋"; "Restart" = "재시작"; +"Restart now" = "지금 다시 시작"; "Restart required" = "재시작 필요"; -"username" = "사용자명"; +"Saved preset \"%@\"" = "프리셋 \"%@\" 저장됨"; +"selected" = "선택됨"; +"Shared icon, or override per button" = "공유 아이콘 또는 버튼별 재정의"; +"Speed" = "속도"; +"Unset" = "설정 안 함"; +"Update localization" = "번역 업데이트"; +"Updated %@ (%ld keys). Restart to apply." = "%@ 업데이트됨 (%ld개 키). 다시 시작하여 적용하세요."; +"Use default" = "기본값 사용"; +"Username or PK" = "사용자 이름 또는 PK"; +"Username or raw user PK" = "사용자 이름 또는 원시 사용자 PK"; "Yes" = "예"; "You must restart the app to apply this change" = "이 변경 사항을 적용하려면 앱을 다시 시작해야 합니다"; @@ -1129,15 +1708,21 @@ // Strings from the About / Credits footer of Settings. // ////////////////////////////////////////////////////////////////////////////// -"%@ — GitHub & Telegram" = "%@ — GitHub & Telegram"; +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub, Telegram, 후원"; "About" = "정보"; "Arabic translation" = "아랍어 번역"; -"Chinese (Traditional) translation" = "중국어(번체) 번역"; +"Chinese (Traditional and Simplified) translation" = "중국어 (번체 및 간체) 번역"; "Credits" = "크레딧"; "Developers" = "개발자"; "Donate to SoCuul" = "SoCuul에게 후원하기"; "installed" = "설치됨"; "Korean translation" = "한국어 번역"; +"Portuguese (Brazil) translation" = "포르투갈어 (브라질) 번역"; +"Turkish translation" = "터키어 번역"; +"Vietnamese translation" = "베트남어 번역"; +"French translation" = "프랑스어 번역"; +"Code contributions" = "코드 기여"; +"Following feed mode (from InstaSane)" = "팔로잉 피드 모드 (InstaSane 기반)"; "latest" = "최신"; "Links" = "링크"; "No releases" = "릴리스 없음"; @@ -1148,13 +1733,24 @@ "Russian translation" = "러시아어 번역"; "RyukGram developer" = "RyukGram 개발자"; "Join Telegram channel" = "Telegram 채널 참여"; -"View on GitHub" = "GitHub에서 보기"; "Source code" = "소스 코드"; +"View on GitHub" = "GitHub에서 보기"; "Spanish translation" = "스페인어 번역"; -"Support the original developer" = "원작자 후원하기"; +"Support the original SCInsta developer" = "SCInsta 원작자 후원하기"; +"Inspirations" = "영감"; +"Inspirations, contributors, translators" = "영감, 기여자, 번역가"; +"Code and research" = "코드 및 연구"; +"Translators" = "번역가"; +"Original BHInstagram developer" = "BHInstagram 원작자"; +"OLED theme inspiration" = "OLED 테마 영감"; +"Donate to Ryuk" = "Ryuk 후원하기"; +"Support RyukGram development" = "RyukGram 개발 후원"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram은 SCInsta를 대폭 재작업한 포크입니다 — 원작자 후원에 감사드립니다."; +"Browse changes from previous releases" = "이전 릴리스의 변경 사항 보기"; +"Code inspiration" = "코드 영감"; +"zxPluginsInject sideload compatibility shim" = "zxPluginsInject 사이드로드 호환성 심"; "Telegram channel" = "Telegram 채널"; "Testing and feature suggestions" = "테스트 및 기능 제안"; -"Tweak settings" = "트윅 설정"; "Version" = "버전"; "Version, credits, and links" = "버전, 크레딧, 링크"; "What's new in RyukGram" = "RyukGram의 새로운 기능"; @@ -1165,7 +1761,6 @@ ////////////////////////////////////////////////////////////////////////////// "720p • progressive • silent" = "720p • 프로그레시브 • 무음"; -"Audio extract failed" = "오디오 추출 실패"; "Audio only" = "오디오만"; "Audio ready" = "오디오 준비됨"; "Download video at the highest available quality" = "가능한 가장 높은 품질로 동영상 다운로드"; @@ -1175,12 +1770,433 @@ "Faster = lower quality" = "빠름 = 낮은 품질"; "FFmpeg not available" = "FFmpeg 사용 불가"; "FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit을 사용할 수 없습니다. 사이드로딩된 IPA 또는 _ffmpeg .deb 버전을 설치하여 활성화하세요."; -"No audio stream available" = "사용 가능한 오디오 스트림 없음"; "No audio track found" = "오디오 트랙을 찾을 수 없음"; "Photo" = "사진"; "Photo quality" = "사진 품질"; -"Raw image (no audio, no video)" = "원시 이미지 (오디오 없음, 비디오 없음)"; "silent" = "무음"; "Use highest resolution available" = "사용 가능한 최고 해상도 사용"; "Video quality" = "비디오 품질"; "Which quality to download" = "어떤 품질로 다운로드할지 선택하세요"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "'%@'은(는) 이 FFmpegKit 빌드에 없습니다 — 대신 하드웨어 h264를 사용합니다."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10비트 4:2:0. 약 2배 느림, 더 매끄러운 그라데이션."; +"10-bit colour. Slower, smoother gradients. Software only." = "10비트 색상. 더 느림, 더 매끄러운 그라데이션. 소프트웨어 전용."; +"1080p30 baseline." = "1080p30 기준."; +"4K30 baseline." = "4K30 기준."; +"8-bit 4:2:0. Universal default." = "8비트 4:2:0. 범용 기본값."; +"8-bit 4:2:2 chroma. Niche playback." = "8비트 4:2:2 크로마. 일부 재생용."; +"8-bit 4:2:2 chroma. Software only." = "8비트 4:2:2 크로마. 소프트웨어 전용."; +"8-bit 4:4:4 chroma. Software only." = "8비트 4:4:4 크로마. 소프트웨어 전용."; +"8-bit 4:4:4 full chroma. Niche playback." = "8비트 4:4:4 풀 크로마. 일부 재생용."; +"8-bit. Best for modern devices." = "8비트. 최신 기기에 적합."; +"Advanced encoding" = "고급 인코딩"; +"Advanced encoding settings" = "고급 인코딩 설정"; +"Archival quality." = "보관용 품질."; +"Audio bitrate" = "오디오 비트레이트"; +"Audio channels" = "오디오 채널"; +"Audio codec" = "오디오 코덱"; +"Audio conversion failed" = "오디오 변환 실패"; +"Audio sample rate" = "오디오 샘플레이트"; +"Balanced. libx264 default." = "균형. libx264 기본값."; +"Best practical quality per bit." = "비트당 최상의 실용 품질."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "비트레이트, 채널, 샘플레이트는 코덱이 AAC(재인코딩)일 때만 적용됩니다."; +"Cartoons / anime." = "만화 / 애니메이션."; +"Cinematic. Smaller files." = "영화 같은 느낌. 더 작은 파일."; +"Codec" = "코덱"; +"Container" = "컨테이너"; +"Copy (passthrough)" = "복사 (패스스루)"; +"CRF quality" = "CRF 품질"; +"Downloading video…" = "동영상 다운로드 중…"; +"Easier to play back on weak devices." = "성능이 낮은 기기에서 재생하기 쉬움."; +"Encoder unavailable" = "인코더 사용 불가"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "예: 8M, 12M, 25M, 4500k. 자동으로 하려면 비워 두세요."; +"Failed to download video" = "동영상 다운로드 실패"; +"Fast, fixed-bitrate, GPU-accelerated." = "빠름, 고정 비트레이트, GPU 가속."; +"Fastest, worst compression." = "가장 빠름, 압축 최악."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "Faststart는 MP4 인덱스를 앞으로 옮겨 파일이 완전히 버퍼링되기 전에 재생을 시작할 수 있게 합니다. 메타데이터 제거는 파일에서 소스 태그(생성 날짜, 핸들러, 인코더)를 제거합니다."; +"FFmpeg documentation" = "FFmpeg 문서"; +"FFmpeg mux failed" = "FFmpeg 먹싱 실패"; +"Frame rate" = "프레임 레이트"; +"H.264 level" = "H.264 레벨"; +"H.264 profile" = "H.264 프로파일"; +"Hardware (VideoToolbox)" = "하드웨어 (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "하드웨어 (VideoToolbox)는 yuv420p만 지원합니다 — '%@'은(는) 무시되었습니다. 사용하려면 소프트웨어 (libx264)로 전환하세요."; +"Keep original audio. Fast." = "원본 오디오 유지. 빠름."; +"Keep the source frame rate." = "원본 프레임 레이트 유지."; +"Let the encoder pick." = "인코더가 선택하도록 함."; +"Live-action video." = "실사 동영상."; +"Lossless. Huge files." = "무손실. 매우 큰 파일."; +"Low-latency streaming." = "저지연 스트리밍."; +"Manual ffmpeg controls in place of Encoding speed." = "인코딩 속도 대신 수동 ffmpeg 컨트롤."; +"Marginal gain, huge time cost." = "미미한 향상, 막대한 시간 소요."; +"Max resolution" = "최대 해상도"; +"Mono" = "모노"; +"No tuning. Default." = "튜닝 없음. 기본값."; +"None" = "없음"; +"Pixel format" = "픽셀 포맷"; +"Pixel format ignored" = "픽셀 포맷 무시됨"; +"Preserve film grain." = "필름 그레인 유지."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "프리셋과 튠은 소프트웨어 (libx264)에만 적용됩니다. 프로파일을 픽셀 포맷과 짝지으세요: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. 불일치 시 자동으로 다운컨버트됩니다. 하드웨어는 항상 yuv420p를 사용합니다."; +"Re-encode. Use when source is opus or unsupported." = "재인코딩. 소스가 opus이거나 지원되지 않을 때 사용."; +"Reset advanced encoding" = "고급 인코딩 초기화"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "동영상 비트레이트를 설정하면 소프트웨어가 고정 비트레이트로 전환되어 CRF를 무시합니다. CRF를 사용하려면 비워 두세요. 하드웨어는 비트레이트를 사용합니다."; +"Slideshow-like content." = "슬라이드쇼 같은 콘텐츠."; +"Slower, better compression per bit." = "더 느림, 비트당 더 나은 압축."; +"Smaller, visible artefacts." = "더 작음, 눈에 띄는 화질 손상."; +"Software (libx264)" = "소프트웨어 (libx264)"; +"Standard 8-bit." = "표준 8비트."; +"Stereo" = "스테레오"; +"Streaming default." = "스트리밍 기본값."; +"Strip metadata" = "메타데이터 제거"; +"Top of AAC." = "최고급 AAC."; +"Tune" = "튠"; +"Unknown error" = "알 수 없는 오류"; +"Very high quality." = "매우 높은 품질."; +"Video bitrate" = "동영상 비트레이트"; +"Video codec" = "동영상 코덱"; +"Visually lossless. RyukGram default." = "시각적으로 무손실. RyukGram 기본값."; +"Widest compatibility, no B-frames." = "가장 넓은 호환성, B 프레임 없음."; +"Worst quality." = "최저 품질."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "길게 누르기 제스처"; +"Inserts a button in the profile navigation header" = "프로필 내비게이션 헤더에 버튼을 삽입합니다"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "프로필 헤더에 복사, 사진 보기, 공유, 저장, 프로필 정보 항목이 있는 RyukGram 작업 버튼을 추가합니다. 탭하면 기본적으로 메뉴가 열립니다. 메뉴 구성에서 탭 동작을 변경하세요."; +"Configure menu" = "메뉴 구성"; +"Reorder, enable/disable, set default tap, show date" = "순서 변경, 켜기/끄기, 기본 탭 설정, 날짜 표시"; +"Reorder, enable/disable, set default tap" = "순서 변경, 켜기/끄기, 기본 탭 설정"; +"RyukGram profile actions" = "RyukGram 프로필 작업"; +"Reorder sections" = "섹션 순서 변경"; +"Drag the ≡ handle to reorder sections." = "≡ 핸들을 끌어 섹션 순서를 바꾸세요."; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "≡ 핸들을 끌어 순서를 바꾸세요. 행을 끄면 메뉴에서 숨겨집니다. 섹션을 서브메뉴로 표시하면 해당 작업이 단일 항목 뒤로 접힙니다."; +"Show as submenu" = "서브메뉴로 표시"; +"Collapse this section's actions behind a single entry" = "이 섹션의 작업을 단일 항목 뒤로 접기"; +"Configure: %@" = "구성: %@"; +"What happens on a single tap. Long-press always opens the full menu." = "한 번 탭했을 때의 동작입니다. 길게 누르면 항상 전체 메뉴가 열립니다."; +"Reset to defaults" = "기본값으로 재설정"; +"This will restore the default sections, order, and toggles for this menu." = "이 메뉴의 기본 섹션, 순서, 토글이 복원됩니다."; +"Audio & visibility" = "오디오 및 표시"; +"DM disappearing media" = "DM 사라지는 미디어"; +"Bulk download" = "일괄 다운로드"; +"Feed settings" = "피드 설정"; +"Reels settings" = "릴스 설정"; +"Profile settings" = "프로필 설정"; +"Stories settings" = "스토리 설정"; +"Copy ID" = "ID 복사"; +"Copy Info" = "정보 복사"; +"Copy all info" = "모든 정보 복사"; +"Copy media URL" = "미디어 URL 복사"; +"Copy profile link" = "프로필 링크 복사"; +"Copy username" = "아이디 복사"; +"Download" = "다운로드"; +"Download to Gallery" = "갤러리에 다운로드"; +"Download all to Gallery" = "갤러리에 모두 다운로드"; +"Exclude/include user" = "사용자 제외/포함"; +"Mute / unmute audio" = "오디오 음소거/해제"; +"Save picture to Gallery" = "갤러리에 사진 저장"; +"Share picture" = "사진 공유"; +"View picture" = "사진 보기"; +"Bio" = "소개"; +"ID" = "ID"; +"Info" = "정보"; +"Profile info" = "프로필 정보"; +"Profile link" = "프로필 링크"; +"Picture not found" = "사진을 찾을 수 없음"; +"Private profile" = "비공개 프로필"; +"Profile unavailable" = "프로필을 사용할 수 없음"; +"Public profile" = "공개 프로필"; +"Username" = "아이디"; +"Followers: %@" = "팔로워: %@"; +"Following: %@" = "팔로잉: %@"; +"Copied %@" = "%@ 복사됨"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(알 수 없음)"; +"All files deleted" = "모든 파일 삭제됨"; +"Browsing" = "탐색"; +"By source" = "출처별"; +"By type" = "유형별"; +"By user" = "사용자별"; +"Clear filters" = "필터 지우기"; +"Comment" = "댓글"; +"Create" = "만들기"; +"Create & Move" = "만들고 이동"; +"Delete %@?" = "%@을(를) 삭제할까요?"; +"Delete all files" = "모든 파일 삭제"; +"Delete all images" = "모든 이미지 삭제"; +"Delete all videos" = "모든 동영상 삭제"; +"Delete by user" = "사용자별 삭제"; +"Delete DM media" = "DM 미디어 삭제"; +"Delete feed posts" = "피드 게시물 삭제"; +"Delete files" = "파일 삭제"; +"Delete Folder" = "폴더 삭제"; +"Delete from Gallery?" = "갤러리에서 삭제할까요?"; +"Delete profile pictures" = "프로필 사진 삭제"; +"Delete reels" = "릴스 삭제"; +"Delete selected" = "선택 항목 삭제"; +"Delete Selected Files?" = "선택한 파일을 삭제하시겠습니까?"; +"Delete stories" = "스토리 삭제"; +"Delete thumbnails" = "썸네일 삭제"; +"Deleted from Gallery" = "갤러리에서 삭제됨"; +"Deleted selected files" = "선택한 파일이 삭제됨"; +"Deselect All" = "전체 선택 해제"; +"DM media deleted" = "DM 미디어 삭제됨"; +"DMs" = "DM"; +"Each user appears as a folder next to your real folders." = "각 사용자가 실제 폴더 옆에 폴더로 표시됩니다."; +"Each user gets a labelled section in the grid/list." = "각 사용자가 그리드/목록에 별도의 섹션을 가집니다."; +"Enable gallery" = "갤러리 활성화"; +"Failed" = "실패"; +"Failed to delete" = "삭제 실패"; +"Favorite" = "즐겨찾기"; +"Favorite selected" = "선택 항목 즐겨찾기"; +"Favorites only" = "즐겨찾기만"; +"Feed posts deleted" = "피드 게시물 삭제됨"; +"Files deleted" = "파일 삭제됨"; +"Flat list. No grouping." = "단일 목록. 그룹 없음."; +"Folder name" = "폴더 이름"; +"Folders" = "폴더"; +"From RyukGram Gallery" = "RyukGram 갤러리의 오디오"; +"Gallery" = "갤러리"; +"Gallery only" = "갤러리만"; +"Gallery save mode" = "갤러리 저장 모드"; +"Gallery Settings" = "갤러리 설정"; +"GIFs" = "GIF"; +"Grid view" = "그리드 보기"; +"Group by user" = "사용자별 그룹화"; +"Hold DM tab to open gallery" = "DM 탭을 길게 눌러 갤러리 열기"; +"Images" = "이미지"; +"Images deleted" = "이미지 삭제됨"; +"Images first" = "이미지 먼저"; +"item" = "항목"; +"items" = "항목"; +"Largest first" = "큰 파일부터"; +"List view" = "목록 보기"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "하단 탭바의 받은편지함 버튼을 길게 눌러 RyukGram 갤러리를 엽니다"; +"Manage" = "관리"; +"More" = "더보기"; +"Move selected" = "선택 항목 이동"; +"Move to Folder" = "폴더로 이동"; +"Name A-Z" = "이름 A-Z"; +"Name Z-A" = "이름 Z-A"; +"New Folder" = "새 폴더"; +"New folder…" = "새 폴더…"; +"Newest first" = "최신순"; +"No files in Gallery" = "갤러리에 파일이 없습니다"; +"No files to delete" = "삭제할 파일 없음"; +"No matching files" = "일치하는 파일 없음"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "RyukGram을 통해 다운로드한 미디어의 기기 내 라이브러리입니다. 저장 모드는 '사진 앱에 다운로드'가 실제로 어디에 쓸지 선택합니다."; +"Open" = "열기"; +"Open Original Post" = "원본 게시물 열기"; +"Options" = "옵션"; +"Other" = "기타"; +"Photos + Gallery" = "사진 앱 + 갤러리"; +"Photos only" = "사진 앱만"; +"Profile pictures deleted" = "프로필 사진 삭제됨"; +"Reels deleted" = "릴스 삭제됨"; +"Rename" = "이름 변경"; +"Rename Folder" = "폴더 이름 변경"; +"Root" = "루트"; +"Save media from the preview screen\nto see it here." = "미리 보기 화면에서 미디어를 저장하면\n여기에 표시됩니다."; +"Saved %lu items to Gallery" = "갤러리에 %lu개의 항목이 저장됨"; +"Saved to Gallery" = "갤러리에 저장됨"; +"Saving to Gallery" = "갤러리에 저장 중..."; +"Search users" = "사용자 검색"; +"Sections" = "섹션"; +"Select All" = "전체 선택"; +"Share" = "공유"; +"Share selected" = "선택 항목 공유"; +"Show favorites at top" = "즐겨찾기를 상단에 표시"; +"Show gallery entries in download menus and unlock the gallery button" = "다운로드 메뉴에 갤러리 항목을 표시하고 갤러리 버튼을 활성화합니다"; +"Smallest first" = "작은 파일부터"; +"Source" = "출처"; +"Source user" = "출처 사용자"; +"Storage" = "저장 공간"; +"Stories deleted" = "스토리 삭제됨"; +"Story" = "스토리"; +"The original content may no longer exist." = "원본 콘텐츠가 더 이상 존재하지 않을 수 있습니다."; +"This folder contains %ld file(s). They will be moved to the parent folder." = "이 폴더에는 %ld개의 파일이 있습니다. 상위 폴더로 이동됩니다."; +"This folder is empty." = "이 폴더는 비어 있습니다."; +"This will permanently remove %ld file%@ from the gallery." = "갤러리에서 %ld개 파일%@을(를) 영구적으로 제거합니다."; +"This will permanently remove %ld file(s)." = "%ld개의 파일이 영구적으로 제거됩니다."; +"This will permanently remove this file from the gallery." = "이 파일이 갤러리에서 영구적으로 제거됩니다."; +"Thumb" = "썸네일"; +"Thumbnails deleted" = "썸네일 삭제됨"; +"to Gallery" = "갤러리에"; +"Total files" = "전체 파일"; +"Total size" = "전체 크기"; +"Type" = "유형"; +"Unable to open original post" = "원본 게시물을 열 수 없음"; +"Unable to open profile" = "프로필을 열 수 없음"; +"Unfavorite" = "즐겨찾기 해제"; +"Unknown user" = "알 수 없는 사용자"; +"User files deleted" = "사용자 파일 삭제됨"; +"Videos" = "동영상"; +"Videos deleted" = "동영상 삭제됨"; +"Videos first" = "동영상 먼저"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "켜면 현재 정렬 및 폴더 컨텍스트 내에서 즐겨찾기가 다른 파일보다 위에 고정됩니다."; +"Where 'Download to Photos' actually writes when gallery is on" = "갤러리가 켜져 있을 때 '사진 앱에 다운로드'가 실제로 쓰는 위치"; +"Yesterday" = "어제"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "홈 단축 버튼"; +"Show the extra button on the home top bar" = "홈 상단 바의 추가 버튼 구성"; +"Auto" = "자동"; +"Icon" = "아이콘"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "≡ 핸들을 끌어 순서를 바꿉니다. 행을 끄면 해당 대상이 숨겨집니다. 한 동작이 켜져 있으면 탭으로 바로 실행하고, 두 개 이상이면 탭하면 메뉴를 표시합니다."; +"Changelog" = "변경 사항"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "홈 상단 바의 게시물 작성 + 버튼 옆에 추가 단축 버튼을 표시합니다."; +"All buttons" = "모든 버튼"; +"Choose icon, reorder actions, and enable menu items" = "아이콘 선택, 작업 순서 변경, 메뉴 항목 활성화"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "홈 상단 바에 표시되는 아이콘을 선택합니다. 자동은 작업이 하나만 활성화된 경우 선택된 작업 아이콘을 사용합니다."; +"Configure button" = "버튼 구성"; +"Global Action Icons" = "전역 작업 아이콘"; +"Interface" = "인터페이스"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "특정 버튼의 아이콘을 재정의합니다. 기본값으로 둔 버튼은 위의 공유 아이콘을 따릅니다."; +"Per button" = "버튼별"; +"Show home shortcut button" = "홈 단축 버튼 표시"; +"Tab bar" = "탭 바"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "앱 내 통합 알림. 스타일, 위치, 작업별 라우팅을 선택하세요."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "알림"; +"Appearance" = "모양"; +"Routing" = "라우팅"; +"Style" = "스타일"; +"Position" = "위치"; +"Stack size" = "스택 크기"; +"Duration" = "지속 시간"; +"Default surface" = "기본 화면"; +"Enable notifications" = "알림 활성화"; +"Haptic feedback" = "햅틱 피드백"; +"Preview pill" = "알약 미리보기"; +"Preview download pill" = "다운로드 알약 미리보기"; +"Preview loading pill" = "로딩 알약 미리보기"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "마스터 스위치. 끄면 어떤 알림도 표시되지 않습니다."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "앱 내 통합 알림. 모든 RyukGram 피드백이 여기를 거칩니다."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal: 단순 블러. Colorful: 톤별 색조. Glow: 컬러 후광. Island: 다이내믹 아일랜드 캡슐."; +"Top slides down, bottom slides up." = "위는 아래로, 아래는 위로 슬라이드합니다."; +"How many pills can show at once before queueing." = "대기열로 보내기 전에 동시에 표시할 알약 수."; +"Multiplies how long toasts stay on screen." = "토스트가 화면에 머무르는 시간을 곱합니다."; +"Vibration on success/error pills." = "성공/오류 알약에서 진동."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "토스트형 작업은 알약 또는 IG 기본 토스트 중 선택할 수 있습니다. 작업별 재정의는 아래에 있습니다."; +"What to use when an action doesn't have its own override." = "작업에 자체 재정의가 없을 때 사용할 항목입니다."; +"Tap to cycle: info → success → warning → error" = "탭하여 순환: 정보 → 성공 → 경고 → 오류"; +"Tap to cycle between success and failure" = "성공과 실패 사이를 탭하여 전환"; +"Progress UI — pill or off only." = "진행 UI — 알약 또는 끄기만 가능."; +"Minimal" = "미니멀"; +"Colorful" = "컬러풀"; +"Glow" = "글로우"; +"Island" = "아일랜드"; +"Top" = "위"; +"Bottom" = "아래"; +"Custom pill" = "사용자 지정 알약"; +"IG native toast" = "IG 기본 토스트"; +"Short" = "짧음"; +"Normal" = "보통"; +"Long" = "길게"; +"Very long" = "매우 길게"; +"Downloads & saving" = "다운로드 및 저장"; +"Copy to clipboard" = "클립보드에 복사"; +"Read receipts & seen" = "읽음 확인 및 보임"; +"Block, exclude & pin" = "차단, 제외 및 고정"; +"Stories & messages" = "스토리 및 메시지"; +"Voice & audio" = "음성 및 오디오"; +"Errors" = "오류"; +"Download progress" = "다운로드 진행"; +"Bulk download progress" = "대량 다운로드 진행"; +"Copied post / reel URL" = "게시물 / 릴스 URL 복사됨"; +"Copied comment text" = "댓글 텍스트 복사됨"; +"Copied note text" = "노트 텍스트 복사됨"; +"Copied profile info" = "프로필 정보 복사됨"; +"Copied audio URL" = "오디오 URL 복사됨"; +"Copied quality picker URL" = "품질 선택기 URL 복사됨"; +"Copied unlocked password" = "잠금 해제된 비밀번호 복사됨"; +"Copied description text" = "설명 텍스트 복사됨"; +"DM seen / read receipts" = "DM 보임 / 읽음 확인"; +"Story seen / read receipts" = "스토리 보임 / 읽음 확인"; +"User blocked / unblocked" = "사용자 차단 / 차단 해제"; +"Chat added / removed from exclude" = "채팅 제외 추가 / 제거"; +"Story user added / removed from exclude" = "스토리 사용자 제외 추가 / 제거"; +"Share-sheet recipient pinned" = "공유 시트 수신자 고정됨"; +"Unsent message detected" = "전송 취소된 메시지 감지됨"; +"Live comments toggled" = "라이브 댓글 전환됨"; +"Custom GIF sent" = "사용자 지정 GIF 전송됨"; +"Voice DM sent" = "음성 DM 전송됨"; +"Audio extraction status" = "오디오 추출 상태"; +"Profile Analyzer complete" = "프로필 분석기 완료"; +"Media extraction failed" = "미디어 추출 실패"; +"Permission denied" = "권한 거부됨"; +"Validation error" = "유효성 검사 오류"; +"Network / API error" = "네트워크 / API 오류"; +"Action error fallback" = "동작 오류 대체"; +"Invalid clipboard link" = "잘못된 클립보드 링크"; +"Experimental flag warning" = "실험 플래그 경고"; +"Settings action confirmed" = "설정 작업 확인됨"; +"Cache clearing progress" = "캐시 지우기 진행"; +"Other / uncategorized" = "기타 / 미분류"; +"Comment copied" = "댓글 복사됨"; +"FFmpeg log copied" = "FFmpeg 로그 복사됨"; +"GIF inserted" = "GIF 삽입됨"; +"Story marked as seen" = "스토리가 보임으로 표시됨"; +"Saved" = "저장됨"; +"Tap to retry" = "재시도하려면 탭"; +"Looks great" = "멋져 보입니다"; +"Something broke" = "문제가 발생했습니다"; +"Just so you know" = "참고하세요"; +"Success preview" = "성공 미리보기"; +"Error preview" = "오류 미리보기"; +"Warning preview" = "경고 미리보기"; +"Info preview" = "정보 미리보기"; +"Preview download…" = "다운로드 미리보기…"; +"Colors" = "색상"; +"+ Add new language" = "+ 새 언어 추가"; +"Each chat can override this in the list" = "각 채팅은 목록에서 개별 설정을 적용할 수 있습니다"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "활성화하면 Instagram 위치 요청이 선택한 가짜 위치를 반환합니다. 지도 버튼은 친구 지도에 빠른 바로가기를 추가합니다."; +"Tap a preset to make it active. Swipe left to delete." = "프리셋을 탭하여 활성화하세요. 왼쪽으로 밀어 삭제하세요."; +"Override Instagram location reads." = "Instagram 위치 읽기를 재정의합니다."; +"Show the quick button in Friends Map." = "친구 지도에 빠른 버튼 표시."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "절대 날짜 표기 방식을 선택하세요. “기본값”은 IG의 형식을 그대로 둡니다."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "임계값보다 최근 날짜는 상대 시간으로 표시됩니다. 오래된 날짜는 절대 형식으로 돌아갑니다. “날짜와 결합”은 둘 다 표시합니다 — “2026년 1월 5일 (2h)” 또는 “2h – 2026년 1월 5일”."; +"Compact style" = "간결 스타일"; +"Example: “1h” instead of “1 hour ago”" = "예: “1시간 전” 대신 “1h”"; +"Example: “Jan 5, 2026 (2h)”" = "예: “Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "iOS 오디오 API가 이 파일을 처리할 수 없습니다%@%@\n\nInstagram에 그대로 보내거나 지원 이슈를 열어보세요."; +"Combine with date" = "날짜와 결합"; +"Absolute then relative" = "절대 다음 상대"; +"Relative – absolute" = "상대 – 절대"; +"Relative when young, absolute when older." = "최근이면 상대, 오래되면 절대."; +"Example: “2h – Jan 5, 2026”" = "예: “2h – 2026년 1월 5일”"; diff --git a/src/Localization/Resources/pt-BR.lproj/Localizable.strings b/src/Localization/Resources/pt-BR.lproj/Localizable.strings new file mode 100644 index 0000000..2db111a --- /dev/null +++ b/src/Localization/Resources/pt-BR.lproj/Localizable.strings @@ -0,0 +1,2202 @@ +/* + * RyukGram — Localizable.strings (English source of truth) + * ------------------------------------------------------------------------- + * + * Every user-facing string in RyukGram goes through the macro + * SCILocalized(@"English text here") + * in the Objective-C source. The argument is BOTH the lookup key and the + * English fallback, so if a translation is missing the user still sees + * clean English — nothing ever breaks. + * + * + * HOW TO ADD A NEW LANGUAGE + * ------------------------------------------------------------------------- + * + * 1. Copy this file into a new folder named after the language code: + * src/Localization/Resources/.lproj/Localizable.strings + * e.g. ar.lproj (Arabic) + * es.lproj (Spanish) + * fr.lproj (French) + * 2. Translate the RIGHT-hand side of every `"key" = "value";` line. + * Do NOT touch the left-hand side — that is the lookup key and must + * stay identical to the English version, otherwise the app will never + * find your translation. + * 3. Keep every format specifier (%@, %lu, %d, %lld, %1$@, …) exactly + * as-is, in the same order. If you need to reorder them, switch to + * positional specifiers (%1$@ %2$lu). + * 4. Keep embedded quotes escaped with a backslash: \" — and newlines + * as \n. + * 5. Open a pull request at https://github.com/faroukbmiled/RyukGram/pulls + * so we can ship the language in the next release. + * + * + * HOW TO ADD A NEW STRING IN CODE + * ------------------------------------------------------------------------- + * + * Just wrap the English text with SCILocalized(...) in the .m / .x / .xm + * file — the helper resolves to the English text automatically when no + * translation exists. Then add the same English text as BOTH the key and + * the value inside the matching section below, e.g. + * + * "Download all items" = "Download all items"; + * + * Translators copy that line into their own .lproj and translate only the + * right-hand side. + * + * + * FILE FORMAT NOTES + * ------------------------------------------------------------------------- + * + * - UTF-8, LF line endings. + * - Slash-star block comments and double-slash line comments both work. + * - DO NOT nest one slash-star block comment inside another — the + * parser will close the outer block at the first inner close marker + * and every lookup in the file will silently fail. + * - Keys and values are both quoted; every line ends with a semicolon. + */ + +////////////////////////////////////////////////////////////////////////////// +// CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // +// Shown on the root Settings screen: title, search bar, the globe language // +// menu, and the one-time welcome alert. These use dotted keys (settings.*) // +// and are hand-authored rather than extracted from English source. // +////////////////////////////////////////////////////////////////////////////// + +"settings.firstrun.message" = "No futuro: Segure pressionado as três linhas no canto superior direito da sua página de perfil para reabrir as configurações do RyukGram."; +"settings.firstrun.ok" = "Entendi!"; +"settings.firstrun.title" = "Informações das Configurações RyukGram"; +"settings.language.english_only" = "O RyukGram atualmente vem apenas em inglês. Outros idiomas estão configurados e aguardando traduções — ajude a traduzir para o seu idioma seguindo o guia no README."; +"settings.language.help_translate" = "Ajude a traduzir"; +"settings.language.system" = "Padrão do sistema"; +"settings.language.title" = "Idioma"; +"settings.language.restart.message" = "Ajustes atualizados. Reinicie o Instagram para que menus, botões e avisos no resto do app também adotem o novo idioma."; +"settings.language.restart.title" = "Reinicie para aplicar em todo lugar"; +"settings.language.available" = "Disponíveis"; +"settings.results.many" = "%lu resultados"; +"settings.results.one" = "%lu resultado"; +"settings.search.placeholder" = "Buscar configurações"; +"settings.title" = "Configurações do RyukGram"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL // +// Settings → General tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button icon" = "Ícone do botão de ação"; +"Adds a copy option to the comment long-press menu" = "Adiciona uma opção de copiar ao menu de manter pressionado nos comentários"; +"Adds a download button next to share/save on the reels audio page" = "Adiciona um botão de download ao lado de compartilhar/salvar na página de áudio dos reels"; +"Adds download, copy and expand options to GIF and image comments" = "Adiciona opções de download, cópia e expansão para comentários em GIF e imagem"; +"Allow video in photo sticker" = "Permitir vídeo no sticker de foto"; +"Alternate icons are not supported" = "Ícones alternativos não são suportados"; +"Anonymous live viewing" = "Visualização anônima de lives"; +"App Icon" = "Ícone do app"; +"Audio page" = "Página de áudio"; +"Auto-reveals sensitive media" = "Revela automaticamente mídia sensível"; +"Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "Bloqueia a contagem de visualizações para que o transmissor não veja você — você também não verá a contagem de visualizações"; +"Browser" = "Navegador"; +"Change the app icon from the bundled icons" = "Altere o ícone do app entre os ícones incluídos"; +"Choose Icon" = "Escolher ícone"; +"Choose which surfaces hide ads" = "Escolha quais áreas ocultam anúncios"; +"Comments" = "Comentários"; +"Commerce carousels in comments and shoppable CTAs on reels" = "Carrosséis de compras nos comentários e CTAs de compra nos reels"; +"Copy comment text" = "Copiar texto do comentário"; +"Copy description" = "Copiar descrição"; +"Copy description text fields by long-pressing on them" = "Copie campos de texto de descrição pressionando-os e segurando"; +"Custom music sticker color" = "Cor personalizada do sticker de música"; +"Date format" = "Formato de data"; +"Disable app haptics" = "Desativar resposta tátil do app"; +"Disables haptics/vibrations within the app" = "Desativa respostas táteis/vibrações dentro do aplicativo"; +"Do not save recent searches" = "Não salvar buscas recentes"; +"Download GIF & image comments" = "Baixar comentários em GIF e imagem"; +"Download image" = "Baixar imagem"; +"Embed domain" = "Domínio de incorporação"; +"Embed domain: %@" = "Domínio de incorporação: %@"; +"Enable liquid glass buttons" = "Ativar botões de vidro líquido"; +"Enable liquid glass surfaces" = "Ativar vidro líquido"; +"Enable teen app icons" = "Ativar ícones de app estilo teen"; +"Enables experimental liquid glass buttons" = "Ativa botões experimentais de vidro líquido"; +"Enables liquid glass tab bar, floating navigation, and other UI elements" = "Ativa barra de abas de vidro líquido, navegação flutuante e outros elementos da interface"; +"End" = "Fim"; +"Experimental features" = "Recursos experimentais"; +"Explore & search" = "Explorar e buscar"; +"Failed to change icon" = "Falha ao alterar o ícone"; +"Fixed" = "Fixo"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "Fixo impede que encolha. Ocultar faz desaparecer ao rolar para baixo"; +"Focus/distractions" = "Foco/distrações"; +"General" = "Geral"; +"Gradient color" = "Cor em gradiente"; +"Hide ads" = "Ocultar anúncios"; +"Hide explore posts grid" = "Ocultar grade de posts do explorar"; +"Hide friends map" = "Ocultar mapa de amigos"; +"Hide Meta AI" = "Ocultar Meta AI"; +"Hide metrics" = "Ocultar métricas"; +"Hide notes tray" = "Ocultar bandeja de notas"; +"Hide on scroll" = "Ocultar ao rolar"; +"Hide TestFlight popup" = "Ocultar pop-up do TestFlight"; +"Hide trending searches" = "Ocultar buscas em alta"; +"Hide UI on capture" = "Ocultar interface na captura"; +"Hides all suggested users for you to follow, outside your feed" = "Oculta todos os usuários sugeridos para você seguir, fora do seu feed"; +"Hides like/comment/share counts on posts and reels" = "Oculta as contagens de curtidas/comentários/compartilhamentos em posts e reels"; +"Hides the friends map icon in the notes tray" = "Oculta o ícone do mapa de amigos na bandeja de notas"; +"Hides the grid of suggested posts on the explore/search tab" = "Oculta a grade de posts sugeridos na aba explorar/busca"; +"Hides the meta ai buttons/functionality within the app" = "Oculta os botões/funcionalidade do Meta AI dentro do app"; +"Hides the notes tray in the DM inbox" = "Oculta a bandeja de notas na caixa de entrada de DMs"; +"Hides the suggested broadcast channels in direct messages" = "Oculta os canais de transmissão sugeridos nas mensagens diretas"; +"Hides the trending searches under the explore search bar" = "Oculta as buscas em alta abaixo da barra de busca do explorar"; +"Hold down on the Instagram logo to change the app icon" = "Segure o logo do Instagram para mudar o ícone do app"; +"Lets the photo sticker picker show videos too, not just photos" = "Permite que o seletor de stickers de foto mostre vídeos também, não só fotos"; +"Liquid glass tab bar" = "Barra de abas de vidro líquido"; +"Live" = "Ao vivo"; +"Long press on the eyedropper tool in stories to customize the text color more precisely" = "Mantenha pressionado o conta-gotas nos stories para personalizar a cor do texto com mais precisão"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "Mantenha pressionada a roda de cores em um sticker de música ou letras para escolher qualquer cor sólida ou em gradiente"; +"Long-press the heart button in a live to hide or show the comments" = "Mantenha pressionado o botão de coração em uma live para ocultar ou mostrar os comentários"; +"Long-press the search tab to open a copied Instagram link" = "Mantenha pressionada a aba de busca para abrir um link do Instagram copiado"; +"Master switch. When off, all per-surface toggles below are ignored." = "Interruptor principal. Quando desativado, todas as opções por área abaixo são ignoradas."; +"No suggested chats" = "Sem chats sugeridos"; +"No suggested users" = "Sem usuários sugeridos"; +"Notes" = "Notas"; +"Open app icon picker" = "Abrir seletor de ícone do app"; +"Open link from clipboard" = "Abrir link da área de transferência"; +"Open links in external browser" = "Abrir links no navegador externo"; +"Opens links in Safari instead of Instagram's in-app browser" = "Abre links no Safari em vez do navegador interno do Instagram"; +"Privacy" = "Privacidade"; +"Removes ads across enabled surfaces" = "Remove anúncios nas áreas ativadas"; +"Removes igsh, utm_source, and other tracking parameters from shared links" = "Remove igsh, utm_source e outros parâmetros de rastreamento de links compartilhados"; +"Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "Remove redirecionamentos de rastreamento do Instagram (l.instagram.com) e parâmetros UTM/fbclid de URLs"; +"Replace domain in shared links" = "Substituir domínio em links compartilhados"; +"Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "Substitui os carimbos de data/hora relativos do IG (\"há 3 dias\") por um formato personalizado. Alterne em quais áreas ele se aplica dentro do seletor."; +"Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "Reescreve links copiados/compartilhados para usar um domínio amigável para pré-visualizações no Discord, Telegram, etc."; +"Search bars will no longer save your recent searches" = "As barras de busca não salvarão mais suas buscas recentes"; +"Selected" = "Selecionado"; +"Sharing" = "Compartilhamento"; +"Shopping" = "Compras"; +"Skip sensitive content covers" = "Pular avisos de conteúdo sensível"; +"Solid color" = "Cor sólida"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "Publicações patrocinadas nos feeds principal, contextual, de vídeo e encadeado"; +"Sponsored posts on the explore grid" = "Publicações patrocinadas na grade do explorar"; +"Sponsored reels in the sundial feed" = "Reels patrocinados no feed sundial"; +"Start" = "Início"; +"Story ads and sponsored entries in the story tray" = "Anúncios de stories e entradas patrocinadas na bandeja de stories"; +"Strip tracking from links" = "Remover rastreamento de links"; +"Strip tracking params" = "Remover parâmetros de rastreamento"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "Suprime o aviso \"It's time to update Instagram Beta\""; +"Tap to apply" = "Toque para aplicar"; +"The selected icon will be saved and shown here the next time you open this page." = "O ícone selecionado será salvo e exibido aqui na próxima vez que você abrir esta página."; +"Toggle live comments" = "Alternar comentários ao vivo"; +"Use detailed color picker" = "Usar seletor de cores detalhado"; +"Used across feed, stories, reels, and DMs." = "Usado em feed, stories, reels e DMs"; + +////////////////////////////////////////////////////////////////////////////// +// DATE FORMAT // +// Settings → Date format tab // +////////////////////////////////////////////////////////////////////////////// + +"%ld day ago" = "há %ld dia"; +"%ld days ago" = "há %ld dias"; +"%ld hour ago" = "há %ld hora"; +"%ld hours ago" = "há %ld horas"; +"%ld minute ago" = "há %ld minuto"; +"%ld minutes ago" = "há %ld minutos"; +"%ld week ago" = "há %ld semana"; +"%ld weeks ago" = "há %ld semanas"; +"%ldd" = "%ldd"; +"%ldh" = "%ldh"; +"%ldm" = "%ldm"; +"%ldw" = "%ldsem"; +"Alternate" = "Alternativo"; +"Always ask" = "Sempre perguntar"; +"Balanced" = "Equilibrado"; +"Block all" = "Bloquear todos"; +"Block selected" = "Bloquear selecionados"; +"Button" = "Botão"; +"Classic" = "Clássico"; +"Date format — %@" = "Formato de data — %@"; +"Default" = "Padrão"; +"Disabled" = "Desativado"; +"Download and share" = "Baixar e compartilhar"; +"Download to Photos" = "Baixar para Fotos"; +"Enabled" = "Ativado"; +"Expand" = "Expandir"; +"Explore" = "Explorar"; +"Fast" = "Rápido"; +"Feed" = "Feed"; +"Feed posts" = "Publicações do feed"; +"High" = "Alta"; +"Inbox" = "Caixa de entrada"; +"just now" = "agora mesmo"; +"Low" = "Baixa"; +"Max" = "Máx"; +"Medium" = "Média"; +"Mute/Unmute" = "Silenciar/ativar som"; +"Notes, comments, stories" = "Notas, comentários, stories"; +"now" = "agora"; +"Open menu" = "Abrir menu"; +"Pause/Play" = "Pausar/Reproduzir"; +"Profile" = "Perfil"; +"Quality" = "Qualidade"; +"Reels" = "Reels"; +"Requires restart" = "Requer reiniciar"; +"Save to Photos" = "Salvar no Fotos"; +"Share sheet" = "Menu de compartilhamento"; +"Standard" = "Padrão"; +"Toggle" = "Alternar"; + +////////////////////////////////////////////////////////////////////////////// +// FEED // +// Settings → Feed tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button" = "Botão de ação"; +"Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "Adiciona 'Ver foto de perfil' e 'Ver capa' aos menus de manter pressionado na bandeja de stories"; +"Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Adiciona um botão de ação do RyukGram sob cada post do feed com opções de baixar/compartilhar/copiar/expandir/repostar. O toque abre o menu por padrão; altere o comportamento do toque abaixo."; +"Choose Instagram's default feed or force the Following feed" = "Escolha o feed padrão do Instagram ou force o feed de Seguindo"; +"Main feed" = "Feed principal"; +"Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "Controla quando e como o feed atualiza. A atualização em segundo plano ocorre ao retornar ao app após ~10 minutos. A atualização do botão Início ocorre ao tocar na aba Início quando já estiver nela."; +"Default tap action" = "Ação de toque padrão"; +"Disable background refresh" = "Desativar atualização em segundo plano"; +"Disable home button refresh" = "Desativar atualização pelo botão Início"; +"Disable home button scroll" = "Desativar rolagem pelo botão Início"; +"Disable video autoplay" = "Desativar reprodução automática de vídeos"; +"Hide" = "Ocultar"; +"Hide entire feed" = "Ocultar feed inteiro"; +"Hide repost button" = "Ocultar botão de repost"; +"Hide stories tray" = "Ocultar bandeja de stories"; +"Hide suggested stories" = "Ocultar stories sugeridos"; +"Hides suggested accounts" = "Oculta contas sugeridas"; +"Hides suggested reels" = "Oculta reels sugeridos"; +"Hides suggested threads posts" = "Oculta posts sugeridos do Threads"; +"Hides the repost button on feed posts" = "Oculta o botão de repost nos posts do feed"; +"Hides the story tray at the top" = "Oculta a bandeja de stories no topo"; +"Inserts a button row below like/comment/share on each post" = "Insere uma linha de botões abaixo de curtir/comentar/compartilhar em cada post"; +"Long press on media to expand in full-screen viewer" = "Mantenha pressionada a mídia para expandir no visualizador em tela cheia"; +"Start media muted" = "Iniciar mídia sem som"; +"Expanded videos open with sound off" = "Vídeos ampliados abrem com o som desligado"; +"Enhanced media resolution" = "Resolução de mídia aprimorada"; +"Media saving" = "Salvar mídia"; +"Spoof device profile so IG serves higher-quality images" = "Falsifica o perfil do dispositivo para que o IG entregue imagens de maior qualidade"; +"Media" = "Mídia"; +"Media zoom" = "Zoom na mídia"; +"No suggested for you" = "Sem sugeridos para você"; +"No suggested posts" = "Sem posts sugeridos"; +"No suggested reels" = "Sem reels sugeridos"; +"No suggested threads" = "Sem Threads sugeridos"; +"Prevents feed from reloading when returning from background" = "Impede que o feed seja recarregado ao retornar do segundo plano"; +"Prevents videos from playing automatically" = "Impede que vídeos sejam reproduzidos automaticamente"; +"Refresh" = "Atualizar"; +"Removes all content from your home feed" = "Remove todo o conteúdo do seu feed inicial"; +"Removes suggested accounts from the stories tray" = "Remove contas sugeridas da bandeja de stories"; +"Removes suggested posts" = "Remove posts sugeridos"; +"Scroll to top without refreshing when tapping Home" = "Rolar para o topo sem atualizar ao tocar em Início"; +"Show action button" = "Mostrar botão de ação"; +"Show date" = "Mostrar data"; +"Stories tray" = "Bandeja de stories"; +"Tapping Home does nothing when already on feed" = "Tocar em Início não faz nada quando já estiver no feed"; +"Tray long-press actions" = "Ações de manter pressionado na bandeja"; +"Composer doesn't accept GIFs" = "O compositor não aceita GIFs"; +"Copy GIF link" = "Copiar link do GIF"; +"Copy image link" = "Copiar link da imagem"; +"Custom GIF in comments" = "GIF personalizado em comentários"; +"Failed to build GIF model" = "Falha ao montar modelo do GIF"; +"GIF link copied" = "Link do GIF copiado"; +"Image" = "Imagem"; +"Image link copied" = "Link da imagem copiado"; +"Invalid Giphy URL" = "URL do Giphy inválida"; +"Long-press the GIF button to paste any Giphy URL" = "Mantenha pressionado o botão de GIF para colar qualquer URL do Giphy"; +"Paste Giphy Link" = "Colar link do Giphy"; +"Paste a giphy.com URL or media ID" = "Cole uma URL do giphy.com ou ID de mídia"; +"Send" = "Enviar"; + +////////////////////////////////////////////////////////////////////////////// +// REELS // +// Settings → Reels tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button above the reel sidebar with view-cover/download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Adiciona um botão de ação do RyukGram acima da barra lateral do reel com opções de ver capa/baixar/compartilhar/copiar/expandir/repostar. O toque abre o menu por padrão; altere o comportamento do toque abaixo."; +"Always show progress scrubber" = "Sempre mostrar barra de progresso"; +"Auto-scroll reels" = "Rolar reels automaticamente"; +"Change what happens when you tap on a reel" = "Alterar o que acontece quando você toca em um reel"; +"Confirm reel refresh" = "Confirmar atualização de reels"; +"Custom speed" = "Velocidade personalizada"; +"Disable auto-unmuting reels" = "Desativar desativação automática de mudo em reels"; +"Disable scrolling reels" = "Desativar rolagem de reels"; +"Disable tab button refresh" = "Desativar atualização pelo botão da aba"; +"Doom scrolling limit" = "Limite de rolagem infinita (Doom scrolling)"; +"e.g. 1.75" = "ex.: 1,75"; +"Enter a value between 0.5 and 2.0" = "Insira um valor entre 0,5 e 2,0"; +"Forces the progress bar to appear on every reel" = "Força a barra de progresso a aparecer em cada reel"; +"Hide \"Made with Edits\" badge" = "Ocultar selo \"Made with Edits\""; +"Hide friends avatars" = "Ocultar avatares de amigos"; +"Hide reels header" = "Ocultar cabeçalho dos reels"; +"Hide social context overlay" = "Ocultar sobreposição de contexto social"; +"Hides the avatar bubbles next to the Friends tab in reels" = "Oculta as bolhas de avatar ao lado da aba Amigos nos reels"; +"Hides the Edits app promo pill on reels" = "Oculta o aviso promocional do app Edits nos reels"; +"Hides the floating overlay showing who reposted or commented on reels" = "Oculta a sobreposição flutuante que mostra quem repostou ou comentou nos reels"; +"Hides the repost button on the reels sidebar" = "Oculta o botão de repost na barra lateral dos reels"; +"Hides the top navigation bar when watching reels" = "Oculta a barra de navegação superior ao assistir reels"; +"Hiding" = "Ocultando"; +"Hold the 3-dot on any reel to open speed picker" = "Segure os 3 pontos em qualquer reel para abrir o seletor de velocidade"; +"IG default" = "Padrão do IG"; +"IG default: native behavior. RyukGram: re-advances after swiping back." = "Padrão do IG: comportamento nativo. RyukGram: avança novamente após deslizar de volta."; +"Limits" = "Limites"; +"Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "Limita a quantidade de reels disponíveis para rolar em um dado momento e impede a atualização"; +"Only loads %@ %@" = "Carrega apenas %@ %@"; +"Places a button above the like/comment/share column on each reel" = "Coloca um botão acima da coluna curtir/comentar/compartilhar em cada reel"; +"Playback speed" = "Velocidade de reprodução"; +"Prevent doom scrolling" = "Prevenir rolagem infinita (Doom scrolling)"; +"Prevents reels from being scrolled to the next video" = "Impede que os reels sejam rolados para o próximo vídeo"; +"Prevents reels from unmuting when the volume/silent button is pressed" = "Impede que o mudo dos reels seja desativado quando o botão de volume/silencioso é pressionado"; +"RyukGram" = "RyukGram"; +"Shows an alert when you trigger a reels refresh" = "Mostra um alerta quando você aciona uma atualização de reels"; +"Shows buttons to reveal and auto-fill the password on locked reels" = "Mostra botões para revelar e preencher automaticamente a senha em reels bloqueados"; +"Swipe a reel left to open the author's profile" = "Deslize um reel para a esquerda para abrir o perfil do autor"; +"Swipe left to profile" = "Deslizar para a esquerda no perfil"; +"Tap Controls" = "Controles de Toque"; +"Tap to mute on photo reels" = "Tocar para silenciar em reels de fotos"; +"Tapping the Reels tab while on reels does nothing" = "Tocar na aba Reels enquanto já estiver nos reels não faz nada"; +"Unlock password-locked reels" = "Desbloquear reels protegidos por senha"; +"When pause mode is on, tap on photo reels toggles audio instead of the native pause gesture" = "Quando o modo de pausa está ativado, tocar em reels de fotos alterna o áudio em vez do gesto nativo de pausa"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE // +// Settings → Profile tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "Adiciona um botão para filtrar e ordenar listas de seguidores/seguindo. Reinicia ao sair."; +"Adds a view option to the highlight long-press menu to open the cover in full-screen" = "Adiciona uma opção de visualizar ao menu de manter pressionado nos destaques para abrir a capa em tela cheia"; +"Copy note on long press" = "Copiar nota ao manter pressionado"; +"Extra stats shown on each post and reel card in profile grids." = "Estatísticas extras mostradas em cada cartão de publicação e reel nas grades do perfil."; +"Fake follower count" = "Contagem falsa de seguidores"; +"Fake following count" = "Contagem falsa de seguindo"; +"Fake post count" = "Contagem falsa de posts"; +"Fake profile stats" = "Estatísticas de perfil falsas"; +"Fake verified badge" = "Selo de verificado falso"; +"Fetch missing counts" = "Buscar contagens ausentes"; +"Filter & sort lists" = "Filtrar e ordenar listas"; +"Follow indicator" = "Indicador de quem segue"; +"Follower & following lists" = "Listas de seguidores e seguindo"; +"Follower count" = "Contagem de seguidores"; +"Following count" = "Contagem de seguindo"; +"Long press a profile picture to open it in full-screen with zoom, share, and save" = "Mantenha pressionada uma foto de perfil para abri-la em tela cheia com zoom, compartilhamento e salvamento"; +"Long press the note bubble on a profile to copy the text" = "Mantenha pressionada a bolha de nota em um perfil para copiar o texto"; +"Long press to download directly (ignored when zoom is on)" = "Mantenha pressionado para baixar diretamente (ignorado quando o zoom está ativado)"; +"Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "Gestos de manter pressionado em elementos do perfil — mantidos separados dos botões de ação por recurso."; +"Only affects your own profile header. Other users see the real numbers." = "Afeta apenas o cabeçalho do seu próprio perfil. Outros usuários verão os números reais."; +"Override view count" = "Sobrescrever contagem de visualizações"; +"Post count" = "Contagem de posts"; +"Profile card details" = "Detalhes do cartão do perfil"; +"Profile stats" = "Estatísticas do perfil"; +"Render counts in shortened format." = "Exibir contagens em formato abreviado."; +"Save profile picture" = "Salvar foto de perfil"; +"Short numbers" = "Números abreviados"; +"Show a checkmark next to your name on your own profile" = "Mostrar um selo de verificação ao lado do seu nome no seu próprio perfil"; +"Show full follower count" = "Mostrar contagem completa de seguidores"; +"Show full post count" = "Mostrar contagem completa de publicações"; +"Show like count" = "Mostrar contagem de curtidas"; +"Show upload date" = "Mostrar data de publicação"; +"Shows whether the profile user follows you" = "Mostra se o usuário do perfil segue você"; +"Tap to set" = "Toque para definir"; +"Uses Instagram's API. May hit rate limits." = "Usa a API do Instagram. Pode atingir limites de uso."; +"View highlight cover" = "Ver capa do destaque"; +"Zoom profile photo" = "Zoom na foto de perfil"; + +////////////////////////////////////////////////////////////////////////////// +// SAVING & DOWNLOADS // +// Settings → Saving tab // +////////////////////////////////////////////////////////////////////////////// + +"Active, queued, and finished downloads" = "Downloads ativos, na fila e concluídos"; +"Auto-retry attempts" = "Tentativas de repetição automática"; +"Auto-retry failed downloads" = "Repetir downloads que falharam automaticamente"; +"Confirm before download" = "Confirmar antes de baixar"; +"Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "Obsoleto. O botão de ação do RyukGram (configurado por recurso no Feed/Reels/Stories) é a nova forma de baixar mídias. Ative esta chave principal apenas se preferir o antigo gesto de manter pressionado com múltiplos dedos diretamente na mídia."; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "Não pausar downloads, codificação ou varreduras de perfil ao sair do app"; +"Download queue" = "Fila de downloads"; +"Downloads" = "Downloads"; +"Downloads with %@ %@" = "Downloads com %@ %@"; +"Enable long-press gesture" = "Ativar gesto de manter pressionado"; +"Finger count for long-press" = "Quantidade de dedos para manter pressionado"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "Quantos downloads rodam ao mesmo tempo — os extras aguardam na fila e iniciam conforme as vagas ficam livres. Downloads que falham são repetidos automaticamente em erros de rede. Abra o gerenciador para acompanhar, cancelar ou repetir downloads."; +"Keep running in background" = "Continuar em segundo plano"; +"Legacy long-press gesture" = "Gesto de manter pressionado antigo"; +"Long-press hold time" = "Tempo de pressão para segurar"; +"Master toggle for the deprecated gesture workflow (off by default)" = "Chave principal para o fluxo de gestos obsoleto (desativado por padrão)"; +"Max simultaneous downloads" = "Máximo de downloads simultâneos"; +"Open download manager" = "Abrir gerenciador de downloads"; +"Press finger(s) for %@ %@" = "Pressione o(s) dedo(s) por %@ %@"; +"Retry automatically when a download drops on a network error" = "Tentar novamente automaticamente quando um download cair por erro de rede"; +"Route saves into a custom album in Photos instead of the camera roll root" = "Encaminha salvamentos para um álbum dedicado no Fotos em vez da raiz do rolo da câmera"; +"Run up to %@ %@ at once" = "Executar até %@ %@ de uma vez"; +"Save action" = "Ação de salvar"; +"Save to dedicated album" = "Salvar em álbum dedicado"; +"Show a confirmation dialog before starting a download" = "Mostrar um diálogo de confirmação antes de iniciar um download"; +"Try %@ more %@ before giving up" = "Tentar mais %@ %@ antes de desistir"; +"What happens after the gesture downloads" = "O que acontece após o download pelo gesto"; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "Quando \"Salvar em álbum dedicado\" está ativado, downloads e escolhas de \"Salvar em Fotos\" da folha de compartilhamento são direcionados para um álbum nomeado em sua biblioteca de Fotos. Toque em \"Nome do álbum\" para alterá-lo."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu falharam"; +"%lu of %lu done" = "%lu de %lu concluídos"; +"%lu saved, %lu failed" = "%lu salvos, %lu falharam"; +"Active" = "Ativos"; +"Auto-retry" = "Repetição automática"; +"Clear completed" = "Limpar concluídos"; +"Completed" = "Concluídos"; +"Download settings" = "Configurações de download"; +"Downloading %lu items" = "Baixando %lu itens"; +"Downloading…" = "Baixando…"; +"Encoding %d%%" = "Codificando %d%%"; +"Encoding…" = "Codificando…"; +"Extra downloads wait in line and start as slots free up." = "Downloads extras aguardam na fila e iniciam conforme as vagas ficam livres."; +"No downloads yet" = "Nenhum download ainda"; +"Preview" = "Pré-visualização"; +"Queued" = "Na fila"; +"Redownload" = "Baixar novamente"; +"Retry" = "Tentar novamente"; +"Retrying…" = "Tentando novamente…"; +"Waiting for connection…" = "Aguardando conexão…"; +"Waiting…" = "Aguardando…"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES // +// Settings → Stories tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button next to the eye button on stories with download/share/copy/expand/repost/view-mentions entries. Tap opens the menu by default; change the tap behavior below." = "Adiciona um botão de ação do RyukGram ao lado do botão de olho nos stories com opções de baixar/compartilhar/copiar/expandir/repostar/ver menções. O toque abre o menu por padrão; altere o comportamento do toque abaixo."; +"Adds a speaker button to the story overlay to unmute/mute audio. Also available in the 3-dot menu" = "Adiciona um botão de alto-falante à sobreposição do story para ativar/desativar o áudio. Também disponível no menu de 3 pontos"; +"Advance on story like" = "Avançar ao curtir story"; +"Advance on story reply" = "Avançar ao responder story"; +"Advance when marking as seen" = "Avançar ao marcar como visto"; +"Audio" = "Áudio"; +"Block all: all stories blocked — listed users are exceptions.\nBlock selected: only listed users are blocked — everything else is normal.\nBoth lists are saved independently." = "Bloquear todos: todos os stories bloqueados — usuários listados são exceções.\nBloquear selecionados: apenas usuários listados são bloqueados — tudo o mais é normal.\nAmbas as listas são salvas independentemente."; +"Blocking mode" = "Modo de bloqueio"; +"Button = single-tap mark seen. Toggle = tap toggles story read receipts on/off (eye fills blue when on)" = "Botão = toque único marca como visto. Alternar = toque ativa/desativa confirmações de visualização do story (o olho fica azul quando ativado)"; +"Disable instants creation" = "Desativar criação de instants"; +"Disable story seen receipt" = "Desativar confirmação de visualização de story"; +"Enable story user list" = "Ativar lista de usuários de story"; +"Hides the functionality to create/send instants" = "Oculta a funcionalidade de criar/enviar instants"; +"Hides the notification for others when you view their story" = "Oculta a notificação para os outros quando você visualiza o story deles"; +"Inserts a button next to the seen/eye button on story overlays" = "Insere um botão ao lado do botão de visto/olho nas sobreposições de stories"; +"Keep stories visually seen locally" = "Manter stories visualmente vistos localmente"; +"Liking a story automatically advances to the next one after a short delay" = "Curtir um story avança automaticamente para o próximo após um breve atraso"; +"Manage list" = "Gerenciar lista"; +"Manage list (%lu)" = "Gerenciar lista (%lu)"; +"Manual seen button mode" = "Modo de botão de visto manual"; +"Mark seen on story like" = "Marcar como visto ao curtir"; +"Mark seen on story reply" = "Marcar como visto ao responder"; +"Marks a story as seen the moment you tap the heart, even with seen blocking on" = "Marca um story como visto no momento em que você toca no coração, mesmo com o bloqueio de visto ativado"; +"Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "Marca um story como visto quando você envia uma resposta ou reação de emoji, mesmo com o bloqueio de visto ativado"; +"Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "Marca stories como vistos localmente (círculo cinza) enquanto ainda bloqueia a confirmação de visualização no servidor"; +"Master toggle. When off, the list is ignored" = "Chave principal. Quando desativada, a lista é ignorada"; +"Playback" = "Reprodução"; +"Search, sort, swipe to remove" = "Buscar, ordenar, deslizar para remover"; +"Seen receipts" = "Confirmações de visualização"; +"Sending a reply or emoji reaction automatically advances to the next story" = "Enviar uma resposta ou reação de emoji avança automaticamente para o próximo story"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "Adiciona uma entrada 'Ver menções' ao menu do botão de ação e ao menu de 3 pontos do story"; +"Mentions overlay button" = "Botão de menções na sobreposição"; +"Mentions count badge" = "Selo de contagem de menções"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "Adiciona um botão ao lado do botão de ação/olho na sobreposição do story. Aparece apenas quando o story atual tem menções ou posts/reels compartilhados"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "Mostra o número de contas mencionadas únicas como um selo vermelho no botão de overlay"; +"Hide stories midcards" = "Ocultar cards intermediários dos stories"; +"Removes the Trending and Music promo cards from the stories tray" = "Remove os cards promocionais de Em alta e Música da bandeja de stories"; +"Stickers" = "Figurinhas"; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "Veja os resultados de enquetes/testes/sliders antes de interagir — você ainda pode tocar para votar normalmente. 'Forçar antigas' traz as figurinhas Teste e Revelar de volta ao editor de stories."; +"Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "Veja os resultados de enquetes/testes/sliders nos reels antes de interagir — você ainda pode tocar para votar normalmente."; +"Force legacy stickers in tray" = "Forçar figurinhas antigas na bandeja"; +"Adds Quiz and Reveal stickers back to the picker" = "Adiciona as figurinhas Teste e Revelar de volta ao seletor"; +"Bypass Reveal sticker" = "Ignorar figurinha Revelar"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "Pula a etapa de enviar mensagem para revelar stories com figurinha Revelar"; +"Show quiz answer" = "Mostrar resposta do teste"; +"Circle the correct option on quiz stickers, or the leading option on polls" = "Circula a opção correta em figurinhas de teste, ou a opção líder em enquetes"; +"Show poll vote counts" = "Mostrar contagem de votos da enquete"; +"Show vote tallies on poll options and slider count/average before you vote" = "Mostra as contagens de votos nas opções da enquete e contagem/média do slider antes de você votar"; +"Stop story auto-advance" = "Parar avanço automático de stories"; +"Stories" = "Stories"; +"Stories won't auto-skip to the next one when the timer ends. Tap to advance manually" = "Os stories não saltarão automaticamente para o próximo quando o tempo acabar. Toque para avançar manualmente"; +"Story audio toggle" = "Alternar áudio do story"; +"Story user list" = "Lista de usuários de story"; +"Tapping the eye button to mark a story as seen advances to the next story automatically" = "Tocar no botão de olho para marcar um story como visto avança para o próximo story automaticamente"; +"View story mentions" = "Ver menções do story"; +"Which stories get seen-receipt blocking" = "Quais stories recebem bloqueio de confirmação de visualização"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — READ RECEIPTS // +// Settings → Read receipts tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to DM threads to mark messages as seen" = "Adiciona um botão às conversas de DM para marcar mensagens como vistas"; +"Auto mark seen on interact" = "Marcar visto auto. ao interagir"; +"Auto mark seen on typing" = "Marcar visto auto. ao digitar"; +"Control when messages are marked as seen" = "Controlar quando as mensagens são marcadas como vistas"; +"How the seen button behaves" = "Como o botão de visto se comporta"; +"Manually mark messages as seen" = "Marcar mensagens como vistas manualmente"; +"Marks messages as seen when you send any message" = "Marca mensagens como vistas quando você envia qualquer mensagem"; +"Marks messages as seen when you start typing" = "Marca mensagens como vistas quando você começa a digitar"; +"Read receipt mode" = "Modo de confirmação de leitura"; +"Read receipts" = "Confirmações de leitura"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — KEEP DELETED // +// Settings → Keep deleted messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Activity" = "Atividade"; +"Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "Adiciona uma opção de 'Baixar' ao menu de manter pressionado nas mensagens de voz para salvá-las como áudio M4A"; +"Allows typing and sending DMs longer than Instagram's limit" = "Permite digitar e enviar mensagens maiores que o limite do Instagram"; +"Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "Adiciona uma opção de 'Enviar Arquivo' ao menu mais (+) nas DMs. Tipos de arquivos suportados podem ser limitados pelo Instagram"; +"Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "Adiciona uma opção de 'Arquivo de Áudio' ao menu mais (+) nas DMs para enviar arquivos de áudio como mensagens de voz"; +"Adds copy text, download GIF/audio to the note long-press menu" = "Adiciona copiar texto, baixar GIF/áudio ao menu de manter pressionado na nota"; +"Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "Bloquear todos: todos os chats bloqueados — chats listados são exceções.\nBloquear selecionados: apenas chats listados são bloqueados — tudo o mais é normal.\nAmbas as listas são salvas independentemente. Mantenha pressionado um chat na caixa de entrada para adicionar ou remover."; +"Block keep-deleted for excluded chats" = "Não manter mensagens apagadas em chats excluídos"; +"Block keep-deleted for unlisted chats" = "Não manter mensagens apagadas em chats não listados"; +"Bypass DM character limit" = "Ignorar limite de caracteres em mensagens"; +"Chat list" = "Lista de chats"; +"Confirmation dialog before clearing preserved messages" = "Diálogo de confirmação antes de limpar mensagens preservadas"; +"Copies note text directly on long press without opening the menu" = "Copia o texto da nota diretamente ao manter pressionado sem abrir o menu"; +"Copy text on hold" = "Copiar texto ao segurar"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "Adiciona um botão de pincel e um atalho de manter pressionado para escolher cores personalizadas de fundo e texto"; +"Custom note themes" = "Temas de notas personalizados"; +"Disable vanish mode swipe" = "Desativar deslizar para modo temporário"; +"Disable typing status" = "Desativar status de digitando"; +"Disable view-once limitations" = "Desativar limitações de visualização única"; +"Download voice messages" = "Baixar mensagens de voz"; +"Enable chat list" = "Ativar lista de chats"; +"Enable note theming" = "Ativar temas de notas"; +"Enables the notes theme picker" = "Ativa o seletor de temas de notas"; +"Files" = "Arquivos"; +"Full last active date" = "Data completa de última atividade"; +"Hide reels blend button" = "Ocultar botão de blend de reels"; +"Hide send to group chat" = "Ocultar enviar para chat em grupo"; +"Pin recipients on long-press" = "Fixar destinatários ao manter pressionado"; +"Long-press in the share sheet to pin a chat/user to the top" = "Mantenha pressionado no menu de compartilhamento para fixar um chat/usuário no topo"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "Mantenha pressionado um destinatário para fixá-lo ou desfixá-lo. Destinatários fixados aparecem no topo."; +"Recipient pinned" = "Destinatário fixado"; +"Recipient unpinned" = "Destinatário desfixado"; +"Couldn't resolve recipient id" = "Não foi possível resolver o ID do destinatário"; +"Hide video call button" = "Ocultar botão de chamada de vídeo"; +"Hide voice call button" = "Ocultar botão de chamada de voz"; +"Hides the blend button in DMs" = "Oculta o botão de blend nas DMs"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "Remove a linha de criar/enviar para chat em grupo ao compartilhar com vários destinatários"; +"Hides typing indicator from others" = "Oculta o indicador de digitando para os outros"; +"Indicate unsent messages" = "Indicar mensagens removidas"; +"Keep deleted messages" = "Manter mensagens apagadas"; +"Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "Faz mensagens de visualização única se comportarem como mensagens visuais normais (podem ser repetidas/pausadas)"; +"Note actions" = "Ações de nota"; +"Preserves messages that others unsend" = "Preserva mensagens que outros removem"; +"Prevents accidental swipe-up activation of vanish mode" = "Evita ativação acidental do modo temporário ao deslizar para cima"; +"Quick list button in chats" = "Botão de lista rápida nos chats"; +"Removes the audio call button from DM thread header" = "Remove o botão de chamada de áudio do cabeçalho da conversa de DM"; +"Removes the video call button from DM thread header" = "Remove o botão de chamada de vídeo do cabeçalho da conversa de DM"; +"Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "Repita mensagens visuais sem expirar. Alterne no menu do botão de olho, ou como um botão independente quando o botão de olho estiver desativado"; +"Search, sort, swipe to remove or toggle keep-deleted" = "Buscar, ordenar, deslizar para remover ou ativar/desativar mensagens apagadas"; +"Send audio as file" = "Enviar áudio como arquivo"; +"Send files (experimental)" = "Enviar arquivos (experimental)"; +"Show full date instead of \"Active 2h ago\"" = "Mostrar data completa em vez de \"Ativo há 2h\""; +"Shows a button in DM threads to add/remove chats from the list. Long-press for more options" = "Mostra um botão nas conversas de DM para adicionar/remover chats da lista. Mantenha pressionado para mais opções"; +"Shows a notification pill when a message is unsent" = "Mostra uma notificação suspensa quando uma mensagem tem o envio cancelado"; +"Shows an \"Unsent\" label on preserved messages" = "Mostra uma etiqueta \"Removida\" em mensagens preservadas"; +"Unlimited replay of visual messages" = "Repetição ilimitada de mensagens visuais"; +"Unsent message notification" = "Notificação de mensagem removida"; +"Voice messages" = "Mensagens de voz"; +"Warn before clearing on refresh" = "Avisar antes de limpar ao atualizar"; +"Which chats get read-receipt blocking" = "Quais chats recebem bloqueio de confirmação de leitura"; +"⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ Deslizar para atualizar na aba de DMs limpa todas as mensagens preservadas. Ative o aviso abaixo para receber um diálogo de confirmação."; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu excluído(s)"; +"%lu messages from %lu users" = "%lu mensagens de %lu usuários"; +"%lu selected" = "%lu selecionado(s)"; +"Absolute date + time" = "Data e hora absolutas"; +"Adjust the filters or clear the search to see more." = "Ajuste os filtros ou limpe a busca para ver mais."; +"All time" = "Todo o período"; +"Browse, filter and search recorded messages" = "Navegue, filtre e busque mensagens registradas"; +"Captures unsent messages with their text or media" = "Captura mensagens desfeitas com texto ou mídia"; +"Clear deleted-message log?" = "Limpar registro de mensagens excluídas?"; +"Clear from this user" = "Limpar deste usuário"; +"Clear log" = "Limpar registro"; +"Clear log for this account" = "Limpar registro desta conta"; +"Clear log for this user?" = "Limpar registro deste usuário?"; +"Clear media files" = "Limpar arquivos de mídia"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "Limpar a mídia mantém os registros (texto, remetente, hora). Limpar o registro remove tudo desta conta."; +"Close" = "Fechar"; +"Content unavailable" = "Conteúdo indisponível"; +"Copied" = "Copiado"; +"Copy URL" = "Copiar URL"; +"Date range" = "Período"; +"Deleted messages" = "Mensagens excluídas"; +"Deleted messages log" = "Registro de mensagens excluídas"; +"Deleted: %@\n" = "Excluído: %@\n"; +"Edit %lu" = "Edição %lu"; +"Edit history" = "Histórico de edições"; +"Edited" = "Editado"; +"Empty" = "Vazio"; +"Enable deleted messages log" = "Ativar registro de mensagens excluídas"; +"Enable Settings → Messages → Deleted messages log to start recording." = "Ative Ajustes → Mensagens → Registro de mensagens excluídas para começar."; +"GIF" = "GIF"; +"Hashtag" = "Hashtag"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "Tipo: %@\n"; +"Last 30 days" = "Últimos 30 dias"; +"Last 7 days" = "Últimos 7 dias"; +"Link" = "Link"; +"Live location" = "Localização em tempo real"; +"Location" = "Localização"; +"Logging is off" = "Registro desativado"; +"Media on disk" = "Mídia no disco"; +"Most messages" = "Mais mensagens"; +"Most recent" = "Mais recente"; +"No deleted messages yet" = "Ainda não há mensagens excluídas"; +"No matches" = "Sem correspondências"; +"Nothing to save" = "Nada para salvar"; +"Oldest first" = "Mais antigos primeiro"; +"Open log" = "Abrir registro"; +"Open profile" = "Abrir perfil"; +"Original" = "Original"; +"Play" = "Reproduzir"; +"Post" = "Publicação"; +"Records every message someone unsends, grouped by sender" = "Registra cada mensagem desfeita, agrupada por remetente"; +"Reel" = "Reel"; +"Relative (1m / 3h / 3d ago)" = "Relativo (1 min / 3h / 3d atrás)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "Remove cada mensagem excluída salva e suas mídias para a conta atual. Não pode ser desfeito."; +"Removes every preserved deleted message and its captured media for this account." = "Remove cada mensagem excluída salva e suas mídias para esta conta."; +"Removes every preserved deleted message from this sender." = "Remove cada mensagem excluída salva deste remetente."; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "Remove cada foto, vídeo e áudio salvo. Os registros mantêm o texto e informações do remetente."; +"Search messages" = "Buscar mensagens"; +"Search senders or messages" = "Buscar remetentes ou mensagens"; +"Select" = "Selecionar"; +"Show edit history" = "Mostrar histórico de edições"; +"Source URL recorded but media not stored.\n" = "URL de origem registrada, mas a mídia não foi armazenada.\n"; +"Sticker" = "Figurinha"; +"Tap to open in Instagram" = "Toque para abrir no Instagram"; +"Tap to open in Maps" = "Toque para abrir no Mapas"; +"Tap to play" = "Toque para reproduzir"; +"Tap to play · %@" = "Toque para reproduzir · %@"; +"Text" = "Texto"; +"This account" = "Esta conta"; +"Unknown" = "Desconhecido"; +"Video" = "Vídeo"; +"View" = "Ver"; +"Voice" = "Voz"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "Quando ativado, mensagens excluídas e suas mídias são salvas neste dispositivo. Desative e limpe o registro para apagar o histórico."; +"When someone unsends a message, it will appear here grouped by sender." = "Quando alguém desfizer uma mensagem, aparecerá aqui agrupada por remetente."; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES // +// Settings → Messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Custom chat background" = "Plano de fundo personalizado da conversa"; +"Incoming calls stay silent — no ring, no screen, no notification" = "Chamadas recebidas ficam silenciosas — sem toque, sem tela, sem notificação"; +"Messages" = "Mensagens"; +"Silence incoming calls" = "Silenciar chamadas recebidas"; +"Threads" = "Threads"; +"Use your own images as chat backgrounds" = "Use suas próprias imagens como plano de fundo das conversas"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "Adiciona um botão de galeria à câmera de instants para enviar uma foto do seu álbum"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "Adiciona um botão de ações do RyukGram ao cabeçalho do visualizador de instants com entradas para expandir, salvar, compartilhar e salvar todos"; +"All loaded instants" = "Todos os instants carregados"; +"Bypasses the Instants screenshot block" = "Ignora o bloqueio de captura nos Instants"; +"Could not locate the instant on screen" = "Não foi possível localizar o instant na tela"; +"Current instant" = "Instant atual"; +"In-app Gallery" = "Galeria interna"; +"Instant" = "Instantâneo"; +"Instants" = "Instantâneos"; +"Instants action button" = "Botão de ações dos Instants"; +"No instants currently loaded" = "Nenhum instant carregado no momento"; +"No media available to save" = "Nenhuma mídia disponível para salvar"; +"Photos library" = "Biblioteca de fotos"; +"Pick from" = "Escolher de"; +"Queued %lu instants" = "%lu instants na fila"; +"Save all to Gallery" = "Salvar todos na galeria"; +"Save all to Photos" = "Salvar todos em Fotos"; +"Save to Gallery" = "Salvar na galeria"; +"Send from gallery" = "Enviar da galeria"; +"Tweaks for the QuickSnap / Instants camera surface." = "Ajustes para a câmera do QuickSnap / Instants."; +"Use" = "Usar"; + +////////////////////////////////////////////////////////////////////////////// +// NAVIGATION // +// Settings → Navigation tab // +////////////////////////////////////////////////////////////////////////////// + +"Also hide the bottom tab bar — only the inbox is visible" = "Também ocultar a barra de abas inferior — apenas a caixa de entrada fica visível"; +"Hide create tab" = "Ocultar aba de criar"; +"Hide explore tab" = "Ocultar aba explorar"; +"Hide feed tab" = "Ocultar aba do feed"; +"Hide messages tab" = "Ocultar aba de mensagens"; +"Hide reels tab" = "Ocultar aba do reels"; +"Hide tab bar" = "Ocultar barra de abas"; +"Hides every tab except DM inbox + profile and forces launch into the inbox. Settings shortcut moves to long-press on the inbox tab." = "Oculta todas as abas exceto a caixa de entrada de DM + perfil e força o início na caixa de entrada. O atalho de configurações muda para manter pressionado na aba da caixa de entrada."; +"Hides the create tab on the bottom navigation bar" = "Oculta a aba de criar na barra de navegação inferior"; +"Hides the direct messages tab on the bottom navigation bar" = "Oculta a aba de mensagens diretas na barra de navegação inferior"; +"Hides the explore/search tab on the bottom navigation bar" = "Oculta a aba de explorar/busca na barra de navegação inferior"; +"Hides the feed/home tab on the bottom navigation bar" = "Oculta a aba de feed/início na barra de navegação inferior"; +"Hides the reels tab on the bottom navigation bar" = "Oculta a aba de reels na barra de navegação inferior"; +"Hiding tabs" = "Ocultando abas"; +"Icon order" = "Ordem dos ícones"; +"Launch tab" = "Aba de inicialização"; +"Lets you swipe to switch between navigation bar tabs" = "Permite deslizar para alternar entre as abas da barra de navegação"; +"Messages only" = "Apenas mensagens"; +"Messages-only mode" = "Modo apenas-mensagens"; +"Navigation" = "Navegação"; +"Swipe between tabs" = "Deslizar entre abas"; +"Tab the app opens to. Ignored when Messages-only is on" = "Aba em que o app abre. Ignorado quando o modo Apenas-mensagens está ativado"; +"The order of the icons on the bottom navigation bar" = "A ordem dos ícones na barra de navegação inferior"; +"Turn IG into a DM-only client" = "Transformar o IG em um cliente apenas de DMs"; + +////////////////////////////////////////////////////////////////////////////// +// CONFIRM ACTIONS // +// Settings → Confirm actions tab // +////////////////////////////////////////////////////////////////////////////// + +"All" = "Todas"; +"Calls" = "Chamadas"; +"Comments & posts" = "Comentários e publicações"; +"Confirm actions" = "Confirmar ações"; +"Confirm changing theme" = "Confirmar mudança de tema"; +"Confirm follow" = "Confirmar seguir"; +"Confirm follow requests" = "Confirmar solicitações para seguir"; +"Confirm Instants capture" = "Confirmar captura de Instants"; +"Confirm Instants emoji reaction" = "Confirmar reação de emoji no Instant"; +"Confirm like: Posts" = "Confirmar curtida: Posts"; +"Confirm like: Reels" = "Confirmar curtida: Reels"; +"Confirm note emoji reaction" = "Confirmar reação de emoji no note"; +"Confirm note like" = "Confirmar curtida no note"; +"Confirm posting comment" = "Confirmar publicação de comentário"; +"Confirm repost" = "Confirmar repost"; +"Confirm send to group chat" = "Confirmar envio para chat em grupo"; +"Confirm sticker interaction (highlights)" = "Confirmar interação com figurinha (destaques)"; +"Confirm sticker interaction (stories)" = "Confirmar interação com figurinha (stories)"; +"Confirm story emoji reaction" = "Confirmar reação de emoji no story"; +"Confirm story like" = "Confirmar curtida no story"; +"Confirm switching Instant" = "Confirmar troca de Instant"; +"Confirm unfollow" = "Confirmar deixar de seguir"; +"Confirm vanish mode" = "Confirmar modo temporário"; +"Confirm video call" = "Confirmar chamada de vídeo"; +"Confirm voice call" = "Confirmar chamada de voz"; +"Confirm voice messages" = "Confirmar mensagens de voz"; +"Follows" = "Segue"; +"Likes" = "Curtidas"; +"Messaging" = "Mensagens"; +"Reaction stickers only" = "Apenas figurinhas de reação"; +"Reactions" = "Reações"; +"Send to group chat?" = "Enviar para chat em grupo?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "Mostra um alerta antes de criar/enviar para um chat em grupo pelo menu de compartilhamento"; +"Shows an alert before sending an emoji reaction on a note" = "Mostra um alerta antes de enviar uma reação de emoji em um note"; +"Shows an alert before sending an emoji reaction on a story" = "Mostra um alerta antes de enviar uma reação de emoji em um story"; +"Shows an alert before sending an emoji reaction on an Instant" = "Mostra um alerta antes de enviar uma reação de emoji em um Instant"; +"Shows an alert before taking a photo with the Instants camera" = "Mostra um alerta antes de tirar uma foto com a câmera de Instants"; +"Shows an alert before tapping to switch to the next/previous Instant" = "Mostra um alerta antes de tocar para passar ao próximo/anterior Instant"; +"Shows an alert to confirm before sending a voice message" = "Mostra um alerta para confirmar antes de enviar uma mensagem de voz"; +"Shows an alert to confirm before toggling vanish mode" = "Mostra um alerta para confirmar antes de alternar o modo temporário"; +"Shows an alert when you accept/decline a follow request" = "Mostra um alerta quando você aceita/recusa uma solicitação para seguir"; +"Shows an alert when you change a chat theme to confirm" = "Mostra um alerta quando você muda um tema de chat para confirmar"; +"Shows an alert when you click the follow button to confirm the follow" = "Mostra um alerta quando você clica no botão de seguir para confirmar o seguimento"; +"Shows an alert when you click the like button on notes to confirm the like" = "Mostra um alerta quando você clica no botão de curtir em um note para confirmar a curtida"; +"Shows an alert when you click the like button on posts to confirm the like" = "Mostra um alerta quando você clica no botão de curtir em posts para confirmar a curtida"; +"Shows an alert when you click the like button on reels to confirm the like" = "Mostra um alerta quando você clica no botão de curtir em reels para confirmar a curtida"; +"Shows an alert when you click the like button on stories to confirm the like" = "Mostra um alerta quando você clica no botão de curtir em stories para confirmar a curtida"; +"Shows an alert when you click the post comment button to confirm" = "Mostra um alerta quando você clica no botão de publicar comentário para confirmar"; +"Shows an alert when you click the repost button to confirm before reposting" = "Mostra um alerta quando você clica no botão de repost para confirmar antes de repostar"; +"Shows an alert when you click the unfollow button to confirm" = "Mostra um alerta quando você clica no botão de deixar de seguir para confirmar"; +"Shows an alert when you click the video call button to confirm before calling" = "Mostra um alerta quando você clica no botão de chamada de vídeo para confirmar antes de ligar"; +"Shows an alert when you click the voice call button to confirm before calling" = "Mostra um alerta quando você clica no botão de chamada de voz para confirmar antes de ligar"; +"Shows an alert when you tap a sticker inside a highlight" = "Mostra um alerta quando você toca em uma figurinha dentro de um destaque"; +"Shows an alert when you tap a sticker on someone's story" = "Mostra um alerta quando você toca em uma figurinha no story de alguém"; +"Stories & highlights" = "Stories e destaques"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld h"; +"%ld locked" = "%ld bloqueados"; +"%ld min" = "%ld min"; +"%ldh idle" = "%ldh inativo"; +"%ldm idle" = "%ldm inativo"; +"%lds" = "%lds"; +"%lds idle" = "%lds inativo"; +"%lu hidden" = "%lu ocultas"; +"4 digits" = "4 dígitos"; +"6 digits" = "6 dígitos"; +"Add hidden chat" = "Adicionar conversa oculta"; +"Add locked chat" = "Adicionar conversa bloqueada"; +"Allow Instants screenshots" = "Permitir capturas do Instants"; +"Always ask when opening again" = "Sempre perguntar ao abrir novamente"; +"Ask again after Instagram returns" = "Perguntar novamente quando o Instagram voltar"; +"Auto-relock after idle" = "Rebloqueio automático após inatividade"; +"Balanced default" = "Padrão balanceado"; +"Best for sensitive sections" = "Melhor para seções sensíveis"; +"Biometric" = "Biometria"; +"Change passcode" = "Alterar código"; +"Chat hidden" = "Conversa oculta"; +"Chat locked" = "Conversa bloqueada"; +"Chat unlocked" = "Conversa desbloqueada"; +"Choose a code you'll remember." = "Escolha um código que você vá lembrar."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "Escolha quanto tempo esta seção fica desbloqueada enquanto inativa. \"Nunca\" mantém desbloqueada até o Instagram fechar ou ir para segundo plano."; +"Confirm current passcode" = "Confirme o código atual"; +"Confirm passcode" = "Confirme o código"; +"Could not save passcode" = "Não foi possível salvar o código"; +"Create passcode" = "Criar código"; +"Derivation failed" = "Falha na derivação"; +"DM inbox" = "Caixa de DM"; +"Don't share unlock" = "Não compartilhar desbloqueio"; +"Each target has its own enable, timeout, and re-lock configuration." = "Cada alvo tem sua própria configuração de ativação, tempo limite e rebloqueio."; +"Enable lock" = "Ativar bloqueio"; +"Enter passcode" = "Insira o código"; +"Enter value" = "Insira um valor"; +"Enter your current passcode to change it" = "Insira seu código atual para alterá-lo"; +"Enter your current passcode to reset it" = "Digite seu código atual para redefini-lo"; +"Enter your passcode to continue" = "Insira seu código para continuar"; +"every use" = "a cada uso"; +"Every use" = "A cada uso"; +"Hidden chats" = "Conversas ocultas"; +"Hide chat" = "Ocultar conversa"; +"Hide message preview" = "Ocultar prévia da mensagem"; +"Hide this chat?" = "Ocultar esta conversa?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "Esconde a interface do RyukGram em capturas/gravações e contorna os avisos de captura de tela do Instagram por funcionalidade."; +"Idle timeout" = "Tempo de inatividade"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "Manter este alvo bloqueado separadamente"; +"Less frequent prompts" = "Avisos menos frequentes"; +"Lock" = "Bloquear"; +"Lock chat" = "Bloquear conversa"; +"Lock every time" = "Bloquear sempre"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "\"Bloquear sempre\" tem prioridade sobre o tempo limite de inatividade. \"Não compartilhar desbloqueio\" mantém este alvo separado."; +"Lock targets" = "Destinos de bloqueio"; +"Lock the tweak" = "Bloquear o tweak"; +"Lock this chat" = "Bloquear esta conversa"; +"Lock this chat?" = "Bloquear esta conversa?"; +"Lock with passcode" = "Bloquear com código"; +"Locked chats" = "Conversas bloqueadas"; +"Long-press a chat to lock it individually" = "Toque longo em uma conversa para bloqueá-la individualmente"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "Toque longo em uma conversa → Ocultar conversa para adicioná-la aqui. As conversas ocultas são filtradas da caixa até serem removidas desta lista."; +"Long-press a DM to add" = "Toque longo em uma DM para adicionar"; +"Longest idle window" = "Maior janela de inatividade"; +"Manage locked chats" = "Gerenciar conversas bloqueadas"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "Interruptor principal. Desligue para desativar todos os destinos de bloqueio sem perder a configuração de cada um."; +"Never" = "Nunca"; +"No passcode set" = "Nenhum código definido"; +"Nothing here yet." = "Nada por aqui ainda."; +"Off" = "Desligado"; +"On" = "Ligado"; +"On — %@" = "Ativado — %@"; +"On — %@ + %ld more" = "Ativado — %@ + mais %ld"; +"On — no targets enabled" = "Ativado — nenhum destino ativado"; +"Passcode" = "Código"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "Código + biometria. Bloqueia a janela de configurações do tweak, a galeria, o registro de mensagens apagadas, conversas individuais e o aplicativo inteiro."; +"Passcode changed" = "Código alterado"; +"Passcode reset" = "Código redefinido"; +"Passcode set" = "Código definido"; +"Passcode too short" = "Código muito curto"; +"Passcodes did not match — try again" = "Os códigos não coincidem — tente novamente"; +"Per-chat locks" = "Bloqueios por conversa"; +"Prompt before Instagram opens" = "Pedir antes de abrir o Instagram"; +"Prompt before Profile Analyzer opens" = "Pedir antes de abrir o Analisador de Perfil"; +"Prompt before the deleted-messages log opens" = "Pedir antes de abrir o registro de mensagens apagadas"; +"Prompt before the gallery opens" = "Pedir antes de abrir a galeria"; +"Prompt before tweak settings open" = "Pedir antes de abrir as configurações do tweak"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "Pedir a cada entrada na caixa de DM, incluindo abrir direto nas mensagens"; +"Re-enter the same passcode" = "Insira o mesmo código novamente"; +"Re-lock on background" = "Rebloquear em segundo plano"; +"re-lock on bg" = "rebloquear em bg"; +"Recently hidden" = "Ocultadas recentemente"; +"Recently locked" = "Bloqueadas recentemente"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "Oculta os botões do RyukGram em capturas, gravações de tela e espelhamento"; +"Remove screenshot alert" = "Remover aviso de captura de tela"; +"Replace inbox preview with • • •" = "Substituir a prévia da caixa de entrada por • • •"; +"Require passcode for this section" = "Exigir código para esta seção"; +"Requires your current passcode" = "Requer seu código atual"; +"Reset passcode" = "Redefinir código"; +"Reset passcode?" = "Redefinir código?"; +"Screenshots & capture" = "Capturas de tela e gravação"; +"Security & Privacy" = "Segurança e privacidade"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "Defina um código para bloquear Configurações, Galeria, o registro de mensagens apagadas, conversas individuais, a caixa de DM, o Analisador de Perfil ou o próprio Instagram."; +"Set passcode" = "Definir código"; +"Short idle window" = "Janela curta de inatividade"; +"Stay unlocked until app close or background" = "Manter desbloqueado até o app fechar ou ir para segundo plano"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "Suprimir a notificação \"X fez uma captura de tela\" do IG em stories, DMs e mídia temporária"; +"Tap Unlock" = "Toque em Desbloquear"; +"Tap Unlock or enter your passcode" = "Toque em Desbloquear ou insira seu código"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "Isso apaga o código, desativa todos os destinos de bloqueio e desbloqueia todas as conversas. A galeria e os dados de mensagens apagadas permanecem intactos."; +"Thread %@" = "Conversa %@"; +"Tweak settings" = "Configurações do tweak"; +"Unlock" = "Desbloquear"; +"Unlock %@" = "Desbloquear %@"; +"Unlock chat" = "Desbloquear conversa"; +"Unlock Instagram" = "Desbloquear o Instagram"; +"Unlock this chat" = "Desbloquear esta conversa"; +"Use %@" = "Usar %@"; +"Username (looks up the DM thread) or raw thread ID" = "Nome de usuário (busca a conversa) ou ID bruto da conversa"; +"Username or thread ID" = "Nome de usuário ou ID da conversa"; +"Wrong passcode" = "Código incorreto"; +"Wrong passcode • %ld attempts" = "Código incorreto • %ld tentativas"; + +////////////////////////////////////////////////////////////////////////////// +// BACKUP & RESTORE // +// Settings → Backup & Restore tab // +////////////////////////////////////////////////////////////////////////////// + +"%lu account(s)" = "%lu conta(s)"; +"%lu account(s) · %lu image(s) · %@" = "%lu conta(s) · %lu imagem(ns) · %@"; +"%lu file(s) · %@" = "%lu arquivo(s) · %@"; +"%lu preferences" = "%lu preferências"; +"(none)" = "(nenhum)"; +"Apply backup?" = "Aplicar backup?"; +"Applying backup…" = "Aplicando backup…"; +"archive error" = "erro de arquivo"; +"Archived snapshots" = "Capturas arquivadas"; +"Backup & Restore" = "Backup e Restauração"; +"Backup exported" = "Backup exportado"; +"Backup failed" = "Falha no backup"; +"Backup has no importable sections." = "O backup não tem seções importáveis."; +"Chat & story filters" = "Filtros de conversas e stories"; +"Chat backgrounds" = "Planos de fundo de conversas"; +"Clear selected data" = "Limpar dados selecionados"; +"Corrupt entry path." = "Caminho de entrada corrompido."; +"Could not decompress archive." = "Não foi possível descompactar o arquivo."; +"Could not open archive." = "Não foi possível abrir o arquivo."; +"Could not open staging file." = "Não foi possível abrir o arquivo temporário."; +"Could not read the backup archive." = "Não foi possível ler o arquivo de backup."; +"Could not write archive." = "Não foi possível gravar o arquivo."; +"Could not write backup file." = "Não foi possível gravar o arquivo de backup."; +"Could not write extracted file." = "Não foi possível gravar o arquivo extraído."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "Os dados existentes dos itens marcados serão substituídos. Pode ser necessário reiniciar para tudo entrar em vigor."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "Exporte ou importe dados do RyukGram — configurações, filtros por conta, conversas ocultas e bloqueadas, Analisador de Perfil, galeria, planos de fundo de conversas e mensagens excluídas. Escolha qualquer combinação em cada página. As configurações ficam em um arquivo JSON simples; pacotes com mídia são exportados como um .ryukbak compactado."; +"Hidden & locked chats" = "Conversas ocultas e bloqueadas"; +"Import" = "Importar"; +"Inspect the full manifest" = "Inspecionar o manifesto completo"; +"Load a .json or .ryukbak backup" = "Carregar um backup .json ou .ryukbak"; +"Not a RyukGram backup archive." = "Não é um arquivo de backup do RyukGram."; +"PK %@" = "PK %@"; +"Preparing backup…" = "Preparando backup…"; +"Reading backup…" = "Lendo backup…"; +"Save settings or a full backup" = "Salvar configurações ou um backup completo"; +"Tick what to apply. Rows not in this backup are hidden." = "Marque o que aplicar. Linhas que não estão neste backup ficam ocultas."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "Marque o que incluir. Toque em uma linha para inspecioná-la. Adicionar galeria, planos de fundo de conversas ou mensagens excluídas gera um pacote .ryukbak compactado."; +"Truncated entry data." = "Dados de entrada truncados."; +"Truncated entry length." = "Comprimento de entrada truncado."; +"Truncated entry path." = "Caminho de entrada truncado."; +"Unsafe entry path." = "Caminho de entrada inseguro."; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED // +// Settings → Advanced tab // +////////////////////////////////////////////////////////////////////////////// + +"Advanced" = "Avançado"; +"Auto-clear cache" = "Limpar cache automaticamente"; +"Automatically opens settings when the app launches" = "Abre as configurações automaticamente quando o app inicia"; +"Cache" = "Cache"; +"Cache cleared" = "Cache limpo"; +"Calculating cache size…" = "Calculando tamanho do cache…"; +"Clear" = "Limpar"; +"Clear cache" = "Limpar cache"; +"Clear cache (%@)" = "Limpar cache (%@)"; +"Clearing cache…" = "Limpando cache…"; +"Clearing still scans on demand." = "A limpeza ainda escaneia sob demanda."; +"Daily" = "Diariamente"; +"Disable safe mode" = "Desativar modo de segurança"; +"Enable tweak settings quick-access" = "Ativar acesso rápido às configurações do tweak"; +"Fix duplicate notifications" = "Corrigir notificações duplicadas"; +"Free %@ of Instagram cache." = "Libera %@ de cache do Instagram."; +"Freed %@" = "Liberado %@"; +"Hold on the home tab to open RyukGram settings" = "Segure na aba Início para abrir as configurações do RyukGram"; +"Monthly" = "Mensalmente"; +"Nothing to clear" = "Nada para limpar"; +"Off skips the size scan when Advanced opens." = "Desativado pula a análise de tamanho quando o Avançado abre."; +"Pause playback when opening settings" = "Pausar reprodução ao abrir configurações"; +"Always show what's new" = "Sempre mostrar novidades"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "Manter o ponto azul em cada novo recurso em vez de removê-lo após visualizar"; +"Preserve messages database" = "Preservar banco de dados de mensagens"; +"Pauses any playing video/audio when settings opens" = "Pausa qualquer vídeo/áudio em reprodução quando as configurações abrem"; +"Prevents Instagram from resetting settings after crashes (at your own risk)" = "Impede que o Instagram resete as configurações após travamentos (por sua conta e risco)"; +"Prevents two banners for the same message when IG is in the foreground" = "Evita dois banners para a mesma mensagem quando o IG está em primeiro plano"; +"Remove Instagram's cached images, videos, and temporary files." = "Remove imagens, vídeos e arquivos temporários em cache do Instagram."; +"Reset onboarding state" = "Redefinir estado de boas-vindas"; +"Run a silent cache clear on launch when the interval has elapsed." = "Executa uma limpeza de cache silenciosa na inicialização quando o intervalo expirar."; +"Show cache size" = "Mostrar tamanho do cache"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "Pular o banco de dados de mensagens ao limpar — mantém DMs, rascunhos e mensagens salvas."; +"Show tweak settings on app launch" = "Mostrar configurações do tweak ao iniciar o app"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "Suprime a segunda notificação que o IG enfileira no app enquanto a extensão de notificação também a entrega."; +"Weekly" = "Semanalmente"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED EXPERIMENTAL // +// Settings → Advanced → Advanced experimental features // +////////////////////////////////////////////////////////////////////////////// + +"Actions" = "Ações"; +"Advanced experimental features" = "Recursos experimentais avançados"; +"All experimental toggles will be turned off. Instagram will restart." = "Todas as chaves experimentais serão desligadas. O Instagram irá reiniciar."; +"Direct Notes — Audio reply" = "Notas de DM — Resposta em áudio"; +"Direct Notes — Avatar reply" = "Notas de DM — Resposta com avatar"; +"Direct Notes — Friend Map" = "Notas de DM — Mapa de Amigos"; +"Direct Notes — GIFs & stickers reply" = "Notas de DM — Resposta com GIFs e figurinhas"; +"Direct Notes — Photo reply" = "Notas de DM — Resposta com foto"; +"Disabled after repeated crashes." = "Desativado após travamentos repetidos."; +"Enables GIF/sticker replies" = "Ativa respostas com GIF/figurinhas"; +"Enables photo replies" = "Ativa respostas com foto"; +"Enables the audio-note reply type" = "Ativa o tipo de resposta por nota de áudio"; +"Enables the avatar reply type" = "Ativa o tipo de resposta por avatar"; +"Experimental flags reset" = "Sinalizadores experimentais resetados"; +"Flip what you want on, then tap Apply to restart. Some flags may not work on every account or IG version. Flags auto-reset if IG crashes on launch 3 times." = "Ative o que desejar e toque em Aplicar para reiniciar. Alguns sinalizadores podem não funcionar em todas as contas ou versões do IG. Eles resetam automaticamente se o IG travar 3 vezes ao iniciar."; +"Forces Prism-gated experiments on" = "Força a ativação de experimentos restritos ao Prism"; +"Forces the Homecoming home surface / nav on" = "Força a ativação da interface/navegação Homecoming"; +"Forces the QuickSnap / Instants surface on in feed, inbox, stories, and notes tray" = "Força a interface QuickSnap / Instants no feed, caixa de entrada, stories e bandeja de notas"; +"Got it" = "Entendi"; +"Heads up" = "Atenção"; +"Hidden Instagram experiments" = "Experimentos ocultos do Instagram"; +"Hidden Instagram experiments (in Advanced)" = "Experimentos ocultos do Instagram (em Avançado)"; +"Homecoming" = "Homecoming"; +"Notes & QuickSnap" = "Notas e QuickSnap"; +"Prism design system" = "Sistema de design Prism"; +"QuickSnap (Instants)" = "QuickSnap (Instants)"; +"Reset all experimental flags" = "Redefinir todos os sinalizadores experimentais"; +"Reset experimental flags?" = "Redefinir sinalizadores experimentais?"; +"Restart Instagram to apply changes" = "Reinicie o Instagram para aplicar as mudanças"; +"Shows the friend map entry in Direct Notes" = "Mostra a entrada do mapa de amigos nas Notas de DM"; +"Surfaces" = "Áreas"; +"These toggles flip hidden Instagram experiments on. Some features may not work on every account or IG version. If IG keeps crashing on launch, the flags auto-reset after 3 failed starts." = "Estas chaves ativam experimentos ocultos do Instagram. Alguns recursos podem não funcionar em todas as contas ou versões do IG. Se o IG continuar travando ao iniciar, os sinalizadores resetam após 3 falhas."; +"Toggle hidden Instagram experiments. Some may not work on every account or IG version." = "Alternar experimentos ocultos do Instagram. Alguns podem não funcionar em todas as contas ou versões do IG."; +"Turn every experimental toggle off" = "Desligar todas as chaves experimentais"; + +////////////////////////////////////////////////////////////////////////////// +// DEBUG // +// Settings → Debug tab // +////////////////////////////////////////////////////////////////////////////// + +"Button Cell" = "Célula de Botão"; +"Change the value on the right" = "Alterar o valor à direita"; +"Could not delete: %@" = "Não foi possível apagar: %@"; +"Debug" = "Depuração"; +"Delete an imported override and fall back to the shipped strings" = "Apagar uma substituição importada e voltar para os textos originais"; +"Deleted %@ override. Restart to apply." = "Substituição %@ apagada. Reinicie para aplicar."; +"Enable FLEX gesture" = "Ativar gesto FLEX"; +"Export strings" = "Exportar strings"; +"Hold 5 fingers on the screen to open FLEX" = "Segure 5 dedos na tela para abrir o FLEX"; +"I have %@%@" = "Eu tenho %@%@"; +"Import a .strings file for a language" = "Importar um arquivo .strings para um idioma"; +"Import a .strings file to update a translation. Pick a language, select the file, restart." = "Importe um arquivo .strings para atualizar uma tradução. Escolha um idioma, selecione o arquivo, reinicie."; +"Link Cell" = "Célula de Link"; +"Localization" = "Tradução"; +"Menu Cell" = "Célula de Menu"; +"Navigation Cell" = "Célula de Navegação"; +"No imported localization files to reset." = "Nenhum arquivo de tradução importado para redefinir."; +"No overrides" = "Sem substituições"; +"Open FLEX on app focus" = "Abrir FLEX ao focar no app"; +"Open FLEX on app launch" = "Abrir FLEX ao iniciar o app"; +"Opens FLEX when the app is focused" = "Abre o FLEX quando o app ganha foco"; +"Opens FLEX when the app launches" = "Abre o FLEX quando o app inicia"; +"Pick a language to delete the imported file" = "Escolha um idioma para apagar o arquivo importado"; +"Pick a language to export" = "Escolha um idioma para exportar"; +"Reset localization" = "Redefinir tradução"; +"Pick a language and share its .strings file" = "Escolha um idioma para compartilhar seu arquivo .strings"; +"Static Cell" = "Célula Estática"; +"Stepper cell" = "Célula Stepper"; +"Switch Cell" = "Célula Switch"; +"Switch Cell (Restart)" = "Célula Switch (Reiniciar)"; +"Tap the switch" = "Toque na chave"; +"These features rely on hidden Instagram flags and may not work on all accounts or versions." = "Estes recursos dependem de sinalizadores ocultos do Instagram e podem não funcionar em todas as contas ou versões."; +"Update localization file" = "Atualizar arquivo de tradução"; +"Using icon" = "Usando ícone"; +"Using image" = "Usando imagem"; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOADS & MEDIA ACTIONS // +// Action button menus, download/share/copy toasts, quality picker pills. // +////////////////////////////////////////////////////////////////////////////// + +"%@ settings" = "Configurações de %@"; +"%lu items" = "%lu itens"; +"Cancelled" = "Cancelado"; +"Carousel" = "Carrossel"; +"Carousel · %lu items" = "Carrossel · %lu itens"; +"Copied %lu URLs" = "Copiadas %lu URLs"; +"Copied caption" = "Legenda copiada"; +"Copied download URL" = "URL de download copiada"; +"Copied quality info" = "Informações de qualidade copiadas"; +"Copied video URL" = "URL do vídeo copiada"; +"Copy all URLs" = "Copiar todas as URLs"; +"Copy caption" = "Copiar legenda"; +"Copy download URL" = "Copiar URL de download"; +"Could not extract any URLs" = "Não foi possível extrair nenhuma URL"; +"Could not extract audio URL" = "Não foi possível extrair a URL do áudio"; +"Could not extract media URL" = "Não foi possível extrair a URL da mídia"; +"Could not extract photo URL" = "Não foi possível extrair a URL da foto"; +"Could not extract video URL" = "Não foi possível extrair a URL do vídeo"; +"Done" = "Concluído"; +"Download all stories and share?" = "Baixar todos os stories e compartilhar?"; +"Download all to Photos" = "Baixar tudo para o Fotos"; +"Download and share all" = "Baixar e compartilhar tudo"; +"Download failed" = "Falha ao baixar"; +"Downloaded %lu items" = "%lu itens baixados"; +"Downloading audio…" = "Baixando áudio…"; +"Failed to save" = "Falha ao salvar"; +"File" = "Arquivo"; +"HD" = "HD"; +"HD download complete" = "Download em HD concluído"; +"HD video" = "Vídeo HD"; +"Mute audio" = "Silenciar áudio"; +"No caption on this post" = "Sem legenda neste post"; +"No carousel children" = "Nenhum item no carrossel"; +"No cover image" = "Sem imagem de capa"; +"No media" = "Sem mídia"; +"No media to expand" = "Sem mídia para expandir"; +"No media to show" = "Sem mídia para mostrar"; +"No media URL" = "Sem URL de mídia"; +"No URLs" = "Sem URLs"; +"No URLs found" = "Nenhuma URL encontrada"; +"No video URL" = "Sem URL de vídeo"; +"Not a carousel" = "Não é um carrossel"; +"Nothing to share" = "Nada para compartilhar"; +"Opening creator…" = "Abrindo criador..."; +"Photo library access denied" = "Acesso à biblioteca de fotos negado"; +"Photos access denied" = "Acesso ao Fotos negado"; +"Preparing repost…" = "Preparando repost..."; +"Raw image" = "Imagem original"; +"Repost" = "Repostar"; +"Repost unavailable" = "Repostagem indisponível"; +"Save failed" = "Falha ao salvar"; +"Saved %lu items" = "%lu itens salvos"; +"Saved to Photos" = "Salvo no Fotos"; +"Saved to RyukGram" = "Salvo no RyukGram"; +"Saving to Photos" = "Salvando em Fotos"; +"Saving…" = "Salvando..."; +"Unmute audio" = "Ativar som"; +"Video · %@" = "Vídeo · %@"; +"View cover" = "Ver capa"; +"View mentions" = "Ver menções"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES & MESSAGES (FEATURES) // +// Buttons, menu entries, toasts and alerts shown while watching stories or // +// inside DM threads. // +////////////////////////////////////////////////////////////////////////////// + +" %lu votes · avg %.0f%% " = " %lu votos · média %.0f%% "; +"%@ can't be converted" = "%@ não pode ser convertido"; +"%@ unsent a message" = "%@ removeu uma mensagem"; +"%@ unsent a message from %@" = "%1$@ removeu uma mensagem de %2$@"; +"A message was unsent" = "Uma mensagem foi removida"; +"Add" = "Adicionar"; +"Add to block list" = "Adicionar à lista de bloqueio"; +"Added to block list" = "Adicionado à lista de bloqueio"; +"Added to exclude list" = "Adicionado à lista de exclusão"; +"Audio not loaded yet. Play the message first and try again." = "Áudio ainda não carregado. Reproduza a mensagem primeiro e tente novamente."; +"Audio sent" = "Áudio enviado"; +"Audio URL not available" = "URL de áudio não disponível"; +"Audio/Video from Files" = "Áudio/Vídeo dos Arquivos"; +"Blocked" = "Bloqueado"; +"Cancel" = "Cancelar"; +"Clear preserved messages?" = "Limpar mensagens preservadas?"; +"Converting…" = "Convertendo..."; +"Copy link" = "Copiar link"; +"Copy text" = "Copiar texto"; +"Could not copy selected video" = "Não foi possível copiar o vídeo selecionado"; +"Could not find media" = "Mídia não encontrada"; +"Could not find story media" = "Mídia do story não encontrada"; +"Could not get audio data. Try again after refreshing the chat." = "Não foi possível obter os dados de áudio. Tente novamente após atualizar o chat."; +"Disable read receipts" = "Desativar confirmação de leitura"; +"Disappearing media" = "Mídia temporária"; +"Download audio" = "Baixar áudio"; +"Enable read receipts" = "Ativar confirmação de leitura"; +"Error: %@" = "Erro: %@"; +"Exclude chat" = "Excluir chat"; +"Exclude from seen" = "Excluir de visto"; +"Exclude story seen" = "Excluir visto de story"; +"Excluded" = "Excluído"; +"Extracting audio…" = "Extraindo áudio..."; +"FFmpeg conversion failed" = "Conversão pelo FFmpeg falhou"; +"File sending not supported" = "Envio de arquivo não suportado"; +"Follow" = "Seguir"; +"Following" = "Seguindo"; +"Format not supported without FFmpegKit" = "Formato não suportado sem o FFmpegKit"; +"Inserts a button on disappearing media overlays" = "Insere um botão nas sobreposições de mídia temporária"; +"Inserts a speaker button to mute/unmute disappearing media" = "Insere um botão de alto-falante para silenciar/ativar som em mídias temporárias"; +"Inserts an eye button to mark the current disappearing media as viewed" = "Insere um botão de olho para marcar a mídia temporária atual como visualizada"; +"Link copied" = "Link copiado"; +"Mark as viewed" = "Marcar como visualizada"; +"Mark messages as seen" = "Marcar mensagens como vistas"; +"Mark seen" = "Marcar visto"; +"Marked as viewed" = "Marcada como visualizada"; +"Marked messages as seen" = "Mensagens marcadas como vistas"; +"Mentions" = "Menções"; +"Message from %@ was unsent" = "Uma mensagem de %@ foi removida"; +"Message sender not found" = "Remetente da mensagem não encontrado"; +"Messages settings" = "Configurações de mensagens"; +"Mute story audio" = "Silenciar áudio do story"; +"no audio track could be read" = "nenhuma faixa de áudio pôde ser lida"; +"No audio URL found. Try again after refreshing the chat." = "Nenhuma URL de áudio encontrada. Tente novamente após atualizar o chat."; +"No mentions in this story" = "Sem menções neste story"; +"No thread key" = "Sem chave da conversa"; +"No video selected" = "Nenhum vídeo selecionado"; +"No voice send method found" = "Nenhum método de envio de voz encontrado"; +"Note has no downloadable content" = "A nota não tem conteúdo para baixar"; +"Note text copied" = "Texto da nota copiado"; +"Open GitHub" = "Abrir GitHub"; +"Pick audio or video" = "Escolher áudio ou vídeo"; +"Read receipts disabled" = "Confirmações de leitura desativadas"; +"Read receipts enabled" = "Confirmações de leitura ativadas"; +"Read receipts will be blocked for this chat." = "A confirmação de leitura será bloqueada para esta conversa."; +"Read receipts will no longer be blocked for this chat." = "A confirmação de leitura não será mais bloqueada para esta conversa."; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "Atualizar a aba de mensagens vai apagar %lu mensagem preservada. Não pode ser desfeito."; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "Atualizar a aba de mensagens vai apagar %lu mensagens preservadas. Não pode ser desfeito."; +"Remove" = "Remover"; +"Remove from block list" = "Remover da lista de bloqueio"; +"Remove from exclude list" = "Remover da lista de exclusão"; +"Removed" = "Removido"; +"Removed from list" = "Removido da lista"; +"Save GIF" = "Salvar GIF"; +"Selection too short (min 0.5s)" = "Seleção muito curta (mín 0,5s)"; +"Send anyway" = "Enviar assim mesmo"; +"Send Audio" = "Enviar Áudio"; +"Send failed: %@" = "Falha ao enviar: %@"; +"Send File" = "Enviar arquivo"; +"Send service not found" = "Serviço de envio não encontrado"; +"Show audio toggle" = "Mostrar alternância de áudio"; +"Show mark-as-viewed button" = "Mostrar botão de marcar como visto"; +"Story read receipts disabled" = "Confirmações de visualização de story desativadas"; +"Story read receipts enabled" = "Confirmações de visualização de story ativadas"; +"This chat will resume normal read-receipt behavior." = "Esta conversa voltará ao comportamento normal de confirmação de leitura."; +"This file" = "Este arquivo"; +"Total: %@" = "Total: %@"; +"Un-exclude chat" = "Remover exclusão do chat"; +"Un-exclude story seen" = "Remover exclusão de visto de story"; +"Un-excluded" = "Não excluído"; +"Unblocked" = "Desbloqueado"; +"Unlimited replay enabled" = "Repetição ilimitada ativada"; +"Unmute story audio" = "Ativar som do story"; +"Unsent" = "Removida"; +"Upload Audio" = "Enviar Áudio"; +"VC not found" = "Chamada de vídeo não encontrada"; +"Video from Library" = "Vídeo da biblioteca"; +"Visual messages will expire" = "Mensagens visuais expirarão"; +"Visual messages: expiring" = "Mensagens visuais: expirando"; +"Visual messages: unlimited replay" = "Mensagens visuais: repetição ilimitada"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "Adicionar plano de fundo"; +"Add Chat Background" = "Adicionar plano de fundo da conversa"; +"Adds your own image backgrounds to Instagram chats" = "Adiciona suas próprias imagens como plano de fundo nas conversas do Instagram"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "Após ativar, abra qualquer conversa, toque no botão de tema e depois no ícone de foto no canto superior direito."; +"Blur" = "Desfoque"; +"Browse chats" = "Navegar pelas conversas"; +"Browse chats (%ld)" = "Navegar pelas conversas (%ld)"; +"Change Background" = "Alterar plano de fundo"; +"Change default" = "Alterar padrão"; +"Chat Backgrounds" = "Planos de fundo de conversas"; +"Choose an image used when no chat override exists" = "Escolha uma imagem usada quando não há substituição por conversa"; +"Choose Image" = "Escolher imagem"; +"Clear default" = "Limpar padrão"; +"Couldn't import image" = "Não foi possível importar a imagem"; +"Custom Chat Background" = "Plano de fundo personalizado da conversa"; +"Default background" = "Plano de fundo padrão"; +"Delete library images, default background, and chat overrides" = "Excluir imagens da biblioteca, plano de fundo padrão e substituições por conversa"; +"Dim in dark mode" = "Escurecer no modo escuro"; +"Edit image settings" = "Editar configurações de imagem"; +"Enable custom backgrounds" = "Ativar planos de fundo personalizados"; +"Enter a username, chat name, or thread ID." = "Digite um nome de usuário, nome da conversa ou ID da thread."; +"Group" = "Grupo"; +"Image Settings" = "Configurações de imagem"; +"Library" = "Biblioteca"; +"Library, default, and per-chat overrides will be deleted." = "A biblioteca, o padrão e as substituições por conversa serão excluídos."; +"No Custom" = "Sem personalizado"; +"Opacity" = "Opacidade"; +"Photo Library" = "Biblioteca de fotos"; +"Pick default" = "Escolher padrão"; +"Pinch + drag to position" = "Pinça + arraste para posicionar"; +"Quit and reopen Instagram for the change to take effect." = "Feche e reabra o Instagram para a alteração entrar em vigor."; +"Recently set" = "Definido recentemente"; +"Remove the global fallback background" = "Remover o plano de fundo de reserva global"; +"Replace the default background image" = "Substituir a imagem de plano de fundo padrão"; +"Reset all backgrounds" = "Redefinir todos os planos de fundo"; +"Reset all backgrounds?" = "Redefinir todos os planos de fundo?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "Redefinir ajusta a opacidade para 1.0, o desfoque para 0 e o escurecimento para 0."; +"RyukGram Gallery" = "Galeria do RyukGram"; +"Search username, name, or thread ID" = "Buscar nome de usuário, nome ou ID da thread"; +"Set as default" = "Definir como padrão"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "Toque em mais para adicionar. Toque em um plano de fundo para editar, definir como padrão ou excluir."; +"This Chat Background" = "Plano de fundo desta conversa"; +"Thread ID" = "ID da thread"; +"Used only when a chat does not have its own custom background." = "Usado somente quando uma conversa não tem seu próprio plano de fundo personalizado."; +"View and manage chats with custom backgrounds" = "Ver e gerenciar conversas com planos de fundo personalizados"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL FEATURES // +// Strings inside per-feature overlays: fake location, color picker, notes // +// customization, profile copy, etc. // +////////////////////////////////////////////////////////////////////////////// + +"Add location" = "Adicionar localização"; +"Add preset" = "Adicionar predefinição"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "Afeta tudo acima. Quando desativado, o tema e as sobreposições por área do RyukGram só se aplicam enquanto o iOS estiver no modo escuro — deixando o modo claro intacto."; +"Apply & restart" = "Aplicar e reiniciar"; +"Background" = "Fundo"; +"Behavior" = "Comportamento"; +"Change location" = "Alterar localização"; +"Clipboard is not an Instagram URL" = "A área de transferência não contém uma URL do Instagram"; +"Comments hidden" = "Comentários ocultos"; +"Comments shown" = "Comentários exibidos"; +"Copied text to clipboard" = "Texto copiado para a área de transferência"; +"Copy" = "Copiar"; +"Copy bio" = "Copiar bio"; +"Copy name" = "Copiar nome"; +"Could not find cover image" = "Não foi possível encontrar a imagem de capa"; +"Current: %@" = "Atual: %@"; +"Dark" = "Escuro"; +"Disable" = "Desativar"; +"Download GIF" = "Baixar GIF"; +"Dropped pin" = "Pin solto"; +"Emoji" = "Emoji"; +"Enable" = "Ativar"; +"Enable Location Services for Instagram in Settings to use your current location." = "Ative os Serviços de Localização para o Instagram nas Configurações para usar sua localização atual."; +"Enter emoji" = "Inserir emoji"; +"Fake location" = "Localização falsa"; +"Force theme" = "Forçar tema"; +"Keyboard theme" = "Tema do teclado"; +"Light" = "Claro"; +"Location access denied" = "Acesso à localização negado"; +"Location Services off" = "Serviços de Localização desligados"; +"Name" = "Nome"; +"Nothing to copy" = "Nada para copiar"; +"Off, Light, Dark, or OLED" = "Desativado, Claro, Escuro ou OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "Tema de chat OLED"; +"Open Settings" = "Abrir Configurações"; +"Optional per-surface overrides. Each one is independent of the theme above." = "Sobreposições opcionais por área. Cada uma é independente do tema acima."; +"Override iOS appearance regardless of system mode" = "Sobrepõe a aparência do iOS independentemente do modo do sistema"; +"Override the keyboard appearance when typing" = "Sobrepor a aparência do teclado ao digitar"; +"Pick location" = "Escolher localização"; +"Pure black DM thread + incoming bubbles" = "Conversa de DM e balões recebidos em preto puro"; +"Reset theme" = "Redefinir tema"; +"Restart Instagram to apply your theme changes" = "Reinicie o Instagram para aplicar as mudanças de tema"; +"Save" = "Salvar"; +"Save preset" = "Salvar predefinição"; +"Saved locations" = "Localizações salvas"; +"Select color" = "Selecionar cor"; +"Set location" = "Definir localização"; +"The theme RyukGram applies to Instagram." = "O tema que o RyukGram aplica ao Instagram."; +"Theme" = "Tema"; +"Turn every theme option off and restart" = "Desativar todas as opções de tema e reiniciar"; +"Turn Location Services on in Settings → Privacy to use your current location." = "Ative os Serviços de Localização em Configurações → Privacidade para usar sua localização atual."; +"Type an emoji to use as the note bubble icon." = "Digite um emoji para usar como ícone da bolha da nota."; +"View profile picture" = "Ver foto do perfil"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE ANALYZER // +// Settings → Profile Analyzer // +////////////////////////////////////////////////////////////////////////////// + +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu contas? As primeiras %ld serão processadas para evitar limites de taxa."; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu contas? Isso é executado sequencialmente com uma breve pausa entre cada."; +"%@ followers · %@ following" = "%@ seguidores · %@ seguindo"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "há %d d"; +"%dh ago" = "há %d h"; +"%dm ago" = "há %d min"; +"%lu accounts followed" = "%lu contas seguidas"; +"%lu accounts unfollowed" = "%lu contas deixaram de ser seguidas"; +"%lu followers · %lu following" = "%lu seguidores · %lu seguindo"; +"%lu of %lu" = "%lu de %lu"; +"%lu saved · comparing against %@" = "%lu salvos · comparando com %@"; +"(empty)" = "(vazio)"; +"(no analyzer data)" = "(sem dados do analisador)"; +"a saved snapshot" = "uma captura salva"; +"About Profile Analyzer" = "Sobre o Analisador de Perfil"; +"All preferences (%lu)" = "Todas as preferências (%lu)"; +"Analysis complete" = "Análise completa"; +"Analysis failed" = "Análise falhou"; +"Another analysis is already running" = "Outra análise já está em execução"; +"Available after your next scan" = "Disponível após sua próxima análise"; +"Batch follow" = "Seguir em massa"; +"Batch follow finished" = "Seguimento em massa finalizado"; +"Batch unfollow" = "Deixar de seguir em massa"; +"Batch unfollow finished" = "Deixar de seguir em massa finalizado"; +"Categories" = "Categorias"; +"Clear visited profiles" = "Limpar perfis visitados"; +"Compare next scan against" = "Comparar próxima varredura com"; +"Comparing against %@" = "Comparando com %@"; +"Continue" = "Continuar"; +"Couldn't fetch profile information" = "Não foi possível obter informações do perfil"; +"Delete %lu snapshots? This can't be undone." = "Excluir %lu capturas? Isso não pode ser desfeito."; +"Delete (%lu)" = "Excluir (%lu)"; +"Delete snapshots" = "Excluir capturas"; +"Delete this snapshot? This can't be undone." = "Excluir esta captura? Isso não pode ser desfeito."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "Cada varredura salva uma cópia completa de seus seguidores e de quem você segue para que você possa comparar depois. Tudo fica neste dispositivo."; +"Export" = "Exportar"; +"Fetching followers (%lu/%ld)…" = "Buscando seguidores (%lu/%ld)…"; +"Fetching following (%lu/%ld)…" = "Buscando seguindo (%lu/%ld)…"; +"Fetching profile info…" = "Buscando informações do perfil…"; +"File is not a valid RyukGram backup." = "O arquivo não é uma exportação válida do RyukGram."; +"Filter" = "Filtrar"; +"Filter · %lu" = "Filtrar · %lu"; +"First scan: %@" = "Primeira análise: %@"; +"First scan: we collect your followers and following lists and save them locally." = "Primeira análise: coletamos suas listas de seguidores e seguindo e as salvamos localmente."; +"Follow %lu" = "Seguir %lu"; +"Follower count exceeds %ld — analysis disabled to avoid rate limits." = "Contagem de seguidores excede %ld — análise desativada para evitar limites de taxa."; +"Followers" = "Seguidores"; +"Following… %lu / %lu" = "Seguindo… %lu / %lu"; +"Gained since last scan" = "Ganhos desde a última análise"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Atenção: este recurso está em beta e acessa a API privada do Instagram. Executá-lo repetidamente ou logo após atividades intensas de seguir/deixar de seguir pode acionar um limite temporário. Use com moderação e por sua conta e risco."; +"Import complete" = "Importação completa"; +"Include" = "Incluir"; +"Keep newest" = "Manter as mais recentes"; +"Keep newest snapshots" = "Manter capturas mais recentes"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Contas grandes são bloqueadas: a análise é desativada acima de 13.000 seguidores para evitar que o Instagram limite o app inteiro."; +"Last scan: %@" = "Última análise: %@"; +"Logs every profile you open. Stays on-device." = "Registra cada perfil que você abre. Fica apenas no dispositivo."; +"Lost followers" = "Seguidores perdidos"; +"Most visited" = "Mais visitado"; +"Mutual followers" = "Seguidores mútuos"; +"Name: %@ → %@" = "Nome: %@ → %@"; +"New followers" = "Novos seguidores"; +"No active Instagram session found" = "Nenhuma sessão ativa do Instagram encontrada"; +"No results" = "Sem resultados"; +"No scan yet" = "Nenhuma análise ainda"; +"Not following you back" = "Não seguem você de volta"; +"Not verified only" = "Apenas não verificados"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "Nada é enviado para a rede — tudo permanece neste dispositivo e pode ser apagado pelo ícone de lixeira."; +"Nothing was applied." = "Nada foi aplicado."; +"OK" = "OK"; +"Older snapshots beyond the limit are removed automatically" = "Capturas mais antigas além do limite são removidas automaticamente"; +"Older snapshots beyond this limit are deleted on the next scan." = "Capturas mais antigas além deste limite são excluídas na próxima varredura."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "Escolha o que remover. \"Capturas\" limpa as diferenças de varredura e todas as capturas gravadas; \"perfis visitados\" apaga o histórico de visitas."; +"Posts" = "Publicações"; +"Preferences" = "Preferências"; +"Previous scan" = "Varredura anterior"; +"Private account" = "Conta privada"; +"Private only" = "Apenas privados"; +"Profile Analyzer" = "Analisador de Perfil"; +"Profile Analyzer data" = "Dados do Analisador de Perfil"; +"Profile picture changed" = "Foto de perfil alterada"; +"Profile updates" = "Atualizações de perfil"; +"Profiles you've opened recently" = "Perfis que você abriu recentemente"; +"Raw" = "Bruto"; +"Raw JSON" = "JSON Bruto"; +"Record snapshots" = "Gravar capturas"; +"Recording" = "Gravando"; +"Request failed" = "Solicitação falhou"; +"Reset analyzer data" = "Redefinir dados do analisador"; +"Reset complete" = "Reset completo"; +"Reset everything" = "Redefinir tudo"; +"Reset selected data?" = "Redefinir dados selecionados?"; +"Reset snapshots" = "Apagar registros"; +"Rolling — always your last run" = "Contínuo — sempre sua última execução"; +"Run analysis" = "Executar análise"; +"Run your first analysis" = "Executar sua primeira análise"; +"Save a dated entry on every scan" = "Salvar uma entrada datada a cada varredura"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "Da segunda análise em diante: cada análise compara com a anterior, assim podemos mostrar seguidores ganhos/perdidos, suas próprias ações de seguir/deixar de seguir e atualizações de perfil."; +"Settings" = "Configurações"; +"Since last scan" = "Desde a última análise"; +"Snapshot" = "Captura"; +"Snapshots" = "Capturas"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "As capturas permitem arquivar cada varredura e escolher com qual as novas varreduras serão comparadas. \"Rastrear visitas\" registra cada perfil que você abre para que você possa revisá-los aqui."; +"Sort" = "Ordenar"; +"Starting…" = "Iniciando…"; +"They follow you, you don't follow back" = "Eles seguem você, você não segue de volta"; +"This can't be undone." = "Isso não pode ser desfeito."; +"Ticked data will be cleared. Tap a row to see what's stored." = "Os dados selecionados serão apagados. Toque em qualquer linha para ver o que está armazenado."; +"Today" = "Hoje"; +"Too many followers" = "Seguidores demais"; +"Too many followers to analyze" = "Seguidores demais para analisar"; +"Track visited profiles" = "Rastrear perfis visitados"; +"Tracking" = "Rastreamento"; +"Tracking off — enable below to log visits" = "Rastreamento desativado — ative abaixo para registrar visitas"; +"Unfollow" = "Deixar de seguir"; +"Unfollow %lu" = "Deixar de seguir %lu"; +"Unfollow @%@?" = "Deixar de seguir @%@?"; +"Unfollowed you since last scan" = "Deixaram de seguir você desde a última análise"; +"Unfollowing… %lu / %lu" = "Deixando de seguir… %lu / %lu"; +"Unlimited" = "Ilimitado"; +"Username A → Z" = "Nome de usuário A → Z"; +"Username Z → A" = "Nome de usuário Z → A"; +"Username, name or picture changes" = "Mudanças de nome de usuário, nome ou foto"; +"Username: @%@ → @%@" = "Nome de usuário: @%@ → @%@"; +"Using %@ across %lu snapshots." = "Usando %@ em %lu capturas."; +"Verified only" = "Apenas verificados"; +"Visited" = "Visitado"; +"Visited profiles" = "Perfis visitados"; +"We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "Recusamos executar quando a contagem de seguidores excede %ld para evitar limites de taxa do Instagram."; +"You both follow each other" = "Vocês se seguem mutuamente"; +"You don't follow back" = "Você não segue de volta"; +"You follow them, they don't follow back" = "Você segue eles, eles não seguem de volta"; +"You started following" = "Você começou a seguir"; +"You unfollowed" = "Você deixou de seguir"; +"your previous scan" = "sua varredura anterior"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "\"Varredura anterior\" sempre mede em relação à sua última execução. Escolha uma captura salva para comparar com um ponto fixo no tempo."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ Isto está ficando grande — reduza o limite ou exclua capturas mais antigas para liberar espaço."; + +////////////////////////////////////////////////////////////////////////////// +// SETTINGS VIEWS & DIALOGS // +// Excluded-lists managers, backup/restore flows, in-picker labels. // +////////////////////////////////////////////////////////////////////////////// + +"Absolute format" = "Formato absoluto"; +"Add chat" = "Adicionar chat"; +"Add custom domain" = "Adicionar domínio personalizado"; +"Add to list?" = "Adicionar à lista?"; +"Add user" = "Adicionar usuário"; +"Apply" = "Aplicar"; +"Apply to" = "Aplicar a"; +"Chats" = "Conversas"; +"Colored" = "Colorido"; +"Could not read file." = "Não foi possível ler o arquivo."; +"Could not resolve user ID" = "Não foi possível resolver o ID do usuário"; +"Current location" = "Localização atual"; +"Custom" = "Personalizado"; +"Delete" = "Apagar"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "Cada superfície do IG usa um formatador NSDate diferente. Ative aquelas em que você quer aplicar este formato."; +"Enable fake location" = "Ativar localização falsa"; +"Excluded chats" = "Chats excluídos"; +"Excluded users" = "Usuários excluídos"; +"Follow default" = "Seguir padrão"; +"Force OFF (allow unsends)" = "Forçar DESLIGADO (permitir cancelamentos)"; +"Force ON (preserve unsends)" = "Forçar LIGADO (preservar removidas)"; +"Include seconds when the format already shows time." = "Incluir segundos quando o formato já mostra o horário."; +"Included chats" = "Chats incluídos"; +"Included users" = "Usuários incluídos"; +"KD: default" = "KD: padrão"; +"KD: ON" = "KD: LIGADO"; +"Keep-deleted" = "Manter mensagens apagadas"; +"Keep-deleted override" = "Regra para mensagens apagadas"; +"Name (A–Z)" = "Nome (A–Z)"; +"No DM thread found with @%@" = "Nenhuma conversa de DM encontrada com @%@"; +"Presets" = "Predefinições"; +"Recently added" = "Adicionados recentemente"; +"Relative time" = "Tempo relativo"; +"Relative within" = "Relativo dentro de"; +"Remove from list" = "Remover da lista"; +"Reset" = "Redefinir"; +"Search" = "Buscar"; +"Search address or place" = "Buscar endereço ou lugar"; +"Search by name or username" = "Buscar por nome ou usuário"; +"Search by username or name" = "Buscar por usuário ou nome"; +"Select location on map" = "Selecionar localização no mapa"; +"Set current location" = "Definir localização atual"; +"Set keep-deleted override" = "Definir regra para mensagens apagadas"; +"Show map button" = "Mostrar botão de mapa"; +"Show relative time for dates younger than this many days. 0 disables it." = "Mostra o tempo relativo para datas mais recentes que esses dias. 0 desativa."; +"Show seconds" = "Mostrar segundos"; +"Sort by" = "Ordenar por"; +"Thread" = "Conversa"; +"Time" = "Hora"; +"Use this location" = "Usar esta localização"; +"User '%@' not found" = "Usuário '%@' não encontrado"; +"Username (A–Z)" = "Nome de usuário (A–Z)"; +"Within %ld days" = "Dentro de %ld dias"; +"Within 1 day" = "Dentro de 1 dia"; + +////////////////////////////////////////////////////////////////////////////// +// REELS (FEATURES) // +// Strings from Reels. // +////////////////////////////////////////////////////////////////////////////// + +"No password found" = "Nenhuma senha encontrada"; +"No text field found" = "Nenhum campo de texto encontrado"; +"Refresh Reels?" = "Atualizar Reels?"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE (FEATURES) // +// Strings from Profile. // +////////////////////////////////////////////////////////////////////////////// + +"%lu accounts" = "%lu contas"; +"%lu loaded" = "%lu carregados"; +"%lu loaded · all loaded" = "%lu carregados · todos carregados"; +"Doesn't follow you" = "Não segue você"; +"Everyone is already loaded." = "Todos já foram carregados."; +"Filter & sort" = "Filtrar e ordenar"; +"Follows me" = "Me segue"; +"Follows me first" = "Quem me segue primeiro"; +"Follows you" = "Segue você"; +"Hides everyone who doesn't match all picked filters." = "Oculta todos que não correspondem a todos os filtros escolhidos."; +"Jump to bottom" = "Ir para o fim"; +"Jump to top" = "Ir para o topo"; +"List" = "Lista"; +"List fully loaded" = "Lista totalmente carregada"; +"Load more" = "Carregar mais"; +"Loaded more" = "Mais carregados"; +"Mutuals" = "Mútuos"; +"Mutuals first" = "Mútuos primeiro"; +"Note copied" = "Nota copiada"; +"People I follow" = "Pessoas que sigo"; +"People I follow first" = "Pessoas que sigo primeiro"; +"Reverse order" = "Ordem inversa"; +"Show only" = "Mostrar somente"; +"Verified" = "Verificados"; +"Verified first" = "Verificados primeiro"; + +////////////////////////////////////////////////////////////////////////////// +// MISC // +// Anything that didn't fit a named section. Usually short labels. // +////////////////////////////////////////////////////////////////////////////// + +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(não definido)"; +"720p • progressive • fastest" = "720p • progressivo • mais rápido"; +"Add language" = "Adicionar idioma"; +"Album name" = "Nome do álbum"; +"Are you sure?" = "Você tem certeza?"; +"Bundle" = "Pacote (Bundle)"; +"Copy audio URL" = "Copiar URL do áudio"; +"Copy quality info" = "Copiar info. de qualidade"; +"Copy video URL" = "Copiar URL do vídeo"; +"Could not access reel media" = "Não foi possível acessar a mídia do reel"; +"Could not access reel photo" = "Não foi possível acessar a foto do reel"; +"Could not write file." = "Não foi possível gravar o arquivo."; +"Download all and share?" = "Baixar tudo e compartilhar?"; +"Download Quality" = "Qualidade do Download"; +"Downloading %d%%" = "Baixando %d%%"; +"e.g. 1000000" = "ex.: 1000000"; +"Localization file not found" = "Arquivo de tradução não encontrado"; +"Enter the language code (e.g. fr, de, ja)" = "Insira o código do idioma (ex.: fr, de, ja)"; +"Error" = "Erro"; +"Extras" = "Extras"; +"FFmpegKit Debug" = "Depuração FFmpegKit"; +"File is empty or not a valid .strings file." = "O arquivo está vazio ou não é um arquivo .strings válido."; +"KD: OFF" = "ME: DESATIVADO"; +"Keep-deleted: OFF" = " • Manter apagadas: DESATIVADO"; +"Keep-deleted: ON" = " • Manter apagadas: ATIVADO"; +"Later" = "Depois"; +"Loading" = "Carregando"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "Nome do álbum em Fotos onde o RyukGram salva. Deixe vazio para restaurar o padrão."; +"Next" = "Avançar"; +"No results found." = "Nenhum resultado encontrado."; +"No!" = "Não!"; +"Pick a language to update, or add a new one" = "Escolha um idioma para atualizar ou adicione um novo"; +"Preset" = "Predefinição"; +"Restart" = "Reiniciar"; +"Restart now" = "Reiniciar agora"; +"Restart required" = "Reinicialização necessária"; +"Saved preset \"%@\"" = "Preset salvo \"%@\""; +"selected" = "selecionados"; +"Shared icon, or override per button" = "Ícone compartilhado ou substituição por botão"; +"Speed" = "Velocidade"; +"Unset" = "Não definido"; +"Update localization" = "Atualizar tradução"; +"Updated %@ (%ld keys). Restart to apply." = "Atualizado %@ (%ld chaves). Reinicie para aplicar."; +"Use default" = "Usar padrão"; +"Username or PK" = "Nome de usuário ou PK"; +"Username or raw user PK" = "Nome de usuário ou PK bruto do usuário"; +"Yes" = "Sim"; +"You must restart the app to apply this change" = "Você deve reiniciar o app para aplicar esta mudança"; + +////////////////////////////////////////////////////////////////////////////// +// ABOUT / CREDITS // +// Strings from the About / Credits footer of Settings. // +////////////////////////////////////////////////////////////////////////////// + +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub, Telegram, Doar"; +"About" = "Sobre"; +"Arabic translation" = "Tradução para Árabe"; +"Chinese (Traditional and Simplified) translation" = "Tradução para chinês (tradicional e simplificado)"; +"Credits" = "Créditos"; +"Developers" = "Desenvolvedores"; +"Donate to SoCuul" = "Doar para SoCuul"; +"installed" = "instalado"; +"Korean translation" = "Tradução para Coreano"; +"Portuguese (Brazil) translation" = "Tradução para português (Brasil)"; +"Turkish translation" = "Tradução para o turco"; +"Vietnamese translation" = "Tradução para o vietnamita"; +"French translation" = "Tradução para o francês"; +"Code contributions" = "Contribuições de código"; +"Following feed mode (from InstaSane)" = "Modo de feed Seguindo (do InstaSane)"; +"latest" = "mais recente"; +"Links" = "Links"; +"No releases" = "Sem lançamentos"; +"Original SCInsta developer" = "Desenvolvedor original do SCInsta"; +"Release notes" = "Notas de lançamento"; +"Releases" = "Lançamentos"; +"Report an issue" = "Relatar um problema"; +"Russian translation" = "Tradução para Russo"; +"RyukGram developer" = "Desenvolvedor do RyukGram"; +"Join Telegram channel" = "Entrar no canal do Telegram"; +"Source code" = "Código fonte"; +"View on GitHub" = "Ver no GitHub"; +"Spanish translation" = "Tradução para Espanhol"; +"Support the original SCInsta developer" = "Apoiar o desenvolvedor original do SCInsta"; +"Inspirations" = "Inspirações"; +"Inspirations, contributors, translators" = "Inspirações, colaboradores, tradutores"; +"Code and research" = "Código e pesquisa"; +"Translators" = "Tradutores"; +"Original BHInstagram developer" = "Desenvolvedor original do BHInstagram"; +"OLED theme inspiration" = "Inspiração do tema OLED"; +"Donate to Ryuk" = "Doar para Ryuk"; +"Support RyukGram development" = "Apoiar o desenvolvimento do RyukGram"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "O RyukGram é um fork do SCInsta amplamente retrabalhado — apoiar o desenvolvedor original é muito bem-vindo."; +"Browse changes from previous releases" = "Veja as alterações de versões anteriores"; +"Code inspiration" = "Inspiração de código"; +"zxPluginsInject sideload compatibility shim" = "Camada de compatibilidade de sideload zxPluginsInject"; +"Telegram channel" = "Canal no Telegram"; +"Testing and feature suggestions" = "Testes e sugestões de recursos"; +"Version" = "Versão"; +"Version, credits, and links" = "Versão, créditos e links"; +"What's new in RyukGram" = "O que há de novo no RyukGram"; + +////////////////////////////////////////////////////////////////////////////// +// HD DOWNLOADS // +// Enhanced / HD downloads settings (DASH + FFmpegKit encoding). // +////////////////////////////////////////////////////////////////////////////// + +"720p • progressive • silent" = "720p • progressivo • mudo"; +"Audio only" = "Apenas áudio"; +"Audio ready" = "Áudio pronto"; +"Download video at the highest available quality" = "Baixar vídeo na maior qualidade disponível"; +"Downloads HD video via DASH streams and encodes to H.264. Requires FFmpegKit." = "Baixa vídeo HD via streams DASH e codifica para H.264. Requer FFmpegKit."; +"Encoding speed" = "Velocidade de codificação"; +"Enhanced downloads" = "Downloads aprimorados"; +"Faster = lower quality" = "Mais rápido = menor qualidade"; +"FFmpeg not available" = "FFmpeg não disponível"; +"FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit não está disponível. Instale o IPA sideloaded ou a variante .deb _ffmpeg para ativar."; +"No audio track found" = "Nenhuma trilha de áudio encontrada"; +"Photo" = "Foto"; +"Photo quality" = "Qualidade da foto"; +"silent" = "mudo"; +"Use highest resolution available" = "Usar maior resolução disponível"; +"Video quality" = "Qualidade do vídeo"; +"Which quality to download" = "Qual qualidade baixar"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "'%@' não está nesta build do FFmpegKit — usando h264 por hardware."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-bit 4:2:0. ~2x mais lento, gradientes mais suaves."; +"10-bit colour. Slower, smoother gradients. Software only." = "Cor 10-bit. Mais lento, gradientes mais suaves. Só software."; +"1080p30 baseline." = "Base 1080p30."; +"4K30 baseline." = "Base 4K30."; +"8-bit 4:2:0. Universal default." = "8-bit 4:2:0. Padrão universal."; +"8-bit 4:2:2 chroma. Niche playback." = "Croma 8-bit 4:2:2. Reprodução de nicho."; +"8-bit 4:2:2 chroma. Software only." = "Croma 8-bit 4:2:2. Só software."; +"8-bit 4:4:4 chroma. Software only." = "Croma 8-bit 4:4:4. Só software."; +"8-bit 4:4:4 full chroma. Niche playback." = "Croma completo 8-bit 4:4:4. Reprodução de nicho."; +"8-bit. Best for modern devices." = "8-bit. Melhor para dispositivos modernos."; +"Advanced encoding" = "Codificação avançada"; +"Advanced encoding settings" = "Configurações de codificação avançada"; +"Archival quality." = "Qualidade de arquivamento."; +"Audio bitrate" = "Bitrate de áudio"; +"Audio channels" = "Canais de áudio"; +"Audio codec" = "Codec de áudio"; +"Audio conversion failed" = "Falha na conversão de áudio"; +"Audio sample rate" = "Taxa de amostragem de áudio"; +"Balanced. libx264 default." = "Balanceado. Padrão do libx264."; +"Best practical quality per bit." = "Melhor qualidade prática por bit."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "Bitrate, canais e taxa de amostragem só se aplicam quando o codec é AAC (recodificação)."; +"Cartoons / anime." = "Desenhos / anime."; +"Cinematic. Smaller files." = "Cinematográfico. Arquivos menores."; +"Codec" = "Codec"; +"Container" = "Contêiner"; +"Copy (passthrough)" = "Copiar (passthrough)"; +"CRF quality" = "Qualidade CRF"; +"Downloading video…" = "Baixando vídeo…"; +"Easier to play back on weak devices." = "Mais fácil de reproduzir em dispositivos fracos."; +"Encoder unavailable" = "Codificador indisponível"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "Exemplos: 8M, 12M, 25M, 4500k. Deixe vazio para automático."; +"Failed to download video" = "Falha ao baixar o vídeo"; +"Fast, fixed-bitrate, GPU-accelerated." = "Rápido, bitrate fixo, acelerado por GPU."; +"Fastest, worst compression." = "Mais rápido, pior compressão."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "O Faststart move o índice do MP4 para o início, então a reprodução começa antes do arquivo carregar por completo. Remover metadados apaga as tags de origem (data de criação, handler, codificador) do arquivo."; +"FFmpeg documentation" = "Documentação do FFmpeg"; +"FFmpeg mux failed" = "Falha na multiplexação do FFmpeg"; +"Frame rate" = "Taxa de quadros"; +"H.264 level" = "Nível do H.264"; +"H.264 profile" = "Perfil do H.264"; +"Hardware (VideoToolbox)" = "Hardware (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "O hardware (VideoToolbox) só suporta yuv420p — '%@' foi ignorado. Mude para Software (libx264) para usá-lo."; +"Keep original audio. Fast." = "Manter o áudio original. Rápido."; +"Keep the source frame rate." = "Manter a taxa de quadros original."; +"Let the encoder pick." = "Deixar o codificador escolher."; +"Live-action video." = "Vídeo em ação ao vivo."; +"Lossless. Huge files." = "Sem perdas. Arquivos enormes."; +"Low-latency streaming." = "Streaming de baixa latência."; +"Manual ffmpeg controls in place of Encoding speed." = "Controles manuais do ffmpeg no lugar da velocidade de codificação."; +"Marginal gain, huge time cost." = "Ganho marginal, custo enorme de tempo."; +"Max resolution" = "Resolução máxima"; +"Mono" = "Mono"; +"No tuning. Default." = "Sem ajuste. Padrão."; +"None" = "Nenhum"; +"Pixel format" = "Formato de pixel"; +"Pixel format ignored" = "Formato de pixel ignorado"; +"Preserve film grain." = "Preservar a granulação do filme."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "Preset e Tune se aplicam só ao Software (libx264). Combine o perfil com o formato de pixel: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Incompatibilidades fazem conversão para baixo silenciosamente. O hardware sempre usa yuv420p."; +"Re-encode. Use when source is opus or unsupported." = "Recodificar. Use quando a origem for opus ou não suportada."; +"Reset advanced encoding" = "Redefinir codificação avançada"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "Definir um bitrate de vídeo muda o Software para bitrate fixo e ignora o CRF. Deixe vazio para CRF. O hardware usa bitrate."; +"Slideshow-like content." = "Conteúdo tipo apresentação de slides."; +"Slower, better compression per bit." = "Mais lento, melhor compressão por bit."; +"Smaller, visible artefacts." = "Menor, artefatos visíveis."; +"Software (libx264)" = "Software (libx264)"; +"Standard 8-bit." = "8-bit padrão."; +"Stereo" = "Estéreo"; +"Streaming default." = "Padrão de streaming."; +"Strip metadata" = "Remover metadados"; +"Top of AAC." = "O melhor do AAC."; +"Tune" = "Ajustar"; +"Unknown error" = "Erro desconhecido"; +"Very high quality." = "Qualidade muito alta."; +"Video bitrate" = "Bitrate de vídeo"; +"Video codec" = "Codec de vídeo"; +"Visually lossless. RyukGram default." = "Visualmente sem perdas. Padrão do RyukGram."; +"Widest compatibility, no B-frames." = "Compatibilidade mais ampla, sem B-frames."; +"Worst quality." = "Pior qualidade."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "Gestos de manter pressionado"; +"Inserts a button in the profile navigation header" = "Insere um botão no cabeçalho de navegação do perfil"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "Adiciona um botão de ação do RyukGram ao cabeçalho do perfil com opções de copiar, ver foto, compartilhar, salvar e informações de perfil. O toque abre o menu por padrão; altere o comportamento do toque em Configurar menu."; +"Configure menu" = "Configurar menu"; +"Reorder, enable/disable, set default tap, show date" = "Reordenar, ativar/desativar, definir toque padrão, mostrar data"; +"Reorder, enable/disable, set default tap" = "Reordenar, ativar/desativar, definir toque padrão"; +"RyukGram profile actions" = "Ações de perfil do RyukGram"; +"Reorder sections" = "Reordenar seções"; +"Drag the ≡ handle to reorder sections." = "Arraste a alça ≡ para reordenar as seções."; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "Arraste a alça ≡ para reordenar. Desative uma linha para ocultá-la do menu. Marque uma seção como submenu para agrupar suas ações em uma única entrada."; +"Show as submenu" = "Mostrar como submenu"; +"Collapse this section's actions behind a single entry" = "Agrupar as ações desta seção em uma única entrada"; +"Configure: %@" = "Configurar: %@"; +"What happens on a single tap. Long-press always opens the full menu." = "O que acontece em um único toque. Manter pressionado sempre abre o menu completo."; +"Reset to defaults" = "Restaurar padrões"; +"This will restore the default sections, order, and toggles for this menu." = "Isso restaurará as seções, a ordem e as opções padrão deste menu."; +"Audio & visibility" = "Áudio e visibilidade"; +"DM disappearing media" = "Mídia temporária de DM"; +"Bulk download" = "Download em massa"; +"Feed settings" = "Configurações do feed"; +"Reels settings" = "Configurações dos reels"; +"Profile settings" = "Configurações do perfil"; +"Stories settings" = "Configurações dos stories"; +"Copy ID" = "Copiar ID"; +"Copy Info" = "Copiar informações"; +"Copy all info" = "Copiar todas as informações"; +"Copy media URL" = "Copiar URL da mídia"; +"Copy profile link" = "Copiar link do perfil"; +"Copy username" = "Copiar nome de usuário"; +"Download" = "Baixar"; +"Download to Gallery" = "Baixar para a Galeria"; +"Download all to Gallery" = "Baixar tudo para a Galeria"; +"Exclude/include user" = "Excluir/incluir usuário"; +"Mute / unmute audio" = "Silenciar / ativar áudio"; +"Save picture to Gallery" = "Salvar foto na Galeria"; +"Share picture" = "Compartilhar foto"; +"View picture" = "Ver foto"; +"Bio" = "Biografia"; +"ID" = "ID"; +"Info" = "Informações"; +"Profile info" = "informações do perfil"; +"Profile link" = "Link do perfil"; +"Picture not found" = "Foto não encontrada"; +"Private profile" = "Perfil privado"; +"Profile unavailable" = "Perfil indisponível"; +"Public profile" = "Perfil público"; +"Username" = "Nome de usuário"; +"Followers: %@" = "Seguidores: %@"; +"Following: %@" = "Seguindo: %@"; +"Copied %@" = "%@ copiado"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(desconhecido)"; +"All files deleted" = "Todos os arquivos excluídos"; +"Browsing" = "Navegação"; +"By source" = "Por origem"; +"By type" = "Por tipo"; +"By user" = "Por usuário"; +"Clear filters" = "Limpar filtros"; +"Comment" = "Comentário"; +"Create" = "Criar"; +"Create & Move" = "Criar e mover"; +"Delete %@?" = "Excluir %@?"; +"Delete all files" = "Excluir todos os arquivos"; +"Delete all images" = "Excluir todas as imagens"; +"Delete all videos" = "Excluir todos os vídeos"; +"Delete by user" = "Excluir por usuário"; +"Delete DM media" = "Excluir mídias de DM"; +"Delete feed posts" = "Excluir posts do feed"; +"Delete files" = "Excluir arquivos"; +"Delete Folder" = "Excluir pasta"; +"Delete from Gallery?" = "Excluir da Galeria?"; +"Delete profile pictures" = "Excluir fotos de perfil"; +"Delete reels" = "Excluir reels"; +"Delete selected" = "Excluir selecionados"; +"Delete Selected Files?" = "Excluir arquivos selecionados?"; +"Delete stories" = "Excluir stories"; +"Delete thumbnails" = "Excluir miniaturas"; +"Deleted from Gallery" = "Excluído da Galeria"; +"Deleted selected files" = "Arquivos selecionados excluídos"; +"Deselect All" = "Desmarcar tudo"; +"DM media deleted" = "Mídias de DM excluídas"; +"DMs" = "Mensagens"; +"Each user appears as a folder next to your real folders." = "Cada usuário aparece como uma pasta ao lado das suas pastas reais."; +"Each user gets a labelled section in the grid/list." = "Cada usuário tem uma seção identificada na grade/lista."; +"Enable gallery" = "Ativar galeria"; +"Failed" = "Falhou"; +"Failed to delete" = "Falha ao excluir"; +"Favorite" = "Favoritar"; +"Favorite selected" = "Favoritar selecionados"; +"Favorites only" = "Apenas favoritos"; +"Feed posts deleted" = "Posts do feed excluídos"; +"Files deleted" = "Arquivos excluídos"; +"Flat list. No grouping." = "Lista plana. Sem agrupamento."; +"Folder name" = "Nome da pasta"; +"Folders" = "Pastas"; +"From RyukGram Gallery" = "Áudio da Galeria do RyukGram"; +"Gallery" = "Galeria"; +"Gallery only" = "Apenas Galeria"; +"Gallery save mode" = "Modo de salvamento da galeria"; +"Gallery Settings" = "Configurações da Galeria"; +"GIFs" = "GIFs"; +"Grid view" = "Visualização em grade"; +"Group by user" = "Agrupar por usuário"; +"Hold DM tab to open gallery" = "Segure a aba de DM para abrir a galeria"; +"Images" = "Imagens"; +"Images deleted" = "Imagens excluídas"; +"Images first" = "Imagens primeiro"; +"item" = "item"; +"items" = "itens"; +"Largest first" = "Maiores primeiro"; +"List view" = "Visualização em lista"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "Mantenha pressionado o botão da caixa de entrada na barra inferior para abrir a galeria do RyukGram"; +"Manage" = "Gerenciar"; +"More" = "Mais"; +"Move selected" = "Mover selecionados"; +"Move to Folder" = "Mover para pasta"; +"Name A-Z" = "Nome A-Z"; +"Name Z-A" = "Nome Z-A"; +"New Folder" = "Nova pasta"; +"New folder…" = "Nova pasta…"; +"Newest first" = "Mais recentes primeiro"; +"No files in Gallery" = "Nenhum arquivo na Galeria"; +"No files to delete" = "Nenhum arquivo para excluir"; +"No matching files" = "Nenhum arquivo correspondente"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "Biblioteca no dispositivo de mídias baixadas pelo RyukGram. O modo de salvamento define onde 'Baixar para Fotos' realmente grava."; +"Open" = "Abrir"; +"Open Original Post" = "Abrir post original"; +"Options" = "Opções"; +"Other" = "Outro"; +"Photos + Gallery" = "Fotos + Galeria"; +"Photos only" = "Apenas Fotos"; +"Profile pictures deleted" = "Fotos de perfil excluídas"; +"Reels deleted" = "Reels excluídos"; +"Rename" = "Renomear"; +"Rename Folder" = "Renomear pasta"; +"Root" = "Raiz"; +"Save media from the preview screen\nto see it here." = "Salve mídias da tela de visualização\npara vê-las aqui."; +"Saved %lu items to Gallery" = "%lu itens salvos na Galeria"; +"Saved to Gallery" = "Salvo na Galeria"; +"Saving to Gallery" = "Salvando na Galeria..."; +"Search users" = "Buscar usuários"; +"Sections" = "Seções"; +"Select All" = "Selecionar tudo"; +"Share" = "Compartilhar"; +"Share selected" = "Compartilhar selecionados"; +"Show favorites at top" = "Mostrar favoritos no topo"; +"Show gallery entries in download menus and unlock the gallery button" = "Mostrar entradas da galeria nos menus de download e desbloquear o botão da galeria"; +"Smallest first" = "Menores primeiro"; +"Source" = "Origem"; +"Source user" = "Usuário de origem"; +"Storage" = "Armazenamento"; +"Stories deleted" = "Stories excluídos"; +"Story" = "Story"; +"The original content may no longer exist." = "O conteúdo original pode não existir mais."; +"This folder contains %ld file(s). They will be moved to the parent folder." = "Esta pasta contém %ld arquivo(s). Eles serão movidos para a pasta superior."; +"This folder is empty." = "Esta pasta está vazia."; +"This will permanently remove %ld file%@ from the gallery." = "Isso removerá permanentemente %ld arquivo%@ da galeria."; +"This will permanently remove %ld file(s)." = "Isso removerá permanentemente %ld arquivo(s)."; +"This will permanently remove this file from the gallery." = "Isso removerá permanentemente este arquivo da galeria."; +"Thumb" = "Miniatura"; +"Thumbnails deleted" = "Miniaturas excluídas"; +"to Gallery" = "para a Galeria"; +"Total files" = "Total de arquivos"; +"Total size" = "Tamanho total"; +"Type" = "Tipo"; +"Unable to open original post" = "Não foi possível abrir o post original"; +"Unable to open profile" = "Não foi possível abrir o perfil"; +"Unfavorite" = "Desfavoritar"; +"Unknown user" = "Usuário desconhecido"; +"User files deleted" = "Arquivos do usuário excluídos"; +"Videos" = "Vídeos"; +"Videos deleted" = "Vídeos excluídos"; +"Videos first" = "Vídeos primeiro"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "Quando ativado, os favoritos ficam fixados acima dos outros arquivos dentro da ordenação e pasta atuais."; +"Where 'Download to Photos' actually writes when gallery is on" = "Onde 'Baixar para Fotos' realmente grava quando a galeria está ativada"; +"Yesterday" = "Ontem"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "Botão de atalho na home"; +"Show the extra button on the home top bar" = "Configure o botão extra na barra superior da home"; +"Auto" = "Automático"; +"Icon" = "Ícone"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "Arraste a alça ≡ para reordenar. Desative uma linha para ocultar esse destino. Com uma ação ativa, tocar a executa; com duas ou mais, tocar mostra um menu."; +"Changelog" = "Registro de mudanças"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "Adiciona um botão de atalho extra ao lado do botão + de criar publicação na barra superior da tela inicial."; +"All buttons" = "Todos os botões"; +"Choose icon, reorder actions, and enable menu items" = "Escolha o ícone, reordene ações e ative itens do menu"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "Escolha o ícone exibido na barra superior da tela inicial. \"Automático\" usa o ícone da ação selecionada quando só uma ação está ativa."; +"Configure button" = "Configurar botão"; +"Global Action Icons" = "Ícones de ação globais"; +"Interface" = "Interface"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "Substitua o ícone de um botão específico. Botões deixados em \"Padrão\" seguem o ícone compartilhado acima."; +"Per button" = "Por botão"; +"Show home shortcut button" = "Mostrar botão de atalho na tela inicial"; +"Tab bar" = "Barra de abas"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "Notificações universais no app. Escolha estilo, posição, roteamento por ação (aviso personalizado / IG nativo / desativado)."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "Notificações"; +"Appearance" = "Aparência"; +"Routing" = "Roteamento"; +"Style" = "Estilo"; +"Position" = "Posição"; +"Stack size" = "Tamanho da pilha"; +"Duration" = "Duração"; +"Default surface" = "Área padrão"; +"Enable notifications" = "Ativar notificações"; +"Haptic feedback" = "Feedback tátil"; +"Preview pill" = "Pré-visualizar aviso"; +"Preview download pill" = "Pré-visualizar aviso de download"; +"Preview loading pill" = "Pré-visualizar aviso de carregamento"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "Interruptor principal. Quando desativado, nenhuma notificação é exibida."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "Notificações universais no app. Todos os avisos do RyukGram (downloads, cópias, erros, sucessos) passam por aqui."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal: blur plano. Colorful: tingida pelo tom. Glow: halo colorido. Island: cápsula dynamic island."; +"Top slides down, bottom slides up." = "Topo desliza para baixo, base desliza para cima."; +"How many pills can show at once before queueing." = "Quantos avisos podem aparecer ao mesmo tempo antes de entrar na fila."; +"Multiplies how long toasts stay on screen." = "Multiplica o tempo que as notificações ficam na tela."; +"Vibration on success/error pills." = "Vibração em avisos de sucesso ou erro."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "Para ações de aviso você pode escolher entre o aviso do RyukGram e o aviso nativo do IG. Substituições por ação ficam abaixo."; +"What to use when an action doesn't have its own override." = "O que usar quando uma ação não tem substituição própria."; +"Tap to cycle: info → success → warning → error" = "Toque para alternar: info → sucesso → aviso → erro"; +"Tap to cycle between success and failure" = "Toque para alternar entre sucesso e falha"; +"Progress UI — pill or off only." = "Interface de progresso — apenas aviso ou desativado."; +"Minimal" = "Minimalista"; +"Colorful" = "Colorido"; +"Glow" = "Brilho"; +"Island" = "Ilha"; +"Top" = "Topo"; +"Bottom" = "Base"; +"Custom pill" = "Aviso personalizado"; +"IG native toast" = "Aviso nativo do IG"; +"Short" = "Curto"; +"Normal" = "Normal"; +"Long" = "Longo"; +"Very long" = "Muito longo"; +"Downloads & saving" = "Downloads e salvamento"; +"Copy to clipboard" = "Copiar para a área de transferência"; +"Read receipts & seen" = "Confirmações de leitura"; +"Block, exclude & pin" = "Bloquear, excluir e fixar"; +"Stories & messages" = "Stories e mensagens"; +"Voice & audio" = "Voz e áudio"; +"Errors" = "Erros"; +"Download progress" = "Progresso do download"; +"Bulk download progress" = "Progresso do download em massa"; +"Copied post / reel URL" = "URL do post / reel copiada"; +"Copied comment text" = "Texto do comentário copiado"; +"Copied note text" = "Texto da nota copiado"; +"Copied profile info" = "Informação de perfil copiada"; +"Copied audio URL" = "URL de áudio copiada"; +"Copied quality picker URL" = "URL do seletor de qualidade copiada"; +"Copied unlocked password" = "Senha desbloqueada copiada"; +"Copied description text" = "Texto da descrição copiado"; +"DM seen / read receipts" = "Visualizações / leituras de DM"; +"Story seen / read receipts" = "Visualizações / leituras de story"; +"User blocked / unblocked" = "Usuário bloqueado / desbloqueado"; +"Chat added / removed from exclude" = "Chat adicionado / removido das exclusões"; +"Story user added / removed from exclude" = "Usuário de story adicionado / removido das exclusões"; +"Share-sheet recipient pinned" = "Destinatário de compartilhamento fixado"; +"Unsent message detected" = "Mensagem desfeita detectada"; +"Live comments toggled" = "Comentários ao vivo alternados"; +"Custom GIF sent" = "GIF personalizado enviado"; +"Voice DM sent" = "DM de voz enviado"; +"Audio extraction status" = "Status da extração de áudio"; +"Profile Analyzer complete" = "Analisador de perfil concluído"; +"Media extraction failed" = "Falha ao extrair mídia"; +"Permission denied" = "Permissão negada"; +"Validation error" = "Erro de validação"; +"Network / API error" = "Erro de rede / API"; +"Action error fallback" = "Erro de ação genérico"; +"Invalid clipboard link" = "Link inválido na área de transferência"; +"Experimental flag warning" = "Aviso de flag experimental"; +"Settings action confirmed" = "Ação das configurações confirmada"; +"Cache clearing progress" = "Progresso da limpeza de cache"; +"Other / uncategorized" = "Outros / sem categoria"; +"Comment copied" = "Comentário copiado"; +"FFmpeg log copied" = "Log do FFmpeg copiado"; +"GIF inserted" = "GIF inserido"; +"Story marked as seen" = "Story marcado como visto"; +"Saved" = "Salvo"; +"Tap to retry" = "Toque para tentar novamente"; +"Looks great" = "Está ótimo"; +"Something broke" = "Algo quebrou"; +"Just so you know" = "Só para você saber"; +"Success preview" = "Pré-visualização de sucesso"; +"Error preview" = "Pré-visualização de erro"; +"Warning preview" = "Pré-visualização de aviso"; +"Info preview" = "Pré-visualização de info"; +"Preview download…" = "Pré-visualização do download…"; +"Colors" = "Cores"; +"+ Add new language" = "+ Adicionar novo idioma"; +"Each chat can override this in the list" = "Cada conversa pode substituir isto na lista"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "Quando ativado, as solicitações de localização do Instagram retornam o local falso selecionado. O botão do mapa adiciona um atalho rápido no Mapa de amigos."; +"Tap a preset to make it active. Swipe left to delete." = "Toque em um preset para ativá-lo. Deslize para a esquerda para excluir."; +"Override Instagram location reads." = "Substitui as leituras de localização do Instagram."; +"Show the quick button in Friends Map." = "Mostrar o botão rápido no Mapa de amigos."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "Escolha como as datas absolutas são escritas. “Padrão” mantém o formato do IG inalterado."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "Datas mais recentes que o limite são mostradas como tempo relativo. Datas mais antigas voltam ao formato absoluto. “Combinar com a data” mostra os dois — “5 jan 2026 (2h)” ou “2h – 5 jan 2026”."; +"Compact style" = "Estilo compacto"; +"Example: “1h” instead of “1 hour ago”" = "Exemplo: “1h” em vez de “há 1 hora”"; +"Example: “Jan 5, 2026 (2h)”" = "Exemplo: “Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "As APIs de áudio do iOS não conseguiram processar este arquivo%@%@\n\nVocê pode tentar enviá-lo ao Instagram como está ou abrir um issue de suporte."; +"Combine with date" = "Combinar com a data"; +"Absolute then relative" = "Absoluto e depois relativo"; +"Relative – absolute" = "Relativo – absoluto"; +"Relative when young, absolute when older." = "Relativo quando recente, absoluto quando antigo."; +"Example: “2h – Jan 5, 2026”" = "Exemplo: “2h – 5 jan 2026”"; diff --git a/src/Localization/Resources/ru.lproj/Localizable.strings b/src/Localization/Resources/ru.lproj/Localizable.strings index 6a09620..b9401ad 100644 --- a/src/Localization/Resources/ru.lproj/Localizable.strings +++ b/src/Localization/Resources/ru.lproj/Localizable.strings @@ -55,7 +55,6 @@ * - Keys and values are both quoted; every line ends with a semicolon. */ - ////////////////////////////////////////////////////////////////////////////// // CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // // Shown on the root Settings screen: title, search bar, the globe language // @@ -68,11 +67,12 @@ "settings.firstrun.title" = "Информация о настройках RyukGram"; "settings.language.english_only" = "Сейчас RyukGram поставляется только с английским языком. Другие языки уже подключены и ждут перевода — помочь перевести приложение на свой язык можно по короткой инструкции в README."; "settings.language.help_translate" = "Помочь с переводом"; -"settings.language.ok" = "ОК"; "settings.language.system" = "Системный язык"; "settings.language.title" = "Язык"; +"settings.language.restart.message" = "Настройки обновлены. Перезапустите Instagram, чтобы меню, кнопки и уведомления в остальной части приложения также использовали новый язык."; +"settings.language.restart.title" = "Перезапустите, чтобы применить везде"; +"settings.language.available" = "Доступные"; "settings.results.many" = "%lu результатов"; -"settings.results.none" = "Нет результатов"; "settings.results.one" = "%lu результат"; "settings.search.placeholder" = "Поиск по настройкам"; "settings.title" = "Настройки RyukGram"; @@ -82,20 +82,33 @@ // Settings → General tab // ////////////////////////////////////////////////////////////////////////////// +"Action button icon" = "Иконка кнопки действий"; "Adds a copy option to the comment long-press menu" = "Добавляет пункт копирования в меню удержания комментария"; -"Adds a download option for GIF comments" = "Добавляет пункт скачивания для GIF-комментариев"; +"Adds a download button next to share/save on the reels audio page" = "Добавляет кнопку скачивания рядом с поделиться/сохранить на странице аудио в reels"; +"Adds download, copy and expand options to GIF and image comments" = "Добавляет пункты скачивания, копирования и развёртывания для GIF и изображений в комментариях"; +"Allow video in photo sticker" = "Разрешить видео в фото‑стикере"; +"Alternate icons are not supported" = "Альтернативные значки не поддерживаются"; "Anonymous live viewing" = "Анонимный просмотр трансляций"; +"App Icon" = "Значок приложения"; +"Audio page" = "Страница аудио"; +"Auto-reveals sensitive media" = "Автоматически показывает чувствительный контент"; "Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "Блокирует heartbeat счётчика зрителей, чтобы трансляция не видела вас — вы также не увидите счётчик зрителей"; "Browser" = "Браузер"; +"Change the app icon from the bundled icons" = "Изменить значок приложения из встроенных значков"; +"Choose Icon" = "Выбрать значок"; +"Choose which surfaces hide ads" = "Выберите, где скрывать рекламу"; "Comments" = "Комментарии"; +"Commerce carousels in comments and shoppable CTAs on reels" = "Торговые карусели в комментариях и покупки в Reels"; "Copy comment text" = "Копировать текст комментария"; "Copy description" = "Копировать описание"; "Copy description text fields by long-pressing on them" = "Копировать поля описания долгим нажатием"; +"Custom music sticker color" = "Свой цвет музыкального стикера"; "Date format" = "Формат даты"; "Disable app haptics" = "Отключить тактильную отдачу"; "Disables haptics/vibrations within the app" = "Отключает тактильную отдачу и вибрацию в приложении"; "Do not save recent searches" = "Не сохранять недавние поиски"; -"Download GIF comments" = "Скачивать GIF-комментарии"; +"Download GIF & image comments" = "Скачивать GIF и изображения в комментариях"; +"Download image" = "Скачать изображение"; "Embed domain" = "Домен для предпросмотра"; "Embed domain: %@" = "Домен для предпросмотра: %@"; "Enable liquid glass buttons" = "Включить кнопки Liquid Glass"; @@ -103,15 +116,23 @@ "Enable teen app icons" = "Включить teen-иконки приложения"; "Enables experimental liquid glass buttons" = "Включает экспериментальные кнопки Liquid Glass"; "Enables liquid glass tab bar, floating navigation, and other UI elements" = "Включает Liquid Glass для панели вкладок, плавающей навигации и других элементов интерфейса"; +"End" = "Конец"; "Experimental features" = "Экспериментальные функции"; +"Explore & search" = "Интересное и поиск"; +"Failed to change icon" = "Не удалось изменить значок"; +"Fixed" = "Зафиксировано"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "«Зафиксировано» предотвращает уменьшение. «Скрывать» делает панель невидимой при прокрутке вниз"; "Focus/distractions" = "Фокус/отвлечения"; "General" = "Общие"; +"Gradient color" = "Градиент"; "Hide ads" = "Скрыть рекламу"; "Hide explore posts grid" = "Скрыть сетку постов в Explore"; "Hide friends map" = "Скрыть карту друзей"; "Hide Meta AI" = "Скрыть Meta AI"; "Hide metrics" = "Скрыть метрики"; "Hide notes tray" = "Скрыть панель заметок"; +"Hide on scroll" = "Скрывать при прокрутке"; +"Hide TestFlight popup" = "Скрыть окно TestFlight"; "Hide trending searches" = "Скрыть популярные запросы"; "Hide UI on capture" = "Скрыть интерфейс при захвате"; "Hides all suggested users for you to follow, outside your feed" = "Скрывает всех рекомендуемых пользователей вне вашей ленты"; @@ -123,10 +144,14 @@ "Hides the suggested broadcast channels in direct messages" = "Скрывает рекомендуемые каналы вещания в личных сообщениях"; "Hides the trending searches under the explore search bar" = "Скрывает популярные запросы под строкой поиска Explore"; "Hold down on the Instagram logo to change the app icon" = "Удерживайте логотип Instagram, чтобы сменить иконку приложения"; +"Lets the photo sticker picker show videos too, not just photos" = "Позволяет в галерее фото‑стикера показывать также видео, а не только фото"; +"Liquid glass tab bar" = "Панель вкладок Liquid Glass"; "Live" = "Прямые трансляции"; "Long press on the eyedropper tool in stories to customize the text color more precisely" = "Удерживайте пипетку в историях, чтобы точнее настроить цвет текста"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "Зажмите цветовое колесо на музыкальном стикере или стикере с текстом песни, чтобы выбрать любой сплошной цвет или градиент"; "Long-press the heart button in a live to hide or show the comments" = "Удерживайте кнопку сердца в прямой трансляции, чтобы скрыть или показать комментарии"; "Long-press the search tab to open a copied Instagram link" = "Удерживайте вкладку поиска, чтобы открыть скопированную ссылку Instagram"; +"Master switch. When off, all per-surface toggles below are ignored." = "Главный переключатель. Когда выключен, все переключатели ниже игнорируются."; "No suggested chats" = "Без рекомендуемых чатов"; "No suggested users" = "Без рекомендуемых пользователей"; "Notes" = "Заметки"; @@ -135,25 +160,49 @@ "Open links in external browser" = "Открывать ссылки во внешнем браузере"; "Opens links in Safari instead of Instagram's in-app browser" = "Открывает ссылки в Safari вместо встроенного браузера Instagram"; "Privacy" = "Конфиденциальность"; -"Redacts RyukGram buttons from screenshots, screen recordings, and mirroring" = "Скрывает кнопки RyukGram на скриншотах, записи экрана и зеркалировании"; -"Removes all ads from the Instagram app" = "Удаляет всю рекламу из приложения Instagram"; +"Removes ads across enabled surfaces" = "Убирает рекламу во включённых разделах"; "Removes igsh, utm_source, and other tracking parameters from shared links" = "Удаляет igsh, utm_source и другие параметры отслеживания из общих ссылок"; "Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "Удаляет обёртки отслеживания Instagram (l.instagram.com) и параметры UTM/fbclid из URL"; "Replace domain in shared links" = "Заменять домен в общих ссылках"; "Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "Заменяет относительные метки времени IG (\"3d ago\") на пользовательский формат. Внутри выбора можно указать, к каким разделам это применять."; "Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "Переписывает скопированные и отправляемые ссылки на домен, удобный для предпросмотра в Discord, Telegram и т.д."; "Search bars will no longer save your recent searches" = "Строки поиска больше не будут сохранять недавние запросы"; +"Selected" = "Выбрано"; "Sharing" = "Поделиться"; +"Shopping" = "Покупки"; +"Skip sensitive content covers" = "Пропускать предупреждения о чувствительном контенте"; +"Solid color" = "Сплошной цвет"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "Спонсируемые публикации в основной, контекстной, видео- и связанной ленте"; +"Sponsored posts on the explore grid" = "Спонсируемые публикации в сетке «Интересное»"; +"Sponsored reels in the sundial feed" = "Спонсируемые Reels в ленте Reels"; +"Start" = "Начало"; +"Story ads and sponsored entries in the story tray" = "Реклама в историях и спонсируемые записи в ленте историй"; "Strip tracking from links" = "Удалять трекинг из ссылок"; "Strip tracking params" = "Удалять параметры отслеживания"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "Подавляет уведомление \"It's time to update Instagram Beta\""; +"Tap to apply" = "Нажмите, чтобы применить"; +"The selected icon will be saved and shown here the next time you open this page." = "Выбранный значок будет сохранён и показан здесь при следующем открытии этой страницы."; "Toggle live comments" = "Переключить комментарии прямой трансляции"; "Use detailed color picker" = "Использовать подробный выбор цвета"; +"Used across feed, stories, reels, and DMs." = "Используется в ленте, историях, роликах и ЛС"; ////////////////////////////////////////////////////////////////////////////// // DATE FORMAT // // Settings → Date format tab // ////////////////////////////////////////////////////////////////////////////// +"%ld day ago" = "%ld дн. назад"; +"%ld days ago" = "%ld дн. назад"; +"%ld hour ago" = "%ld ч. назад"; +"%ld hours ago" = "%ld ч. назад"; +"%ld minute ago" = "%ld мин. назад"; +"%ld minutes ago" = "%ld мин. назад"; +"%ld week ago" = "%ld нед. назад"; +"%ld weeks ago" = "%ld нед. назад"; +"%ldd" = "%ldд"; +"%ldh" = "%ldч"; +"%ldm" = "%ldм"; +"%ldw" = "%ldн"; "Alternate" = "Альтернативный"; "Always ask" = "Всегда спрашивать"; "Balanced" = "Сбалансированный"; @@ -171,12 +220,16 @@ "Explore" = "Обзор"; "Fast" = "Быстро"; "Feed" = "Лента"; +"Feed posts" = "Публикации в ленте"; "High" = "Высокое"; "Inbox" = "Входящие"; +"just now" = "только что"; "Low" = "Низкое"; "Max" = "Макс"; "Medium" = "Среднее"; "Mute/Unmute" = "Звук вкл./выкл."; +"Notes, comments, stories" = "Заметки, комментарии, истории"; +"now" = "сейчас"; "Open menu" = "Открыть меню"; "Pause/Play" = "Пауза/воспроизведение"; "Profile" = "Профиль"; @@ -196,6 +249,8 @@ "Action button" = "Кнопка действий"; "Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "Добавляет пункты \"Посмотреть фото профиля\" и \"Посмотреть обложку\" в меню удержания панели историй"; "Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Добавляет кнопку действий RyukGram под каждым постом в ленте с пунктами скачать/поделиться/копировать/развернуть/репост. По умолчанию нажатие открывает меню; поведение можно изменить ниже."; +"Choose Instagram's default feed or force the Following feed" = "Выберите ленту Instagram по умолчанию или принудительно используйте ленту Подписки"; +"Main feed" = "Главная лента"; "Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "Управляет тем, когда и как обновляется лента. Фоновое обновление срабатывает при возврате в приложение примерно через 10 минут. Обновление кнопкой Home срабатывает при нажатии на вкладку Home, когда вы уже на ней."; "Default tap action" = "Действие по нажатию"; "Disable background refresh" = "Отключить фоновое обновление"; @@ -214,6 +269,11 @@ "Hides the story tray at the top" = "Скрывает панель историй сверху"; "Inserts a button row below like/comment/share on each post" = "Добавляет ряд кнопок под лайком/комментарием/поделиться у каждого поста"; "Long press on media to expand in full-screen viewer" = "Удерживайте медиа, чтобы открыть во весь экран"; +"Start media muted" = "Запускать медиа без звука"; +"Expanded videos open with sound off" = "Развёрнутые видео открываются без звука"; +"Enhanced media resolution" = "Улучшенное разрешение медиа"; +"Media saving" = "Сохранение медиа"; +"Spoof device profile so IG serves higher-quality images" = "Подменяет профиль устройства, чтобы IG отдавал изображения высшего качества"; "Media" = "Медиа"; "Media zoom" = "Увеличение медиа"; "No suggested for you" = "Без рекомендаций для вас"; @@ -228,10 +288,23 @@ "Removes suggested posts" = "Убирает рекомендуемые посты"; "Scroll to top without refreshing when tapping Home" = "Прокручивать вверх без обновления при нажатии Home"; "Show action button" = "Показывать кнопку действий"; +"Show date" = "Показывать дату"; "Stories tray" = "Панель историй"; "Tapping Home does nothing when already on feed" = "Нажатие Home ничего не делает, если вы уже в ленте"; "Tray long-press actions" = "Действия удержания на панели"; -"What happens on a single tap. Long-press always opens the full menu" = "Что происходит при обычном нажатии. Долгое нажатие всегда открывает полное меню"; +"Composer doesn't accept GIFs" = "Поле комментария не принимает GIF"; +"Copy GIF link" = "Копировать ссылку GIF"; +"Copy image link" = "Копировать ссылку на изображение"; +"Custom GIF in comments" = "Свой GIF в комментариях"; +"Failed to build GIF model" = "Не удалось создать модель GIF"; +"GIF link copied" = "Ссылка GIF скопирована"; +"Image" = "Изображение"; +"Image link copied" = "Ссылка на изображение скопирована"; +"Invalid Giphy URL" = "Неверная ссылка Giphy"; +"Long-press the GIF button to paste any Giphy URL" = "Удерживайте кнопку GIF, чтобы вставить любую ссылку Giphy"; +"Paste Giphy Link" = "Вставить ссылку Giphy"; +"Paste a giphy.com URL or media ID" = "Вставьте ссылку giphy.com или ID медиа"; +"Send" = "Отправить"; ////////////////////////////////////////////////////////////////////////////// // REELS // @@ -243,27 +316,40 @@ "Auto-scroll reels" = "Автопрокрутка рилсов"; "Change what happens when you tap on a reel" = "Изменить действие при нажатии на рилс"; "Confirm reel refresh" = "Подтверждать обновление рилсов"; +"Custom speed" = "Своя скорость"; "Disable auto-unmuting reels" = "Отключить авто-включение звука в рилсах"; "Disable scrolling reels" = "Отключить прокрутку рилсов"; "Disable tab button refresh" = "Отключить обновление кнопкой вкладки"; "Doom scrolling limit" = "Лимит doomscrolling"; +"e.g. 1.75" = "напр. 1.75"; +"Enter a value between 0.5 and 2.0" = "Введите значение от 0.5 до 2.0"; "Forces the progress bar to appear on every reel" = "Принудительно показывает полосу прогресса на каждом рилсе"; +"Hide \"Made with Edits\" badge" = "Скрыть значок «Made with Edits»"; +"Hide friends avatars" = "Скрыть аватары друзей"; "Hide reels header" = "Скрыть заголовок рилсов"; +"Hide social context overlay" = "Скрыть плавающий социальный контекст"; +"Hides the avatar bubbles next to the Friends tab in reels" = "Скрывает аватары рядом с вкладкой «Друзья» в рилсах"; +"Hides the Edits app promo pill on reels" = "Скрывает рекламную плашку приложения Edits в рилсах"; +"Hides the floating overlay showing who reposted or commented on reels" = "Скрывает плавающую панель с информацией о том, кто репостнул или прокомментировал рилс"; "Hides the repost button on the reels sidebar" = "Скрывает кнопку репоста на боковой панели рилсов"; "Hides the top navigation bar when watching reels" = "Скрывает верхнюю панель навигации при просмотре рилсов"; "Hiding" = "Скрытие"; +"Hold the 3-dot on any reel to open speed picker" = "Удерживайте «три точки» на любом Reel, чтобы открыть выбор скорости"; "IG default" = "IG по умолчанию"; "IG default: native behavior. RyukGram: re-advances after swiping back." = "IG по умолчанию: стандартное поведение. RyukGram: снова продвигает вперёд после свайпа назад."; "Limits" = "Ограничения"; "Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "Ограничивает количество рилсов, доступных для прокрутки в любой момент, и запрещает обновление"; "Only loads %@ %@" = "Загружает только %@ %@"; "Places a button above the like/comment/share column on each reel" = "Размещает кнопку над колонкой лайк/комментарий/поделиться на каждом рилсе"; +"Playback speed" = "Скорость воспроизведения"; "Prevent doom scrolling" = "Предотвратить doomscrolling"; "Prevents reels from being scrolled to the next video" = "Не даёт прокручивать рилсы к следующему видео"; "Prevents reels from unmuting when the volume/silent button is pressed" = "Не даёт рилсам включать звук при нажатии кнопки громкости/беззвучного режима"; "RyukGram" = "RyukGram"; "Shows an alert when you trigger a reels refresh" = "Показывает предупреждение при попытке обновить рилсы"; "Shows buttons to reveal and auto-fill the password on locked reels" = "Показывает кнопки для отображения и автозаполнения пароля на защищённых рилсах"; +"Swipe a reel left to open the author's profile" = "Свайпните рилс влево, чтобы открыть профиль автора"; +"Swipe left to profile" = "Свайп влево к профилю"; "Tap Controls" = "Управление нажатием"; "Tap to mute on photo reels" = "Нажмите для отключения звука в фото-Reels"; "Tapping the Reels tab while on reels does nothing" = "Нажатие вкладки Reels ничего не делает, если вы уже в рилсах"; @@ -275,15 +361,19 @@ // Settings → Profile tab // ////////////////////////////////////////////////////////////////////////////// -"Adds a button next to the burger menu on profiles to copy username, name or bio" = "Добавляет кнопку рядом с меню на профиле для копирования имени пользователя, имени или био"; +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "Добавляет кнопку для фильтрации и сортировки любого списка подписчиков/подписок. Сбрасывается при выходе."; "Adds a view option to the highlight long-press menu to open the cover in full-screen" = "Добавляет пункт просмотра в меню удержания хайлайта, чтобы открыть обложку во весь экран"; "Copy note on long press" = "Копировать заметку по удержанию"; +"Extra stats shown on each post and reel card in profile grids." = "Дополнительная статистика на каждой карточке поста и рилса в сетках профиля."; "Fake follower count" = "Поддельное число подписчиков"; "Fake following count" = "Поддельное число подписок"; "Fake post count" = "Поддельное число публикаций"; "Fake profile stats" = "Поддельная статистика профиля"; "Fake verified badge" = "Поддельная галочка"; +"Fetch missing counts" = "Запросить недостающие счётчики"; +"Filter & sort lists" = "Фильтровать и сортировать списки"; "Follow indicator" = "Индикатор подписки"; +"Follower & following lists" = "Списки подписчиков и подписок"; "Follower count" = "Число подписчиков"; "Following count" = "Число подписок"; "Long press a profile picture to open it in full-screen with zoom, share, and save" = "Удерживайте фото профиля, чтобы открыть его во весь экран с увеличением, возможностью поделиться и сохранить"; @@ -291,12 +381,21 @@ "Long press to download directly (ignored when zoom is on)" = "Удерживайте для прямого скачивания (игнорируется, если включено увеличение)"; "Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "Жесты долгого нажатия на элементы профиля — отдельно от кнопок действий конкретных функций."; "Only affects your own profile header. Other users see the real numbers." = "Влияет только на заголовок вашего собственного профиля. Другие пользователи видят реальные числа."; +"Override view count" = "Переопределить число просмотров"; "Post count" = "Число публикаций"; -"Profile copy button" = "Кнопка копирования в профиле"; +"Profile card details" = "Детали карточки профиля"; +"Profile stats" = "Статистика профиля"; +"Render counts in shortened format." = "Отображать числа в сокращённом виде."; "Save profile picture" = "Сохранить фото профиля"; +"Short numbers" = "Сокращённые числа"; "Show a checkmark next to your name on your own profile" = "Показывать галочку рядом с вашим именем в вашем профиле"; +"Show full follower count" = "Показывать полное число подписчиков"; +"Show full post count" = "Показывать полное число публикаций"; +"Show like count" = "Показать число лайков"; +"Show upload date" = "Показать дату публикации"; "Shows whether the profile user follows you" = "Показывает, подписан ли пользователь профиля на вас"; "Tap to set" = "Нажмите, чтобы задать"; +"Uses Instagram's API. May hit rate limits." = "Использует API Instagram. Может упереться в лимиты."; "View highlight cover" = "Посмотреть обложку хайлайта"; "Zoom profile photo" = "Увеличение фото профиля"; @@ -305,23 +404,62 @@ // Settings → Saving tab // ////////////////////////////////////////////////////////////////////////////// +"Active, queued, and finished downloads" = "Активные, в очереди и завершённые загрузки"; +"Auto-retry attempts" = "Попытки автоповтора"; +"Auto-retry failed downloads" = "Автоповтор неудачных загрузок"; "Confirm before download" = "Подтверждать перед скачиванием"; "Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "Устарело. Кнопка действий RyukGram (настраивается отдельно для ленты/рилсов/историй) теперь является основным способом скачивания медиа. Включайте этот общий переключатель только если предпочитаете старый жест удержания несколькими пальцами прямо по медиа."; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "Не приостанавливать загрузки, кодирование и сканирование профилей при выходе из приложения"; +"Download queue" = "Очередь загрузок"; "Downloads" = "Загрузки"; "Downloads with %@ %@" = "Скачивает с %@ %@"; "Enable long-press gesture" = "Включить жест долгого нажатия"; "Finger count for long-press" = "Количество пальцев для удержания"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "Сколько загрузок выполняется одновременно — лишние ждут в очереди и запускаются по мере освобождения слотов. Неудачные загрузки повторяются автоматически при сетевых ошибках. Откройте менеджер, чтобы наблюдать, отменять или повторять загрузки."; +"Keep running in background" = "Продолжать работу в фоне"; "Legacy long-press gesture" = "Старый жест долгого нажатия"; "Long-press hold time" = "Длительность удержания"; "Master toggle for the deprecated gesture workflow (off by default)" = "Главный переключатель устаревшего жеста (по умолчанию выключен)"; +"Max simultaneous downloads" = "Макс. одновременных загрузок"; +"Open download manager" = "Открыть менеджер загрузок"; "Press finger(s) for %@ %@" = "Нажмите %@ %@ пальцем(ами)"; -"Route saves into a dedicated album in Photos instead of the camera roll root" = "Сохранять в отдельный альбом в Фото вместо корня медиатеки"; +"Retry automatically when a download drops on a network error" = "Повторять автоматически, когда загрузка обрывается из-за сетевой ошибки"; +"Route saves into a custom album in Photos instead of the camera roll root" = "Сохранять в отдельный альбом в Фото вместо корня медиатеки"; +"Run up to %@ %@ at once" = "Запускать до %@ %@ одновременно"; "Save action" = "Действие после сохранения"; -"Save to RyukGram album" = "Сохранять в альбом RyukGram"; -"Saving" = "Сохранение"; +"Save to dedicated album" = "Сохранять в отдельный альбом"; "Show a confirmation dialog before starting a download" = "Показывать подтверждение перед началом скачивания"; +"Try %@ more %@ before giving up" = "Попробовать ещё %@ %@ перед отказом"; "What happens after the gesture downloads" = "Что происходит после скачивания жестом"; -"When \"Save to RyukGram album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a dedicated \"RyukGram\" album in your Photos library." = "Когда включено \"Сохранять в альбом RyukGram\", скачивания и команда \"Сохранить в Фото\" из меню \"Поделиться\" будут сохраняться в отдельный альбом \"RyukGram\" в вашей медиатеке Фото."; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "Когда «Сохранять в отдельный альбом» включено, загрузки и выбор «Сохранить в Фото» из меню «Поделиться» направляются в именованный альбом вашей медиатеки «Фото». Нажмите «Название альбома», чтобы изменить его."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu с ошибкой"; +"%lu of %lu done" = "%lu из %lu готово"; +"%lu saved, %lu failed" = "%lu сохранено, %lu с ошибкой"; +"Active" = "Активные"; +"Auto-retry" = "Автоповтор"; +"Clear completed" = "Очистить завершённые"; +"Completed" = "Завершено"; +"Download settings" = "Настройки загрузки"; +"Downloading %lu items" = "Загрузка %lu объектов"; +"Downloading…" = "Загрузка…"; +"Encoding %d%%" = "Кодирование %d%%"; +"Encoding…" = "Кодирование…"; +"Extra downloads wait in line and start as slots free up." = "Лишние загрузки ждут в очереди и запускаются по мере освобождения слотов."; +"No downloads yet" = "Загрузок пока нет"; +"Preview" = "Предпросмотр"; +"Queued" = "В очереди"; +"Redownload" = "Загрузить заново"; +"Retry" = "Повторить"; +"Retrying…" = "Повтор…"; +"Waiting for connection…" = "Ожидание соединения…"; +"Waiting…" = "Ожидание…"; ////////////////////////////////////////////////////////////////////////////// // STORIES // @@ -354,19 +492,24 @@ "Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "Отмечает историю как просмотренную при отправке ответа или реакции эмодзи, даже если блокировка просмотров включена"; "Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "Помечает истории как просмотренные локально (серое кольцо), при этом блокируя уведомление о просмотре на сервере"; "Master toggle. When off, the list is ignored" = "Главный переключатель. Когда выключен, список игнорируется"; -"Other" = "Другое"; "Playback" = "Воспроизведение"; -"Quick list button in stories" = "Кнопка быстрого списка в историях"; "Search, sort, swipe to remove" = "Поиск, сортировка, свайп для удаления"; "Seen receipts" = "Уведомления о просмотре"; "Sending a reply or emoji reaction automatically advances to the next story" = "Отправка ответа или реакции эмодзи автоматически переключает на следующую историю"; -"Show mentioned users in eye button and story menu" = "Показывать упомянутых пользователей в кнопке глаза и меню истории"; -"Shows an eye button on stories to add/remove users from the list. Off = use the 3-dot menu or long-press only" = "Показывает кнопку глаза в историях для добавления и удаления пользователей из списка. Выкл. = только меню с тремя точками или долгое нажатие"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "Добавляет пункт «Показать упоминания» в меню кнопки действий и в меню истории с тремя точками"; +"Mentions overlay button" = "Кнопка упоминаний поверх истории"; +"Mentions count badge" = "Значок количества упоминаний"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "Добавляет кнопку рядом с кнопкой действия/глаза на оверлее истории. Появляется только если в текущей истории есть упоминания или прикреплённые посты/рилсы"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "Показывает количество уникальных упомянутых аккаунтов красным значком на кнопке"; +"Hide stories midcards" = "Скрыть промокарты в историях"; +"Removes the Trending and Music promo cards from the stories tray" = "Удаляет промокарты «Тренды» и «Музыка» из ленты историй"; "Stickers" = "Стикеры"; -"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force Quiz brings the legacy Quiz sticker back into the story composer tray." = "Смотрите результаты опросов/викторин/слайдера до взаимодействия — вы по-прежнему можете нажать для голосования. «Принудительно добавить викторину» возвращает устаревший стикер викторины в редактор истории."; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "Смотрите результаты опросов/викторин/слайдера до взаимодействия — вы по-прежнему можете нажать для голосования. «Принудительно добавить устаревшие» возвращает стикеры викторины и «Раскрыть» в редактор истории."; "Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "Смотрите результаты опросов/викторин/слайдера в reels до взаимодействия — вы по-прежнему можете нажать для голосования."; -"Force Quiz sticker in tray" = "Принудительно добавить стикер викторины"; -"Adds Quiz back to the story sticker picker" = "Возвращает викторину в выбор стикеров истории"; +"Force legacy stickers in tray" = "Принудительно добавить устаревшие стикеры"; +"Adds Quiz and Reveal stickers back to the picker" = "Возвращает стикеры викторины и «Раскрыть» в выбор стикеров"; +"Bypass Reveal sticker" = "Обход стикера «Раскрыть»"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "Пропускает отправку сообщения для раскрытия историй со стикером «Раскрыть»"; "Show quiz answer" = "Показывать ответ викторины"; "Circle the correct option on quiz stickers, or the leading option on polls" = "Обводит правильный вариант в викторине или лидирующий в опросе"; "Show poll vote counts" = "Показывать количество голосов опроса"; @@ -403,20 +546,21 @@ "Activity" = "Активность"; "Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "Добавляет пункт \"Скачать\" в меню удержания голосовых сообщений, чтобы сохранять их как аудио M4A"; +"Allows typing and sending DMs longer than Instagram's limit" = "Позволяет вводить и отправлять сообщения длиннее лимита Instagram"; "Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "Добавляет пункт \"Отправить файл\" в меню плюса в DM. Поддерживаемые типы файлов могут быть ограничены Instagram"; "Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "Добавляет пункт \"Аудиофайл\" в меню плюса в DM для отправки аудиофайлов как голосовых сообщений"; "Adds copy text, download GIF/audio to the note long-press menu" = "Добавляет копирование текста и скачивание GIF/аудио в меню удержания заметки"; "Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "Блокировать всё: блокируются все чаты — чаты в списке являются исключениями.\nБлокировать выбранное: блокируются только чаты в списке — всё остальное работает как обычно.\nОба списка сохраняются независимо. Удерживайте чат во входящих, чтобы добавить или удалить его."; "Block keep-deleted for excluded chats" = "Блокировать keep-deleted для исключённых чатов"; "Block keep-deleted for unlisted chats" = "Блокировать keep-deleted для чатов вне списка"; +"Bypass DM character limit" = "Обойти лимит символов в сообщениях"; "Chat list" = "Список чатов"; "Confirmation dialog before clearing preserved messages" = "Подтверждение перед очисткой сохранённых сообщений"; "Copies note text directly on long press without opening the menu" = "Копирует текст заметки сразу по удержанию без открытия меню"; "Copy text on hold" = "Копировать текст по удержанию"; -"Custom emojis and background/text colors" = "Пользовательские эмодзи и цвета фона/текста"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "Добавляет кнопку-кисть и долгое нажатие для выбора пользовательских цветов фона и текста"; "Custom note themes" = "Пользовательские темы заметок"; "Disable vanish mode swipe" = "Отключить свайп для режима Vanish"; -"Disable screenshot detection" = "Отключить обнаружение скриншотов"; "Disable typing status" = "Отключить статус набора"; "Disable view-once limitations" = "Отключить ограничения view-once"; "Download voice messages" = "Скачивать голосовые сообщения"; @@ -426,20 +570,26 @@ "Files" = "Файлы"; "Full last active date" = "Полная дата последней активности"; "Hide reels blend button" = "Скрыть кнопку Blend в рилсах"; +"Hide send to group chat" = "Скрыть «Отправить в групповой чат»"; +"Pin recipients on long-press" = "Закреплять получателей долгим нажатием"; +"Long-press in the share sheet to pin a chat/user to the top" = "Долгое нажатие в окне «Поделиться», чтобы закрепить чат/пользователя сверху"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "Долгое нажатие на получателя, чтобы закрепить или открепить. Закреплённые получатели отображаются сверху."; +"Recipient pinned" = "Получатель закреплён"; +"Recipient unpinned" = "Получатель откреплён"; +"Couldn't resolve recipient id" = "Не удалось определить ID получателя"; "Hide video call button" = "Скрыть кнопку видеозвонка"; "Hide voice call button" = "Скрыть кнопку голосового звонка"; "Hides the blend button in DMs" = "Скрывает кнопку Blend в DM"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "Убирает строку создания/отправки в групповой чат при отправке нескольким получателям"; "Hides typing indicator from others" = "Скрывает индикатор набора текста от других"; "Indicate unsent messages" = "Показывать отозванные сообщения"; "Keep deleted messages" = "Сохранять удалённые сообщения"; "Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "Делает сообщения view-once похожими на обычные визуальные сообщения (можно зациклить/поставить на паузу)"; "Note actions" = "Действия с заметками"; -"Preserve messages that others unsend" = "Сохранять сообщения, которые другие отзывают"; "Preserves messages that others unsend" = "Сохраняет сообщения, которые другие отзывают"; "Prevents accidental swipe-up activation of vanish mode" = "Предотвращает случайное включение режима Vanish свайпом вверх"; "Quick list button in chats" = "Кнопка быстрого списка в чатах"; "Removes the audio call button from DM thread header" = "Убирает кнопку аудиозвонка из заголовка диалога DM"; -"Removes the screenshot-prevention features for visual messages in DMs" = "Убирает защиту от скриншотов для визуальных сообщений в DM"; "Removes the video call button from DM thread header" = "Убирает кнопку видеозвонка из заголовка диалога DM"; "Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "Позволяет повторно воспроизводить визуальные сообщения без истечения срока. Переключается в меню кнопки глаза или отдельной кнопкой, если кнопка глаза отключена"; "Search, sort, swipe to remove or toggle keep-deleted" = "Поиск, сортировка, свайп для удаления или переключения keep-deleted"; @@ -456,13 +606,127 @@ "Which chats get read-receipt blocking" = "Для каких чатов блокируются уведомления о прочтении"; "⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ Жест pull-to-refresh во вкладке DMs очищает все сохранённые сообщения. Включите предупреждение ниже, чтобы получать подтверждение."; +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu удалено"; +"%lu messages from %lu users" = "%lu сообщений от %lu пользователей"; +"%lu selected" = "Выбрано: %lu"; +"Absolute date + time" = "Точная дата и время"; +"Adjust the filters or clear the search to see more." = "Измените фильтры или очистите поиск, чтобы увидеть больше."; +"All time" = "Всё время"; +"Browse, filter and search recorded messages" = "Просмотр, фильтрация и поиск записанных сообщений"; +"Captures unsent messages with their text or media" = "Захватывает отозванные сообщения вместе с текстом и медиа"; +"Clear deleted-message log?" = "Очистить журнал удалённых сообщений?"; +"Clear from this user" = "Очистить от этого пользователя"; +"Clear log" = "Очистить журнал"; +"Clear log for this account" = "Очистить журнал этого аккаунта"; +"Clear log for this user?" = "Очистить журнал этого пользователя?"; +"Clear media files" = "Очистить медиафайлы"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "Очистка медиа сохраняет записи (текст, отправитель, время). Очистка журнала удаляет всё для этого аккаунта."; +"Close" = "Закрыть"; +"Content unavailable" = "Контент недоступен"; +"Copied" = "Скопировано"; +"Copy URL" = "Копировать URL"; +"Date range" = "Диапазон дат"; +"Deleted messages" = "Удалённые сообщения"; +"Deleted messages log" = "Журнал удалённых сообщений"; +"Deleted: %@\n" = "Удалено: %@\n"; +"Edit %lu" = "Изменение %lu"; +"Edit history" = "История изменений"; +"Edited" = "Изменено"; +"Empty" = "Пусто"; +"Enable deleted messages log" = "Включить журнал удалённых сообщений"; +"Enable Settings → Messages → Deleted messages log to start recording." = "Включите Настройки → Сообщения → Журнал удалённых сообщений, чтобы начать запись."; +"GIF" = "GIF"; +"Hashtag" = "Хэштег"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "Тип: %@\n"; +"Last 30 days" = "Последние 30 дней"; +"Last 7 days" = "Последние 7 дней"; +"Link" = "Ссылка"; +"Live location" = "Геопозиция в реальном времени"; +"Location" = "Место"; +"Logging is off" = "Запись отключена"; +"Media on disk" = "Медиа на диске"; +"Most messages" = "Больше всего сообщений"; +"Most recent" = "Сначала новые"; +"No deleted messages yet" = "Удалённых сообщений пока нет"; +"No matches" = "Ничего не найдено"; +"Nothing to save" = "Нечего сохранять"; +"Oldest first" = "Сначала старые"; +"Open log" = "Открыть журнал"; +"Open profile" = "Открыть профиль"; +"Original" = "Оригинал"; +"Play" = "Воспроизвести"; +"Post" = "Публикация"; +"Records every message someone unsends, grouped by sender" = "Записывает каждое отозванное сообщение, группируя по отправителю"; +"Reel" = "Reels"; +"Relative (1m / 3h / 3d ago)" = "Относительное (1 мин / 3 ч / 3 д назад)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "Удаляет все сохранённые удалённые сообщения и их медиа для текущего аккаунта. Действие необратимо."; +"Removes every preserved deleted message and its captured media for this account." = "Удаляет все сохранённые удалённые сообщения и их медиа для этого аккаунта."; +"Removes every preserved deleted message from this sender." = "Удаляет все сохранённые удалённые сообщения от этого отправителя."; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "Удаляет каждую сохранённую фотографию, видео и голосовое сообщение. Записи сохраняют текст и информацию об отправителе."; +"Search messages" = "Поиск сообщений"; +"Search senders or messages" = "Поиск отправителей или сообщений"; +"Select" = "Выбрать"; +"Show edit history" = "Показать историю изменений"; +"Source URL recorded but media not stored.\n" = "URL источника записан, но медиа не сохранено.\n"; +"Sticker" = "Стикер"; +"Tap to open in Instagram" = "Нажмите, чтобы открыть в Instagram"; +"Tap to open in Maps" = "Нажмите, чтобы открыть в Картах"; +"Tap to play" = "Нажмите для воспроизведения"; +"Tap to play · %@" = "Нажмите для воспроизведения · %@"; +"Text" = "Текст"; +"This account" = "Этот аккаунт"; +"Unknown" = "Неизвестно"; +"Video" = "Видео"; +"View" = "Просмотр"; +"Voice" = "Голос"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "Когда включено, удалённые сообщения и их медиа сохраняются на этом устройстве. Отключите и очистите журнал, чтобы стереть историю."; +"When someone unsends a message, it will appear here grouped by sender." = "Когда кто-то отзовёт сообщение, оно появится здесь сгруппированным по отправителю."; + ////////////////////////////////////////////////////////////////////////////// // MESSAGES // // Settings → Messages tab // ////////////////////////////////////////////////////////////////////////////// +"Custom chat background" = "Свой фон чата"; +"Incoming calls stay silent — no ring, no screen, no notification" = "Входящие звонки остаются беззвучными — без звонка, экрана и уведомления"; "Messages" = "Сообщения"; +"Silence incoming calls" = "Заглушать входящие звонки"; "Threads" = "Диалоги"; +"Use your own images as chat backgrounds" = "Использовать свои изображения как фоны чатов"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "Добавляет кнопку галереи в камеру instants, чтобы отправить фото из альбома"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "Добавляет кнопку действий RyukGram в заголовок просмотрщика Instants с пунктами для развёртывания, сохранения, отправки и массового сохранения"; +"All loaded instants" = "Все загруженные Instants"; +"Bypasses the Instants screenshot block" = "Снимает блокировку скриншотов в Instants"; +"Could not locate the instant on screen" = "Не удалось найти Instant на экране"; +"Current instant" = "Текущий Instant"; +"In-app Gallery" = "Встроенная галерея"; +"Instant" = "Мгновенно"; +"Instants" = "Моменты"; +"Instants action button" = "Кнопка действий Instants"; +"No instants currently loaded" = "Сейчас нет загруженных Instants"; +"No media available to save" = "Нет медиа для сохранения"; +"Photos library" = "Медиатека"; +"Pick from" = "Выбрать из"; +"Queued %lu instants" = "В очереди: %lu Instants"; +"Save all to Gallery" = "Сохранить все в Галерею"; +"Save all to Photos" = "Сохранить все в Фото"; +"Save to Gallery" = "Сохранить в Галерею"; +"Send from gallery" = "Отправить из галереи"; +"Tweaks for the QuickSnap / Instants camera surface." = "Настройки экрана камеры QuickSnap / Instants."; +"Use" = "Использовать"; ////////////////////////////////////////////////////////////////////////////// // NAVIGATION // @@ -499,46 +763,236 @@ // Settings → Confirm actions tab // ////////////////////////////////////////////////////////////////////////////// +"All" = "Все"; +"Calls" = "Звонки"; +"Comments & posts" = "Комментарии и публикации"; "Confirm actions" = "Подтверждение действий"; -"Confirm video call" = "Подтверждать видеозвонок"; -"Confirm voice call" = "Подтверждать аудиозвонок"; "Confirm changing theme" = "Подтверждать смену темы"; "Confirm follow" = "Подтверждать подписку"; "Confirm follow requests" = "Подтверждать запросы на подписку"; +"Confirm Instants capture" = "Подтверждать съёмку Instants"; +"Confirm Instants emoji reaction" = "Подтверждать эмодзи-реакцию на Instants"; "Confirm like: Posts" = "Подтверждать лайк: посты"; "Confirm like: Reels" = "Подтверждать лайк: рилсы"; +"Confirm note emoji reaction" = "Подтверждать эмодзи-реакцию на заметку"; +"Confirm note like" = "Подтверждать лайк заметки"; "Confirm posting comment" = "Подтверждать отправку комментария"; "Confirm repost" = "Подтверждать репост"; -"Confirm vanish mode" = "Подтверждать режим исчезновения"; -"Confirm sticker interaction (stories)" = "Подтверждать взаимодействие со стикером (истории)"; +"Confirm send to group chat" = "Подтверждать отправку в групповой чат"; "Confirm sticker interaction (highlights)" = "Подтверждать взаимодействие со стикером (актуальное)"; +"Confirm sticker interaction (stories)" = "Подтверждать взаимодействие со стикером (истории)"; "Confirm story emoji reaction" = "Подтверждать эмодзи-реакцию на историю"; "Confirm story like" = "Подтверждать лайк истории"; +"Confirm switching Instant" = "Подтверждать переключение Instant"; "Confirm unfollow" = "Подтверждать отписку"; +"Confirm vanish mode" = "Подтверждать режим исчезновения"; +"Confirm video call" = "Подтверждать видеозвонок"; +"Confirm voice call" = "Подтверждать аудиозвонок"; "Confirm voice messages" = "Подтверждать голосовые сообщения"; +"Follows" = "Подписки"; +"Likes" = "Лайки"; +"Messaging" = "Сообщения"; +"Reaction stickers only" = "Только стикеры реакций"; +"Reactions" = "Реакции"; +"Send to group chat?" = "Отправить в групповой чат?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "Показывает подтверждение перед созданием/отправкой в групповой чат из меню «Поделиться»"; +"Shows an alert before sending an emoji reaction on a note" = "Показывает подтверждение перед отправкой эмодзи-реакции на заметку"; "Shows an alert before sending an emoji reaction on a story" = "Показывает подтверждение перед отправкой эмодзи-реакции на историю"; +"Shows an alert before sending an emoji reaction on an Instant" = "Показывает подтверждение перед отправкой эмодзи-реакции на Instant"; +"Shows an alert before taking a photo with the Instants camera" = "Показывает подтверждение перед съёмкой фото камерой Instants"; +"Shows an alert before tapping to switch to the next/previous Instant" = "Показывает подтверждение перед нажатием для переключения на следующий/предыдущий Instant"; "Shows an alert to confirm before sending a voice message" = "Показывает подтверждение перед отправкой голосового сообщения"; "Shows an alert to confirm before toggling vanish mode" = "Показывает подтверждение перед включением режима исчезновения"; "Shows an alert when you accept/decline a follow request" = "Показывает подтверждение при принятии или отклонении запроса на подписку"; "Shows an alert when you change a chat theme to confirm" = "Показывает подтверждение при смене темы чата"; -"Shows an alert when you tap a sticker on someone's story" = "Показывает подтверждение при нажатии на стикер в чьей-то истории"; -"Shows an alert when you tap a sticker inside a highlight" = "Показывает подтверждение при нажатии на стикер в актуальном"; -"Shows an alert when you click the video call button to confirm before calling" = "Показывает подтверждение при нажатии кнопки видеозвонка"; -"Shows an alert when you click the voice call button to confirm before calling" = "Показывает подтверждение при нажатии кнопки аудиозвонка"; "Shows an alert when you click the follow button to confirm the follow" = "Показывает подтверждение при нажатии кнопки подписки"; +"Shows an alert when you click the like button on notes to confirm the like" = "Показывает подтверждение при нажатии кнопки лайка на заметках"; "Shows an alert when you click the like button on posts to confirm the like" = "Показывает подтверждение при нажатии кнопки лайка на постах"; "Shows an alert when you click the like button on reels to confirm the like" = "Показывает подтверждение при нажатии кнопки лайка на рилсах"; "Shows an alert when you click the like button on stories to confirm the like" = "Показывает подтверждение при нажатии кнопки лайка на историях"; "Shows an alert when you click the post comment button to confirm" = "Показывает подтверждение при нажатии кнопки отправки комментария"; -"Shows an alert when you click the repost button to confirm before resposting" = "Показывает подтверждение при нажатии кнопки репоста перед повторной публикацией"; +"Shows an alert when you click the repost button to confirm before reposting" = "Показывает подтверждение при нажатии кнопки репоста перед повторной публикацией"; "Shows an alert when you click the unfollow button to confirm" = "Показывает подтверждение при нажатии кнопки отписки"; +"Shows an alert when you click the video call button to confirm before calling" = "Показывает подтверждение при нажатии кнопки видеозвонка"; +"Shows an alert when you click the voice call button to confirm before calling" = "Показывает подтверждение при нажатии кнопки аудиозвонка"; +"Shows an alert when you tap a sticker inside a highlight" = "Показывает подтверждение при нажатии на стикер в актуальном"; +"Shows an alert when you tap a sticker on someone's story" = "Показывает подтверждение при нажатии на стикер в чьей-то истории"; +"Stories & highlights" = "Истории и актуальное"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld ч"; +"%ld locked" = "%ld заблокировано"; +"%ld min" = "%ld мин"; +"%ldh idle" = "%ld ч простоя"; +"%ldm idle" = "%ld мин простоя"; +"%lds" = "%ld с"; +"%lds idle" = "%ld с простоя"; +"%lu hidden" = "%lu скрыто"; +"4 digits" = "4 цифры"; +"6 digits" = "6 цифр"; +"Add hidden chat" = "Добавить скрытый чат"; +"Add locked chat" = "Добавить заблокированный чат"; +"Allow Instants screenshots" = "Разрешить скриншоты Instants"; +"Always ask when opening again" = "Всегда спрашивать при повторном открытии"; +"Ask again after Instagram returns" = "Спрашивать снова после возврата в Instagram"; +"Auto-relock after idle" = "Авто-блокировка после простоя"; +"Balanced default" = "Сбалансированный по умолчанию"; +"Best for sensitive sections" = "Лучше для конфиденциальных разделов"; +"Biometric" = "Биометрия"; +"Change passcode" = "Сменить код-пароль"; +"Chat hidden" = "Чат скрыт"; +"Chat locked" = "Чат заблокирован"; +"Chat unlocked" = "Чат разблокирован"; +"Choose a code you'll remember." = "Выберите код, который запомните."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "Выберите, как долго этот раздел остаётся разблокированным при бездействии. «Никогда» — пока Instagram не закроется или не уйдёт в фон."; +"Confirm current passcode" = "Подтвердите текущий код-пароль"; +"Confirm passcode" = "Подтвердите код-пароль"; +"Could not save passcode" = "Не удалось сохранить код-пароль"; +"Create passcode" = "Создать код-пароль"; +"Derivation failed" = "Не удалось вывести ключ"; +"DM inbox" = "Входящие DM"; +"Don't share unlock" = "Не делиться разблокировкой"; +"Each target has its own enable, timeout, and re-lock configuration." = "У каждой цели свои настройки включения, тайм-аута и повторной блокировки."; +"Enable lock" = "Включить блокировку"; +"Enter passcode" = "Введите код-пароль"; +"Enter value" = "Введите значение"; +"Enter your current passcode to change it" = "Введите текущий код-пароль, чтобы изменить его"; +"Enter your current passcode to reset it" = "Введите текущий код-пароль, чтобы сбросить его"; +"Enter your passcode to continue" = "Введите код-пароль, чтобы продолжить"; +"every use" = "каждый раз"; +"Every use" = "Каждый раз"; +"Hidden chats" = "Скрытые чаты"; +"Hide chat" = "Скрыть чат"; +"Hide message preview" = "Скрыть предпросмотр сообщения"; +"Hide this chat?" = "Скрыть этот чат?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "Скрывает интерфейс RyukGram на скриншотах и записях и обходит уведомления Instagram о скриншотах по функциям."; +"Idle timeout" = "Тайм-аут простоя"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "Держать эту цель заблокированной отдельно"; +"Less frequent prompts" = "Реже запрашивать"; +"Lock" = "Блокировка"; +"Lock chat" = "Заблокировать чат"; +"Lock every time" = "Блокировать каждый раз"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "«Блокировать каждый раз» переопределяет тайм-аут бездействия. «Не делиться разблокировкой» держит эту цель отдельно."; +"Lock targets" = "Цели блокировки"; +"Lock the tweak" = "Заблокировать твик"; +"Lock this chat" = "Заблокировать этот чат"; +"Lock this chat?" = "Заблокировать этот чат?"; +"Lock with passcode" = "Блокировать код-паролем"; +"Locked chats" = "Заблокированные чаты"; +"Long-press a chat to lock it individually" = "Долгое нажатие на чат, чтобы заблокировать его отдельно"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "Долгое нажатие на чат → Скрыть чат, чтобы добавить его сюда. Скрытые чаты исключаются из входящих, пока вы не удалите их из этого списка."; +"Long-press a DM to add" = "Долгое нажатие на чат, чтобы добавить"; +"Longest idle window" = "Самое долгое время бездействия"; +"Manage locked chats" = "Управление заблокированными чатами"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "Главный переключатель. Отключите, чтобы отключить все цели блокировки, не теряя настройки каждой."; +"Never" = "Никогда"; +"No passcode set" = "Код-пароль не задан"; +"Nothing here yet." = "Здесь пока ничего нет."; +"Off" = "Выкл."; +"On" = "Вкл."; +"On — %@" = "Вкл. — %@"; +"On — %@ + %ld more" = "Вкл. — %@ + ещё %ld"; +"On — no targets enabled" = "Вкл. — нет включённых целей"; +"Passcode" = "Код-пароль"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "Код-пароль + биометрия. Блокирует окно настроек твика, галерею, журнал удалённых сообщений, отдельные чаты и всё приложение."; +"Passcode changed" = "Код-пароль изменён"; +"Passcode reset" = "Код-пароль сброшен"; +"Passcode set" = "Код-пароль задан"; +"Passcode too short" = "Код-пароль слишком короткий"; +"Passcodes did not match — try again" = "Коды не совпадают — попробуйте ещё раз"; +"Per-chat locks" = "Блокировки по чатам"; +"Prompt before Instagram opens" = "Запрашивать перед открытием Instagram"; +"Prompt before Profile Analyzer opens" = "Запрашивать перед открытием Анализатора профиля"; +"Prompt before the deleted-messages log opens" = "Запрашивать перед открытием журнала удалённых сообщений"; +"Prompt before the gallery opens" = "Запрашивать перед открытием галереи"; +"Prompt before tweak settings open" = "Запрашивать перед открытием настроек твика"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "Запрашивать при каждом входе во входящие DM, включая прямой запуск в сообщения"; +"Re-enter the same passcode" = "Введите тот же код-пароль ещё раз"; +"Re-lock on background" = "Блокировка при сворачивании"; +"re-lock on bg" = "блок. при сворач."; +"Recently hidden" = "Недавно скрытые"; +"Recently locked" = "Недавно заблокированные"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "Скрывает кнопки RyukGram на скриншотах, записях экрана и при зеркалировании"; +"Remove screenshot alert" = "Убрать уведомление о скриншоте"; +"Replace inbox preview with • • •" = "Заменить превью входящих на • • •"; +"Require passcode for this section" = "Запрашивать код-пароль для этого раздела"; +"Requires your current passcode" = "Требуется текущий код-пароль"; +"Reset passcode" = "Сбросить код-пароль"; +"Reset passcode?" = "Сбросить код-пароль?"; +"Screenshots & capture" = "Скриншоты и запись"; +"Security & Privacy" = "Безопасность и конфиденциальность"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "Задайте код-пароль, чтобы блокировать Настройки, Галерею, журнал удалённых сообщений, отдельные чаты, входящие DM, Анализатор профиля или сам Instagram."; +"Set passcode" = "Задать код-пароль"; +"Short idle window" = "Короткое время бездействия"; +"Stay unlocked until app close or background" = "Оставаться разблокированным до закрытия приложения или ухода в фон"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "Подавлять уведомление Instagram «X сделал скриншот» в историях, личных сообщениях и исчезающих медиа"; +"Tap Unlock" = "Нажмите «Разблокировать»"; +"Tap Unlock or enter your passcode" = "Нажмите «Разблокировать» или введите код-пароль"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "Это очистит код-пароль, отключит все цели блокировки и разблокирует все чаты. Галерея и данные удалённых сообщений не затрагиваются."; +"Thread %@" = "Тред %@"; +"Tweak settings" = "Настройки твика"; +"Unlock" = "Разблокировать"; +"Unlock %@" = "Разблокировать %@"; +"Unlock chat" = "Разблокировать чат"; +"Unlock Instagram" = "Разблокировать Instagram"; +"Unlock this chat" = "Разблокировать этот чат"; +"Use %@" = "Использовать %@"; +"Username (looks up the DM thread) or raw thread ID" = "Имя пользователя (находит чат) или сырой ID чата"; +"Username or thread ID" = "Имя пользователя или ID чата"; +"Wrong passcode" = "Неверный код-пароль"; +"Wrong passcode • %ld attempts" = "Неверный код-пароль • %ld попыток"; ////////////////////////////////////////////////////////////////////////////// // BACKUP & RESTORE // // Settings → Backup & Restore tab // ////////////////////////////////////////////////////////////////////////////// +"%lu account(s)" = "%lu аккаунт(ов)"; +"%lu account(s) · %lu image(s) · %@" = "%lu аккаунт(ов) · %lu изображ. · %@"; +"%lu file(s) · %@" = "%lu файл(ов) · %@"; +"%lu preferences" = "%lu настроек"; +"(none)" = "(нет)"; +"Apply backup?" = "Применить резервную копию?"; +"Applying backup…" = "Применение резервной копии…"; +"archive error" = "ошибка архива"; +"Archived snapshots" = "Архивные снимки"; "Backup & Restore" = "Резервная копия и восстановление"; +"Backup exported" = "Резервная копия экспортирована"; +"Backup failed" = "Ошибка резервного копирования"; +"Backup has no importable sections." = "В резервной копии нет разделов для импорта."; +"Chat & story filters" = "Фильтры чатов и историй"; +"Chat backgrounds" = "Фоны чатов"; +"Clear selected data" = "Очистить выбранные данные"; +"Corrupt entry path." = "Повреждённый путь записи."; +"Could not decompress archive." = "Не удалось распаковать архив."; +"Could not open archive." = "Не удалось открыть архив."; +"Could not open staging file." = "Не удалось открыть промежуточный файл."; +"Could not read the backup archive." = "Не удалось прочитать архив резервной копии."; +"Could not write archive." = "Не удалось записать архив."; +"Could not write backup file." = "Не удалось записать файл резервной копии."; +"Could not write extracted file." = "Не удалось записать извлечённый файл."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "Существующие данные для отмеченных пунктов будут заменены. Может потребоваться перезапуск, чтобы всё вступило в силу."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "Экспорт или импорт данных RyukGram — настройки, фильтры по аккаунтам, скрытые и заблокированные чаты, Анализатор профилей, галерея, фоны чатов и удалённые сообщения. Выбирайте любое сочетание на каждой странице. Настройки сохраняются в обычный файл JSON; пакеты с медиа экспортируются как сжатый .ryukbak."; +"Hidden & locked chats" = "Скрытые и заблокированные чаты"; +"Import" = "Импорт"; +"Inspect the full manifest" = "Просмотреть полный манифест"; +"Load a .json or .ryukbak backup" = "Загрузить резервную копию .json или .ryukbak"; +"Not a RyukGram backup archive." = "Это не архив резервной копии RyukGram."; +"PK %@" = "PK %@"; +"Preparing backup…" = "Подготовка резервной копии…"; +"Reading backup…" = "Чтение резервной копии…"; +"Save settings or a full backup" = "Сохранить настройки или полную резервную копию"; +"Tick what to apply. Rows not in this backup are hidden." = "Отметьте, что применить. Строки, которых нет в этой резервной копии, скрыты."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "Отметьте, что включить. Нажмите строку, чтобы просмотреть её. Добавление галереи, фонов чатов или удалённых сообщений создаёт сжатый пакет .ryukbak."; +"Truncated entry data." = "Усечённые данные записи."; +"Truncated entry length." = "Усечённая длина записи."; +"Truncated entry path." = "Усечённый путь записи."; +"Unsafe entry path." = "Небезопасный путь записи."; ////////////////////////////////////////////////////////////////////////////// // ADVANCED // @@ -554,27 +1008,32 @@ "Clear" = "Очистить"; "Clear cache" = "Очистить кэш"; "Clear cache (%@)" = "Очистить кэш (%@)"; -"Clear cache?" = "Очистить кэш?"; "Clearing cache…" = "Очистка кэша…"; "Clearing still scans on demand." = "Очистка по-прежнему сканирует по запросу."; "Daily" = "Ежедневно"; "Disable safe mode" = "Отключить безопасный режим"; "Enable tweak settings quick-access" = "Включить быстрый доступ к настройкам твика"; -"Free %@ of Instagram cache. A restart is recommended." = "Освободить %@ кэша Instagram. Рекомендуется перезапуск."; -"Freed %@. Restart to apply." = "Освобождено %@. Перезапустите для применения."; +"Fix duplicate notifications" = "Исправить дублирующиеся уведомления"; +"Free %@ of Instagram cache." = "Освободить %@ кэша Instagram."; +"Freed %@" = "Освобождено %@"; "Hold on the home tab to open RyukGram settings" = "Удерживайте вкладку Home, чтобы открыть настройки RyukGram"; -"Instagram" = "Instagram"; "Monthly" = "Ежемесячно"; "Nothing to clear" = "Нечего очищать"; "Off skips the size scan when Advanced opens." = "В выключенном состоянии пропускает сканирование размера при открытии «Дополнительно»."; "Pause playback when opening settings" = "Ставить воспроизведение на паузу при открытии настроек"; +"Always show what's new" = "Всегда показывать новинки"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "Оставлять синюю точку на каждой новой функции, не убирая её после просмотра"; +"Preserve messages database" = "Сохранять базу данных сообщений"; "Pauses any playing video/audio when settings opens" = "Ставит на паузу любое воспроизводимое видео или аудио при открытии настроек"; "Prevents Instagram from resetting settings after crashes (at your own risk)" = "Не даёт Instagram сбрасывать настройки после сбоев (на ваш страх и риск)"; +"Prevents two banners for the same message when IG is in the foreground" = "Предотвращает появление двух баннеров для одного сообщения, когда IG на переднем плане"; "Remove Instagram's cached images, videos, and temporary files." = "Удаляет кэшированные изображения, видео и временные файлы Instagram."; "Reset onboarding state" = "Сбросить состояние онбординга"; "Run a silent cache clear on launch when the interval has elapsed." = "Выполняет тихую очистку кэша при запуске, когда истёк интервал."; "Show cache size" = "Показывать размер кэша"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "Пропускать базу данных сообщений при очистке — сохраняет ЛС, черновики и сохранённые сообщения."; "Show tweak settings on app launch" = "Показывать настройки твика при запуске приложения"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "Подавляет второе уведомление, которое IG ставит в очередь в приложении, пока его также доставляет расширение уведомлений."; "Weekly" = "Еженедельно"; ////////////////////////////////////////////////////////////////////////////// @@ -629,7 +1088,7 @@ "Delete an imported override and fall back to the shipped strings" = "Удалить импортированный файл и вернуться к встроенным строкам"; "Deleted %@ override. Restart to apply." = "Файл %@ удалён. Перезапустите для применения."; "Enable FLEX gesture" = "Включить жест FLEX"; -"Export English strings" = "Экспортировать английские строки"; +"Export strings" = "Экспортировать строки"; "Hold 5 fingers on the screen to open FLEX" = "Удерживайте 5 пальцев на экране, чтобы открыть FLEX"; "I have %@%@" = "У меня есть %@%@"; "Import a .strings file for a language" = "Импортировать файл .strings для языка"; @@ -645,8 +1104,9 @@ "Opens FLEX when the app is focused" = "Открывает FLEX, когда приложение становится активным"; "Opens FLEX when the app launches" = "Открывает FLEX при запуске приложения"; "Pick a language to delete the imported file" = "Выберите язык, чтобы удалить импортированный файл"; +"Pick a language to export" = "Выберите язык для экспорта"; "Reset localization" = "Сбросить локализацию"; -"Share the base English .strings file for translating" = "Поделиться базовым английским файлом .strings для перевода"; +"Pick a language and share its .strings file" = "Выберите язык, чтобы поделиться его файлом .strings"; "Static Cell" = "Статическая ячейка"; "Stepper cell" = "Ячейка степпера"; "Switch Cell" = "Ячейка переключателя"; @@ -663,34 +1123,39 @@ ////////////////////////////////////////////////////////////////////////////// "%@ settings" = "Настройки %@"; +"%lu items" = "%lu объектов"; "Cancelled" = "Отменено"; +"Carousel" = "Карусель"; +"Carousel · %lu items" = "Карусель · %lu объектов"; "Copied %lu URLs" = "Скопировано URL: %lu"; "Copied caption" = "Подпись скопирована"; "Copied download URL" = "URL загрузки скопирован"; +"Copied quality info" = "Сведения о качестве скопированы"; +"Copied video URL" = "URL видео скопирован"; "Copy all URLs" = "Копировать все URL"; "Copy caption" = "Копировать подпись"; "Copy download URL" = "Копировать URL загрузки"; "Could not extract any URLs" = "Не удалось извлечь ни одного URL"; +"Could not extract audio URL" = "Не удалось извлечь URL аудио"; "Could not extract media URL" = "Не удалось извлечь URL медиа"; "Could not extract photo URL" = "Не удалось извлечь URL фото"; "Could not extract video URL" = "Не удалось извлечь URL видео"; "Done" = "Готово"; -"Download all (%lu)" = "Скачать всё (%lu)"; "Download all stories and share?" = "Скачать все истории и поделиться?"; "Download all to Photos" = "Скачать всё в Фото"; "Download and share all" = "Скачать всё и поделиться"; -"Download and share?" = "Скачать и поделиться?"; "Download failed" = "Ошибка скачивания"; "Downloaded %lu items" = "Скачано элементов: %lu"; -"Downloading %@..." = "Скачивание %@..."; -"Downloading..." = "Скачивание..."; +"Downloading audio…" = "Загрузка аудио…"; "Failed to save" = "Не удалось сохранить"; +"File" = "Файл"; +"HD" = "HD"; "HD download complete" = "HD-загрузка завершена"; +"HD video" = "HD-видео"; "Mute audio" = "Выключить звук"; "No caption on this post" = "У этого поста нет подписи"; "No carousel children" = "У карусели нет элементов"; "No cover image" = "Нет обложки"; -"No files downloaded" = "Файлы не скачаны"; "No media" = "Нет медиа"; "No media to expand" = "Нет медиа для разворачивания"; "No media to show" = "Нет медиа для показа"; @@ -699,22 +1164,22 @@ "No URLs found" = "URL не найдены"; "No video URL" = "Нет URL видео"; "Not a carousel" = "Это не карусель"; -"Nothing to save" = "Нечего сохранять"; "Nothing to share" = "Нечем поделиться"; -"Opening creator..." = "Открытие автора..."; +"Opening creator…" = "Открытие автора..."; "Photo library access denied" = "Доступ к медиатеке Фото запрещён"; "Photos access denied" = "Доступ к Фото запрещён"; -"Preparing repost..." = "Подготовка репоста..."; +"Preparing repost…" = "Подготовка репоста..."; +"Raw image" = "Исходное изображение"; "Repost" = "Репост"; "Repost unavailable" = "Репост недоступен"; -"Save all stories to Photos?" = "Сохранить все истории в Фото?"; "Save failed" = "Ошибка сохранения"; -"Save to Photos?" = "Сохранить в Фото?"; "Saved %lu items" = "Сохранено элементов: %lu"; "Saved to Photos" = "Сохранено в Фото"; "Saved to RyukGram" = "Сохранено в RyukGram"; -"Tap to cancel" = "Нажмите, чтобы отменить"; +"Saving to Photos" = "Сохранение в «Фото»"; +"Saving…" = "Сохранение..."; "Unmute audio" = "Включить звук"; +"Video · %@" = "Видео · %@"; "View cover" = "Посмотреть обложку"; "View mentions" = "Посмотреть упоминания"; @@ -724,68 +1189,76 @@ // inside DM threads. // ////////////////////////////////////////////////////////////////////////////// +" %lu votes · avg %.0f%% " = " %lu голосов · среднее %.0f%% "; +"%@ can't be converted" = "Не удалось преобразовать %@"; +"%@ unsent a message" = "%@ отозвал(а) сообщение"; +"%@ unsent a message from %@" = "%1$@ отозвал(а) сообщение от %2$@"; "A message was unsent" = "Сообщение было отозвано"; "Add" = "Добавить"; "Add to block list" = "Добавить в список блокировки"; -"Add to block list?" = "Добавить в список блокировки?"; "Added to block list" = "Добавлено в список блокировки"; "Added to exclude list" = "Добавлено в список исключений"; "Audio not loaded yet. Play the message first and try again." = "Аудио ещё не загружено. Сначала воспроизведите сообщение и попробуйте снова."; "Audio sent" = "Аудио отправлено"; +"Audio URL not available" = "URL аудио недоступен"; "Audio/Video from Files" = "Аудио/видео из Файлов"; "Blocked" = "Заблокировано"; "Cancel" = "Отмена"; "Clear preserved messages?" = "Очистить сохранённые сообщения?"; -"Converting..." = "Конвертация..."; +"Converting…" = "Конвертация..."; +"Copy link" = "Копировать ссылку"; "Copy text" = "Копировать текст"; +"Could not copy selected video" = "Не удалось скопировать выбранное видео"; "Could not find media" = "Не удалось найти медиа"; "Could not find story media" = "Не удалось найти медиа истории"; "Could not get audio data. Try again after refreshing the chat." = "Не удалось получить аудиоданные. Попробуйте снова после обновления чата."; -"Could not get video URL" = "Не удалось получить URL видео"; "Disable read receipts" = "Отключить уведомления о прочтении"; "Disappearing media" = "Исчезающие медиа"; -"Done!" = "Готово!"; "Download audio" = "Скачать аудио"; -"Downloading audio..." = "Скачивание аудио..."; "Enable read receipts" = "Включить уведомления о прочтении"; "Error: %@" = "Ошибка: %@"; "Exclude chat" = "Исключить чат"; "Exclude from seen" = "Исключить из просмотренных"; "Exclude story seen" = "Исключить просмотр истории"; "Excluded" = "Исключено"; -"Extracting audio..." = "Извлечение аудио..."; -"Failed to encode GIF" = "Не удалось закодировать GIF"; +"Extracting audio…" = "Извлечение аудио..."; +"FFmpeg conversion failed" = "Не удалось выполнить преобразование через FFmpeg"; "File sending not supported" = "Отправка файлов не поддерживается"; "Follow" = "Подписаться"; "Following" = "Подписки"; +"Format not supported without FFmpegKit" = "Формат не поддерживается без FFmpegKit"; "Inserts a button on disappearing media overlays" = "Добавляет кнопку на оверлей исчезающих медиа"; "Inserts a speaker button to mute/unmute disappearing media" = "Добавляет кнопку динамика для звука исчезающих медиа"; "Inserts an eye button to mark the current disappearing media as viewed" = "Добавляет кнопку-глаз для отметки текущего исчезающего медиа как просмотренного"; +"Link copied" = "Ссылка скопирована"; "Mark as viewed" = "Отметить как просмотренное"; "Mark messages as seen" = "Отметить сообщения как просмотренные"; "Mark seen" = "Отметить просмотр"; -"Marked as seen" = "Отмечено как просмотренное"; "Marked as viewed" = "Отмечено как просмотренное"; "Marked messages as seen" = "Сообщения отмечены как просмотренные"; "Mentions" = "Упоминания"; +"Message from %@ was unsent" = "Сообщение от %@ было отозвано"; "Message sender not found" = "Отправитель сообщения не найден"; "Messages settings" = "Настройки сообщений"; -"Audio URL not available" = "URL аудио недоступен"; "Mute story audio" = "Выключить звук истории"; +"no audio track could be read" = "не удалось прочитать аудиодорожку"; "No audio URL found. Try again after refreshing the chat." = "URL аудио не найден. Попробуйте снова после обновления чата."; "No mentions in this story" = "В этой истории нет упоминаний"; "No thread key" = "Нет ключа диалога"; +"No video selected" = "Видео не выбрано"; "No voice send method found" = "Не найден способ отправки голосового сообщения"; -"Note not found" = "Заметка не найдена"; +"Note has no downloadable content" = "В заметке нет содержимого для загрузки"; "Note text copied" = "Текст заметки скопирован"; "Open GitHub" = "Открыть GitHub"; +"Pick audio or video" = "Выберите аудио или видео"; "Read receipts disabled" = "Уведомления о прочтении отключены"; "Read receipts enabled" = "Уведомления о прочтении включены"; "Read receipts will be blocked for this chat." = "Для этого чата уведомления о прочтении будут заблокированы."; "Read receipts will no longer be blocked for this chat." = "Для этого чата уведомления о прочтении больше не будут блокироваться."; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "Обновление DM удалит %lu сохранённое сообщение. Это нельзя отменить."; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "Обновление DM удалит %lu сохранённых сообщений. Это нельзя отменить."; "Remove" = "Удалить"; "Remove from block list" = "Убрать из списка блокировки"; -"Remove from block list?" = "Убрать из списка блокировки?"; "Remove from exclude list" = "Удалить из списка исключений"; "Removed" = "Удалено"; "Removed from list" = "Удалено из списка"; @@ -794,15 +1267,16 @@ "Send anyway" = "Всё равно отправить"; "Send Audio" = "Отправить аудио"; "Send failed: %@" = "Ошибка отправки: %@"; +"Send File" = "Отправить файл"; "Send service not found" = "Сервис отправки не найден"; "Show audio toggle" = "Показывать переключатель звука"; "Show mark-as-viewed button" = "Показывать кнопку отметки о просмотре"; "Story read receipts disabled" = "Уведомления о просмотре историй отключены"; "Story read receipts enabled" = "Уведомления о просмотре историй включены"; "This chat will resume normal read-receipt behavior." = "Для этого чата будет восстановлено обычное поведение уведомлений о прочтении."; +"This file" = "Этот файл"; "Total: %@" = "Всего: %@"; "Un-exclude chat" = "Убрать чат из исключений"; -"Un-exclude chat?" = "Убрать чат из исключений?"; "Un-exclude story seen" = "Убрать просмотр истории из исключений"; "Un-excluded" = "Исключение убрано"; "Unblocked" = "Разблокировано"; @@ -815,7 +1289,58 @@ "Visual messages will expire" = "Визуальные сообщения истекут"; "Visual messages: expiring" = "Визуальные сообщения: с истечением"; "Visual messages: unlimited replay" = "Визуальные сообщения: неограниченный повтор"; -"Will sync when leaving stories" = "Синхронизируется при выходе из историй"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "Добавить фон"; +"Add Chat Background" = "Добавить фон чата"; +"Adds your own image backgrounds to Instagram chats" = "Добавляет собственные фоны-изображения в чаты Instagram"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "После включения откройте любой чат, нажмите кнопку темы, затем значок фото в правом верхнем углу."; +"Blur" = "Размытие"; +"Browse chats" = "Просмотр чатов"; +"Browse chats (%ld)" = "Просмотр чатов (%ld)"; +"Change Background" = "Изменить фон"; +"Change default" = "Изменить по умолчанию"; +"Chat Backgrounds" = "Фоны чатов"; +"Choose an image used when no chat override exists" = "Выберите изображение, используемое при отсутствии настройки для чата"; +"Choose Image" = "Выбрать изображение"; +"Clear default" = "Сбросить по умолчанию"; +"Couldn't import image" = "Не удалось импортировать изображение"; +"Custom Chat Background" = "Свой фон чата"; +"Default background" = "Фон по умолчанию"; +"Delete library images, default background, and chat overrides" = "Удалить изображения библиотеки, фон по умолчанию и настройки чатов"; +"Dim in dark mode" = "Затемнять в тёмной теме"; +"Edit image settings" = "Изменить настройки изображения"; +"Enable custom backgrounds" = "Включить свои фоны"; +"Enter a username, chat name, or thread ID." = "Введите имя пользователя, название чата или ID треда."; +"Group" = "Группа"; +"Image Settings" = "Настройки изображения"; +"Library" = "Библиотека"; +"Library, default, and per-chat overrides will be deleted." = "Библиотека, фон по умолчанию и настройки чатов будут удалены."; +"No Custom" = "Без своего"; +"Opacity" = "Непрозрачность"; +"Photo Library" = "Медиатека"; +"Pick default" = "Выбрать по умолчанию"; +"Pinch + drag to position" = "Сведите пальцы и перетащите для позиционирования"; +"Quit and reopen Instagram for the change to take effect." = "Закройте и снова откройте Instagram, чтобы изменение вступило в силу."; +"Recently set" = "Недавно заданные"; +"Remove the global fallback background" = "Удалить глобальный запасной фон"; +"Replace the default background image" = "Заменить изображение фона по умолчанию"; +"Reset all backgrounds" = "Сбросить все фоны"; +"Reset all backgrounds?" = "Сбросить все фоны?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "Сброс устанавливает непрозрачность 1.0, размытие 0, затемнение 0."; +"RyukGram Gallery" = "Галерея RyukGram"; +"Search username, name, or thread ID" = "Поиск по имени пользователя, имени или ID треда"; +"Set as default" = "Сделать по умолчанию"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "Нажмите «плюс» для добавления. Нажмите фон, чтобы изменить, сделать по умолчанию или удалить."; +"This Chat Background" = "Фон этого чата"; +"Thread ID" = "ID треда"; +"Used only when a chat does not have its own custom background." = "Используется только когда у чата нет собственного фона."; +"View and manage chats with custom backgrounds" = "Просмотр и управление чатами со своими фонами"; ////////////////////////////////////////////////////////////////////////////// // GENERAL FEATURES // @@ -825,213 +1350,231 @@ "Add location" = "Добавить местоположение"; "Add preset" = "Добавить пресет"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "Влияет на всё выше. Когда выключено, тема RyukGram и переопределения поверхностей применяются только если iOS в тёмном режиме — светлый режим остаётся нетронутым."; +"Apply & restart" = "Применить и перезапустить"; +"Background" = "Фон"; +"Behavior" = "Поведение"; "Change location" = "Изменить местоположение"; -"Click the Apply button after this to see the emoji" = "После этого нажмите кнопку Apply, чтобы увидеть эмодзи"; "Clipboard is not an Instagram URL" = "В буфере обмена нет ссылки Instagram"; "Comments hidden" = "Комментарии скрыты"; "Comments shown" = "Комментарии показаны"; "Copied text to clipboard" = "Текст скопирован в буфер обмена"; "Copy" = "Копировать"; -"Copy all" = "Копировать всё"; "Copy bio" = "Копировать био"; -"Copy from profile" = "Копировать из профиля"; "Copy name" = "Копировать имя"; "Could not find cover image" = "Не удалось найти изображение обложки"; "Current: %@" = "Текущее: %@"; +"Dark" = "Тёмная"; "Disable" = "Отключить"; "Download GIF" = "Скачать GIF"; "Dropped pin" = "Установленная метка"; +"Emoji" = "Эмодзи"; "Enable" = "Включить"; "Enable Location Services for Instagram in Settings to use your current location." = "Включите службы геолокации для Instagram в настройках, чтобы использовать текущее местоположение."; -"Enter Emoji Text" = "Введите текст эмодзи"; +"Enter emoji" = "Введите эмодзи"; "Fake location" = "Поддельное местоположение"; +"Force theme" = "Принудительная тема"; +"Keyboard theme" = "Тема клавиатуры"; +"Light" = "Светлая"; "Location access denied" = "Доступ к геолокации запрещён"; "Location Services off" = "Службы геолокации выключены"; "Name" = "Имя"; "Nothing to copy" = "Нечего копировать"; +"Off, Light, Dark, or OLED" = "Выкл., Светлая, Тёмная или OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "Тема OLED для чатов"; "Open Settings" = "Открыть настройки"; +"Optional per-surface overrides. Each one is independent of the theme above." = "Дополнительные переопределения по поверхностям. Каждое независимо от темы выше."; +"Override iOS appearance regardless of system mode" = "Переопределять оформление iOS независимо от режима системы"; +"Override the keyboard appearance when typing" = "Переопределить внешний вид клавиатуры при вводе"; "Pick location" = "Выбрать местоположение"; +"Pure black DM thread + incoming bubbles" = "Чистый чёрный фон чатов и входящих сообщений"; +"Reset theme" = "Сбросить тему"; +"Restart Instagram to apply your theme changes" = "Перезапустите Instagram, чтобы применить изменения темы"; "Save" = "Сохранить"; "Save preset" = "Сохранить пресет"; "Saved locations" = "Сохранённые местоположения"; "Select color" = "Выбрать цвет"; "Set location" = "Установить местоположение"; -"Settings…" = "Настройки…"; -"Turn Location Services on in Settings → Privacy to use your current location." = "Включите службы геолокации в Настройках → Конфиденциальность, чтобы использовать текущее местоположение."; -"Type emoji..." = "Введите эмодзи..."; - +"The theme RyukGram applies to Instagram." = "Тема, которую RyukGram применяет к Instagram."; "Theme" = "Тема"; -"Appearance" = "Оформление"; -"Keyboard" = "Клавиатура"; -"Force dark mode" = "Принудительная тёмная тема"; -"Keep Instagram in dark appearance regardless of iOS system setting" = "Оставлять Instagram в тёмном оформлении независимо от настроек iOS"; -"Full OLED" = "Полный OLED"; -"Replace Instagram's dark grays with pure black across the entire app" = "Заменить тёмно-серые тона Instagram на чистый чёрный по всему приложению"; -"OLED chat theme" = "Тема OLED для чатов"; -"Pure black DM thread background and incoming message bubbles" = "Чистый чёрный фон в переписках и входящих сообщениях"; -"Keyboard theme" = "Тема клавиатуры"; -"Override the keyboard appearance when typing inside Instagram" = "Переопределить внешний вид клавиатуры при вводе в Instagram"; -"Dark uses the system dark keyboard. OLED forces the keyboard backdrop to pure black." = "Тёмный использует системную тёмную клавиатуру. OLED принудительно делает фон клавиатуры чисто чёрным."; -"Dark" = "Тёмный"; -"OLED" = "OLED"; -"Apply & restart" = "Применить и перезапустить"; -"Restart Instagram to apply your theme changes" = "Перезапустите Instagram, чтобы применить изменения темы"; -"Theme changes only take effect after an app restart. Tap Apply below when you're done choosing." = "Изменения темы вступают в силу только после перезапуска приложения. Нажмите Применить ниже, когда закончите выбор."; +"Turn every theme option off and restart" = "Отключить все параметры темы и перезапустить"; +"Turn Location Services on in Settings → Privacy to use your current location." = "Включите службы геолокации в Настройках → Конфиденциальность, чтобы использовать текущее местоположение."; +"Type an emoji to use as the note bubble icon." = "Введите эмодзи для использования в качестве значка пузыря заметки."; +"View profile picture" = "Посмотреть фото профиля"; ////////////////////////////////////////////////////////////////////////////// // PROFILE ANALYZER // -// Settings → General → Profile Analyzer // +// Settings → Profile Analyzer // ////////////////////////////////////////////////////////////////////////////// +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu аккаунт(ов)? Обработаны будут первые %ld, чтобы не упереться в лимиты."; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu аккаунт(ов)? Запускается последовательно с небольшой паузой между каждым."; +"%@ followers · %@ following" = "%@ подписчиков · %@ подписок"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "%d д назад"; +"%dh ago" = "%d ч назад"; +"%dm ago" = "%d мин назад"; +"%lu accounts followed" = "Подписались на %lu"; +"%lu accounts unfollowed" = "Отписались от %lu"; "%lu followers · %lu following" = "%lu подписчиков · %lu подписок"; "%lu of %lu" = "%lu из %lu"; +"%lu saved · comparing against %@" = "%lu сохранено · сравнение с %@"; +"(empty)" = "(пусто)"; +"(no analyzer data)" = "(нет данных анализатора)"; +"a saved snapshot" = "сохранённый снимок"; +"About Profile Analyzer" = "О разделе «Анализ профиля»"; +"All preferences (%lu)" = "Все настройки (%lu)"; "Analysis complete" = "Анализ завершён"; "Analysis failed" = "Ошибка анализа"; "Another analysis is already running" = "Другой анализ уже выполняется"; "Available after your next scan" = "Доступно после следующего анализа"; -"Cancelled" = "Отменено"; +"Batch follow" = "Массовая подписка"; +"Batch follow finished" = "Массовая подписка завершена"; +"Batch unfollow" = "Массовая отписка"; +"Batch unfollow finished" = "Массовая отписка завершена"; +"Categories" = "Категории"; +"Clear visited profiles" = "Очистить просмотренные профили"; +"Compare next scan against" = "Сравнить следующее сканирование с"; +"Comparing against %@" = "Сравнение с %@"; +"Continue" = "Продолжить"; "Couldn't fetch profile information" = "Не удалось получить информацию о профиле"; +"Delete %lu snapshots? This can't be undone." = "Удалить %lu снимков? Это нельзя отменить."; +"Delete (%lu)" = "Удалить (%lu)"; +"Delete snapshots" = "Удалить снимки"; +"Delete this snapshot? This can't be undone." = "Удалить этот снимок? Это нельзя отменить."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "Каждое сканирование сохраняет полную копию ваших подписчиков и подписок, чтобы потом можно было сравнить. Все данные остаются на этом устройстве."; +"Export" = "Экспорт"; "Fetching followers (%lu/%ld)…" = "Загрузка подписчиков (%lu/%ld)…"; "Fetching following (%lu/%ld)…" = "Загрузка подписок (%lu/%ld)…"; "Fetching profile info…" = "Загрузка информации профиля…"; -"Categories" = "Категории"; +"File is not a valid RyukGram backup." = "Файл не является корректным экспортом RyukGram."; +"Filter" = "Фильтр"; +"Filter · %lu" = "Фильтр · %lu"; "First scan: %@" = "Первый анализ: %@"; +"First scan: we collect your followers and following lists and save them locally." = "Первый анализ: собираем ваши списки подписчиков и подписок и сохраняем их локально."; +"Follow %lu" = "Подписаться на %lu"; "Follower count exceeds %ld — analysis disabled to avoid rate limits." = "Число подписчиков больше %ld — анализ отключён, чтобы не упереться в лимиты API."; +"Followers" = "Подписчики"; +"Following… %lu / %lu" = "Подписка… %lu / %lu"; "Gained since last scan" = "Появились с последнего анализа"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Внимание: функция в бете и использует приватный API Instagram. Запуск подряд или сразу после активных подписок/отписок может привести к временному лимиту. Используйте с умеренностью и на свой риск."; +"Import complete" = "Импорт завершён"; +"Include" = "Включить"; +"Keep newest" = "Хранить новейшие"; +"Keep newest snapshots" = "Хранить новейшие снимки"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Большие аккаунты заблокированы: анализ отключён при количестве подписчиков больше 13 000, чтобы Instagram не ограничил всё приложение."; "Last scan: %@" = "Последний анализ: %@"; +"Logs every profile you open. Stays on-device." = "Записывает каждый открываемый профиль. Хранится только на устройстве."; "Lost followers" = "Потерянные подписчики"; +"Most visited" = "Самые посещаемые"; "Mutual followers" = "Взаимные подписчики"; "Name: %@ → %@" = "Имя: %@ → %@"; "New followers" = "Новые подписчики"; -"No results" = "Нет результатов"; "No active Instagram session found" = "Активная сессия Instagram не найдена"; +"No results" = "Нет результатов"; "No scan yet" = "Анализа ещё нет"; "Not following you back" = "Не подписаны на вас в ответ"; -"OK" = "OK"; +"Not verified only" = "Только неверифицированные"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "Ничего не загружается — все данные остаются на этом устройстве и могут быть удалены по иконке корзины."; +"Nothing was applied." = "Ничего не применено."; +"OK" = "ОК"; +"Older snapshots beyond the limit are removed automatically" = "Старые снимки сверх лимита удаляются автоматически"; +"Older snapshots beyond this limit are deleted on the next scan." = "Старые снимки сверх этого лимита удаляются при следующем сканировании."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "Выберите, что удалить. «Снимки» очищает различия сканирований и все записанные снимки; «посещённые профили» стирает историю посещений."; +"Posts" = "Публикации"; +"Preferences" = "Настройки"; +"Previous scan" = "Предыдущее сканирование"; "Private account" = "Закрытый аккаунт"; +"Private only" = "Только закрытые"; "Profile Analyzer" = "Анализ профиля"; +"Profile Analyzer data" = "Данные анализатора профиля"; "Profile picture changed" = "Фото профиля изменено"; "Profile updates" = "Изменения профиля"; -"Removes cached snapshots for this account. You'll lose since-last-scan diffs." = "Удаляет сохранённые снимки для этого аккаунта. Вы потеряете изменения с последнего анализа."; +"Profiles you've opened recently" = "Недавно открытые профили"; +"Raw" = "Сырое"; +"Raw JSON" = "Сырой JSON"; +"Record snapshots" = "Записывать снимки"; +"Recording" = "Запись"; "Request failed" = "Запрос не выполнен"; -"Reset analyzer data?" = "Сбросить данные анализа?"; +"Reset analyzer data" = "Сбросить данные анализатора"; +"Reset complete" = "Сброс завершён"; +"Reset everything" = "Сбросить всё"; +"Reset selected data?" = "Сбросить выбранные данные?"; +"Reset snapshots" = "Сбросить снимки"; +"Rolling — always your last run" = "Скользящее — всегда ваш последний запуск"; "Run analysis" = "Запустить анализ"; "Run your first analysis" = "Запустите первый анализ"; -"Search username or name" = "Поиск по логину или имени"; +"Save a dated entry on every scan" = "Сохранять датированную запись при каждом сканировании"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "Со второго анализа: каждый сравнивается с предыдущим — видно новых/потерянных подписчиков, ваши собственные подписки/отписки и изменения профилей."; +"Settings" = "Настройки"; "Since last scan" = "С последнего анализа"; +"Snapshot" = "Снимок"; +"Snapshots" = "Снимки"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "Снимки позволяют архивировать каждое сканирование и выбирать, с каким из них сравнивать новые. «Отслеживать посещения» записывает каждый открытый профиль, чтобы вы могли просмотреть их здесь."; +"Sort" = "Сортировка"; "Starting…" = "Начинаем…"; "They follow you, you don't follow back" = "Они подписаны на вас, вы — нет"; +"This can't be undone." = "Отменить это будет нельзя."; +"Ticked data will be cleared. Tap a row to see what's stored." = "Выбранные данные будут удалены. Нажмите любую строку, чтобы увидеть, что сохранено."; +"Today" = "Сегодня"; "Too many followers" = "Слишком много подписчиков"; "Too many followers to analyze" = "Слишком много подписчиков для анализа"; +"Track visited profiles" = "Отслеживать просмотренные профили"; +"Tracking" = "Отслеживание"; +"Tracking off — enable below to log visits" = "Отслеживание выключено — включите ниже для записи посещений"; "Unfollow" = "Отписаться"; +"Unfollow %lu" = "Отписаться от %lu"; "Unfollow @%@?" = "Отписаться от @%@?"; "Unfollowed you since last scan" = "Отписались от вас с последнего анализа"; +"Unfollowing… %lu / %lu" = "Отписка… %lu / %lu"; +"Unlimited" = "Без ограничений"; +"Username A → Z" = "Логин А → Я"; +"Username Z → A" = "Логин Я → А"; "Username, name or picture changes" = "Изменения логина, имени или фото"; "Username: @%@ → @%@" = "Логин: @%@ → @%@"; +"Using %@ across %lu snapshots." = "Используется %@ для %lu снимков."; +"Verified only" = "Только верифицированные"; +"Visited" = "Посещено"; +"Visited profiles" = "Просмотренные профили"; "We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "Не запускается, когда подписчиков больше %ld — во избежание лимитов Instagram."; "You both follow each other" = "Вы подписаны друг на друга"; "You don't follow back" = "Вы не подписаны в ответ"; "You follow them, they don't follow back" = "Вы подписаны на них, они — нет"; "You started following" = "Вы подписались"; "You unfollowed" = "Вы отписались"; - -"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu аккаунт(ов)? Обработаны будут первые %ld, чтобы не упереться в лимиты."; -"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu аккаунт(ов)? Запускается последовательно с небольшой паузой между каждым."; -"%lu account(s) · %lu snapshot(s) · tap to inspect" = "%lu аккаунт(ов) · %lu снимок(ов) · нажмите, чтобы просмотреть"; -"%lu accounts followed" = "Подписались на %lu"; -"%lu accounts unfollowed" = "Отписались от %lu"; -"%lu entries across %lu lists · tap to inspect" = "%lu записей в %lu списках · нажмите для просмотра"; -"%lu preferences · tap to inspect" = "%lu настроек · нажмите для просмотра"; -"(empty)" = "(пусто)"; -"(no analyzer data)" = "(нет данных анализатора)"; -"(no lists)" = "(списков нет)"; -"About Profile Analyzer" = "О разделе «Анализ профиля»"; -"All preferences (%lu)" = "Все настройки (%lu)"; -"Apply imported data?" = "Применить импортированные данные?"; -"Batch follow" = "Массовая подписка"; -"Batch follow finished" = "Массовая подписка завершена"; -"Batch unfollow" = "Массовая отписка"; -"Batch unfollow finished" = "Массовая отписка завершена"; -"Continue" = "Продолжить"; -"Current snapshot" = "Текущий снимок"; -"Embed domains" = "Домены встраивания"; -"Excluded lists" = "Списки исключений"; -"Excluded story users" = "Исключённые пользователи историй"; -"Existing values for the selected scope will be replaced. The app may need to restart for some changes to take effect." = "Текущие значения выбранной области будут заменены. Приложение, возможно, нужно будет перезапустить, чтобы изменения вступили в силу."; -"Export" = "Экспорт"; -"File has no importable sections." = "В файле нет секций для импорта."; -"File is not a valid RyukGram export." = "Файл не является корректным экспортом RyukGram."; -"Filter" = "Фильтр"; -"First scan: we collect your followers and following lists and save them locally." = "Первый анализ: собираем ваши списки подписчиков и подписок и сохраняем их локально."; -"Follow %lu" = "Подписаться на %lu"; -"Followers" = "Подписчики"; -"Following… %lu / %lu" = "Подписка… %lu / %lu"; -"Full name" = "Имя"; -"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Внимание: функция в бете и использует приватный API Instagram. Запуск подряд или сразу после активных подписок/отписок может привести к временному лимиту. Используйте с умеренностью и на свой риск."; -"Import complete" = "Импорт завершён"; -"Include" = "Включить"; -"Included story users" = "Включённые пользователи историй"; -"Inspect the full payload" = "Посмотреть полные данные"; -"Keep scan history" = "Сохранять историю анализов"; -"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Большие аккаунты заблокированы: анализ отключён при количестве подписчиков больше 13 000, чтобы Instagram не ограничил всё приложение."; -"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "Ничего не загружается — все данные остаются на этом устройстве и могут быть удалены по иконке корзины."; -"Not verified only" = "Только неверифицированные"; -"Nothing was applied." = "Ничего не применено."; -"Posts" = "Публикации"; -"Preferences" = "Настройки"; -"Previous snapshot" = "Предыдущий снимок"; -"Private only" = "Только закрытые"; -"Profile Analyzer data" = "Данные анализатора профиля"; -"Raw" = "Сырое"; -"Raw JSON" = "Сырой JSON"; -"Reset analyzer data" = "Сбросить данные анализатора"; -"Reset complete" = "Сброс завершён"; -"Reset selected data?" = "Сбросить выбранные данные?"; -"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "Со второго анализа: каждый сравнивается с предыдущим — видно новых/потерянных подписчиков, ваши собственные подписки/отписки и изменения профилей."; -"Select all" = "Выбрать всё"; -"Selected data will be cleared. Tap any row to see what's stored." = "Выбранные данные будут удалены. Нажмите любую строку, чтобы увидеть, что сохранено."; -"Settings" = "Настройки"; -"Sort" = "Сортировка"; -"This can't be undone." = "Отменить это будет нельзя."; -"Tick what to apply. Tap any row to inspect. Sections not in the file are disabled." = "Отметьте, что применить. Нажмите строку, чтобы просмотреть. Секции, которых нет в файле, отключены."; -"Tick what to include. Tap any row to inspect its contents." = "Отметьте, что включить. Нажмите строку, чтобы увидеть её содержимое."; -"Unfollow %lu" = "Отписаться от %lu"; -"Unfollowing… %lu / %lu" = "Отписка… %lu / %lu"; -"Username A → Z" = "Логин А → Я"; -"Username Z → A" = "Логин Я → А"; -"Verified only" = "Только верифицированные"; -"When on, scans compare against your first scan so new/lost followers and profile updates don't disappear between scans." = "Когда включено, каждый анализ сравнивается с первым — новые/потерянные подписчики и изменения профилей не теряются между анализами."; +"your previous scan" = "ваше предыдущее сканирование"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "«Предыдущее сканирование» всегда сравнивает с вашим последним запуском. Выберите сохранённый снимок, чтобы сравнивать с фиксированным моментом времени."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ Размер растёт — снизьте лимит или удалите старые снимки, чтобы освободить место."; ////////////////////////////////////////////////////////////////////////////// // SETTINGS VIEWS & DIALOGS // // Excluded-lists managers, backup/restore flows, in-picker labels. // ////////////////////////////////////////////////////////////////////////////// +"Absolute format" = "Абсолютный формат"; "Add chat" = "Добавить чат"; "Add custom domain" = "Добавить свой домен"; -"Add preset…" = "Добавить пресет…"; "Add to list?" = "Добавить в список?"; "Add user" = "Добавить пользователя"; "Apply" = "Применить"; "Apply to" = "Применить к"; "Chats" = "Чаты"; +"Colored" = "Цветной"; "Could not read file." = "Не удалось прочитать файл."; "Could not resolve user ID" = "Не удалось определить ID пользователя"; -"Could not write temporary file." = "Не удалось записать временный файл."; "Current location" = "Текущее местоположение"; "Custom" = "Свои"; -"Date Format" = "Формат даты"; "Delete" = "Удалить"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "Каждая поверхность IG использует свой форматтер NSDate. Включите те, к которым нужно применить этот формат."; "Enable fake location" = "Включить поддельное местоположение"; -"Enter username" = "Введите имя пользователя"; -"Enter username of the DM thread" = "Введите имя пользователя диалога DM"; "Excluded chats" = "Исключённые чаты"; "Excluded users" = "Исключённые пользователи"; "Follow default" = "Следовать значению по умолчанию"; "Force OFF (allow unsends)" = "Принудительно ВЫКЛ. (разрешить отзыв)"; "Force ON (preserve unsends)" = "Принудительно ВКЛ. (сохранять отозванные)"; -"Format" = "Формат"; -"Import failed" = "Ошибка импорта"; +"Include seconds when the format already shows time." = "Включать секунды, когда формат уже показывает время."; "Included chats" = "Включённые чаты"; "Included users" = "Включённые пользователи"; "KD: default" = "KD: по умолчанию"; @@ -1040,41 +1583,38 @@ "Keep-deleted override" = "Переопределение keep-deleted"; "Name (A–Z)" = "Имя (А–Я)"; "No DM thread found with @%@" = "Диалог DM с @%@ не найден"; -"Off" = "Выкл."; "Presets" = "Пресеты"; "Recently added" = "Недавно добавленные"; +"Relative time" = "Относительное время"; +"Relative within" = "Относительно в пределах"; "Remove from list" = "Убрать из списка"; -"Remove Selected" = "Удалить выбранное"; "Reset" = "Сбросить"; -"Saved presets are reusable. Tap a preset to make it the active location." = "Сохранённые пресеты можно использовать повторно. Нажмите на пресет, чтобы сделать его активным местоположением."; "Search" = "Поиск"; "Search address or place" = "Искать адрес или место"; "Search by name or username" = "Поиск по имени или имени пользователя"; "Search by username or name" = "Поиск по имени пользователя или имени"; -"Select" = "Выбрать"; "Select location on map" = "Выбрать местоположение на карте"; "Set current location" = "Установить текущее местоположение"; "Set keep-deleted override" = "Задать переопределение keep-deleted"; -"Settings exported" = "Настройки экспортированы"; "Show map button" = "Показывать кнопку карты"; +"Show relative time for dates younger than this many days. 0 disables it." = "Показывать относительное время для дат младше указанного числа дней. 0 отключает."; "Show seconds" = "Показывать секунды"; "Sort by" = "Сортировать по"; -"Story users" = "Пользователи историй"; -"Toggle each NSDate formatter IG uses. Different surfaces (feed, comments, stories, DMs) go through different methods — enable the ones you want the custom format applied to." = "Переключайте каждый форматтер NSDate, который использует IG. Разные разделы (лента, комментарии, истории, DM) проходят через разные методы — включите те, к которым хотите применить свой формат."; +"Thread" = "Тред"; +"Time" = "Время"; "Use this location" = "Использовать это местоположение"; "User '%@' not found" = "Пользователь '%@' не найден"; "Username (A–Z)" = "Пользователь (А–Я)"; -"When on, all CoreLocation requests inside Instagram return the location below. Toggle the map button to show or hide the quick toggle on the Friends Map view." = "Когда включено, все запросы CoreLocation внутри Instagram возвращают местоположение ниже. Переключите кнопку карты, чтобы показать или скрыть быстрый переключатель на экране Friends Map."; +"Within %ld days" = "В пределах %ld дней"; +"Within 1 day" = "В пределах 1 дня"; ////////////////////////////////////////////////////////////////////////////// // REELS (FEATURES) // // Strings from Reels. // ////////////////////////////////////////////////////////////////////////////// -"Copied!" = "Скопировано!"; "No password found" = "Пароль не найден"; "No text field found" = "Текстовое поле не найдено"; -"Password" = "Пароль"; "Refresh Reels?" = "Обновить рилсы?"; ////////////////////////////////////////////////////////////////////////////// @@ -1082,23 +1622,42 @@ // Strings from Profile. // ////////////////////////////////////////////////////////////////////////////// +"%lu accounts" = "%lu аккаунтов"; +"%lu loaded" = "%lu загружено"; +"%lu loaded · all loaded" = "%lu загружено · все загружены"; "Doesn't follow you" = "Не подписан на вас"; +"Everyone is already loaded." = "Все уже загружены."; +"Filter & sort" = "Фильтр и сортировка"; +"Follows me" = "Подписан на меня"; +"Follows me first" = "Сначала подписанные на меня"; "Follows you" = "Подписан на вас"; +"Hides everyone who doesn't match all picked filters." = "Скрывает всех, кто не соответствует всем выбранным фильтрам."; +"Jump to bottom" = "Перейти вниз"; +"Jump to top" = "Перейти вверх"; +"List" = "Список"; +"List fully loaded" = "Список полностью загружен"; +"Load more" = "Загрузить ещё"; +"Loaded more" = "Загружено ещё"; +"Mutuals" = "Взаимные"; +"Mutuals first" = "Сначала взаимные"; "Note copied" = "Заметка скопирована"; - -////////////////////////////////////////////////////////////////////////////// -// CONFIRM DIALOGS (IN-FEATURE) // -// Strings from Confirm dialogs. // -////////////////////////////////////////////////////////////////////////////// - -"Unfollow?" = "Отписаться?"; +"People I follow" = "Мои подписки"; +"People I follow first" = "Сначала мои подписки"; +"Reverse order" = "Обратный порядок"; +"Show only" = "Показывать только"; +"Verified" = "Подтверждённые"; +"Verified first" = "Сначала подтверждённые"; ////////////////////////////////////////////////////////////////////////////// // MISC // // Anything that didn't fit a named section. Usually short labels. // ////////////////////////////////////////////////////////////////////////////// +"%@ - BETA" = "%@ — BETA"; +"(unset)" = "(не задано)"; "720p • progressive • fastest" = "720p • прогрессивный • самый быстрый"; +"Add language" = "Добавить язык"; +"Album name" = "Название альбома"; "Are you sure?" = "Вы уверены?"; "Bundle" = "Пакет"; "Copy audio URL" = "Копировать URL аудио"; @@ -1106,21 +1665,41 @@ "Copy video URL" = "Копировать URL видео"; "Could not access reel media" = "Не удалось получить доступ к медиа рилса"; "Could not access reel photo" = "Не удалось получить доступ к фото рилса"; -"Could not extract photo url from post" = "Не удалось извлечь URL фото из поста"; -"Could not extract photo url from reel" = "Не удалось извлечь URL фото из рилса"; -"Could not extract photo url from story" = "Не удалось извлечь URL фото из истории"; -"Could not extract video url from post" = "Не удалось извлечь URL видео из поста"; -"Could not extract video url from reel" = "Не удалось извлечь URL видео из рилса"; -"Could not extract video url from story" = "Не удалось извлечь URL видео из истории"; +"Could not write file." = "Не удалось записать файл."; +"Download all and share?" = "Скачать всё и поделиться?"; "Download Quality" = "Качество загрузки"; -"Extras" = "Extras"; +"Downloading %d%%" = "Скачивание %d%%"; +"e.g. 1000000" = "напр. 1000000"; +"Localization file not found" = "Файл локализации не найден"; +"Enter the language code (e.g. fr, de, ja)" = "Введите код языка (например, fr, de, ja)"; +"Error" = "Ошибка"; +"Extras" = "Дополнительно"; "FFmpegKit Debug" = "Отладка FFmpegKit"; +"File is empty or not a valid .strings file." = "Файл пуст или не является допустимым файлом .strings."; +"KD: OFF" = "KD: ВЫКЛ."; +"Keep-deleted: OFF" = " • Хранить удалённые: ВЫКЛ."; +"Keep-deleted: ON" = " • Хранить удалённые: ВКЛ."; "Later" = "Позже"; +"Loading" = "Загрузка"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "Название альбома в «Фото», куда сохраняет RyukGram. Оставьте пустым, чтобы вернуть значение по умолчанию."; +"Next" = "Далее"; +"No results found." = "Ничего не найдено."; "No!" = "Нет!"; -"OK" = "ОК"; +"Pick a language to update, or add a new one" = "Выберите язык для обновления или добавьте новый"; +"Preset" = "Пресет"; "Restart" = "Перезапустить"; +"Restart now" = "Перезапустить сейчас"; "Restart required" = "Требуется перезапуск"; -"username" = "имя пользователя"; +"Saved preset \"%@\"" = "Пресет \"%@\" сохранён"; +"selected" = "выбрано"; +"Shared icon, or override per button" = "Общий значок или переопределение по кнопкам"; +"Speed" = "Скорость"; +"Unset" = "Не задано"; +"Update localization" = "Обновить локализацию"; +"Updated %@ (%ld keys). Restart to apply." = "Обновлено %@ (%ld ключей). Перезапустите для применения."; +"Use default" = "Использовать по умолчанию"; +"Username or PK" = "Имя пользователя или PK"; +"Username or raw user PK" = "Имя пользователя или необработанный PK"; "Yes" = "Да"; "You must restart the app to apply this change" = "Чтобы применить это изменение, нужно перезапустить приложение"; @@ -1129,15 +1708,21 @@ // Strings from the About / Credits footer of Settings. // ////////////////////////////////////////////////////////////////////////////// -"%@ — GitHub & Telegram" = "%@ — GitHub и Telegram"; +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub, Telegram, поддержать"; "About" = "О программе"; "Arabic translation" = "Арабский перевод"; -"Chinese (Traditional) translation" = "Китайский (традиционный) перевод"; +"Chinese (Traditional and Simplified) translation" = "Китайский перевод (традиционный и упрощённый)"; "Credits" = "Благодарности"; "Developers" = "Разработчики"; "Donate to SoCuul" = "Поддержать SoCuul"; "installed" = "установлено"; "Korean translation" = "Корейский перевод"; +"Portuguese (Brazil) translation" = "Перевод на португальский (Бразилия)"; +"Turkish translation" = "Турецкий перевод"; +"Vietnamese translation" = "Вьетнамский перевод"; +"French translation" = "Французский перевод"; +"Code contributions" = "Вклад в код"; +"Following feed mode (from InstaSane)" = "Режим ленты Подписки (из InstaSane)"; "latest" = "последняя"; "Links" = "Ссылки"; "No releases" = "Нет выпусков"; @@ -1148,13 +1733,24 @@ "Russian translation" = "Русский перевод"; "RyukGram developer" = "Разработчик RyukGram"; "Join Telegram channel" = "Присоединиться к Telegram-каналу"; -"View on GitHub" = "Открыть на GitHub"; "Source code" = "Исходный код"; +"View on GitHub" = "Открыть на GitHub"; "Spanish translation" = "Испанский перевод"; -"Support the original developer" = "Поддержать оригинального разработчика"; +"Support the original SCInsta developer" = "Поддержать оригинального разработчика SCInsta"; +"Inspirations" = "Источники вдохновения"; +"Inspirations, contributors, translators" = "Источники вдохновения, контрибьюторы, переводчики"; +"Code and research" = "Код и исследования"; +"Translators" = "Переводчики"; +"Original BHInstagram developer" = "Оригинальный разработчик BHInstagram"; +"OLED theme inspiration" = "Вдохновение OLED-темы"; +"Donate to Ryuk" = "Поддержать Ryuk"; +"Support RyukGram development" = "Поддержать разработку RyukGram"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram — это сильно переработанный форк SCInsta. Поддержка оригинального разработчика приветствуется."; +"Browse changes from previous releases" = "Посмотреть изменения в прошлых версиях"; +"Code inspiration" = "Вдохновение для кода"; +"zxPluginsInject sideload compatibility shim" = "Прослойка совместимости sideload zxPluginsInject"; "Telegram channel" = "Telegram-канал"; "Testing and feature suggestions" = "Тестирование и предложения функций"; -"Tweak settings" = "Настройки твика"; "Version" = "Версия"; "Version, credits, and links" = "Версия, благодарности и ссылки"; "What's new in RyukGram" = "Что нового в RyukGram"; @@ -1165,7 +1761,6 @@ ////////////////////////////////////////////////////////////////////////////// "720p • progressive • silent" = "720p • прогрессивный • без звука"; -"Audio extract failed" = "Не удалось извлечь аудио"; "Audio only" = "Только аудио"; "Audio ready" = "Аудио готово"; "Download video at the highest available quality" = "Скачивать видео в максимально доступном качестве"; @@ -1175,12 +1770,433 @@ "Faster = lower quality" = "Быстрее = ниже качество"; "FFmpeg not available" = "FFmpeg недоступен"; "FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit недоступен. Сайдлоуните IPA или установите файл .deb с _ffmpeg, чтобы включить эту функцию."; -"No audio stream available" = "Аудиопоток недоступен"; "No audio track found" = "Аудиодорожка не найдена"; "Photo" = "Фото"; "Photo quality" = "Качество фото"; -"Raw image (no audio, no video)" = "Исходное изображение (без аудио и видео)"; "silent" = "без звука"; "Use highest resolution available" = "Использовать максимально доступное разрешение"; "Video quality" = "Качество видео"; "Which quality to download" = "Какое качество скачивать"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "'%@' нет в этой сборке FFmpegKit — используется аппаратный h264."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-бит 4:2:0. ~2x медленнее, плавнее градиенты."; +"10-bit colour. Slower, smoother gradients. Software only." = "10-бит цвет. Медленнее, плавнее градиенты. Только программно."; +"1080p30 baseline." = "Базовый 1080p30."; +"4K30 baseline." = "Базовый 4K30."; +"8-bit 4:2:0. Universal default." = "8-бит 4:2:0. Универсальный по умолчанию."; +"8-bit 4:2:2 chroma. Niche playback." = "8-бит 4:2:2 цветность. Нишевое воспроизведение."; +"8-bit 4:2:2 chroma. Software only." = "8-бит 4:2:2 цветность. Только программно."; +"8-bit 4:4:4 chroma. Software only." = "8-бит 4:4:4 цветность. Только программно."; +"8-bit 4:4:4 full chroma. Niche playback." = "8-бит 4:4:4 полная цветность. Нишевое воспроизведение."; +"8-bit. Best for modern devices." = "8-бит. Лучше для современных устройств."; +"Advanced encoding" = "Расширенное кодирование"; +"Advanced encoding settings" = "Настройки расширенного кодирования"; +"Archival quality." = "Архивное качество."; +"Audio bitrate" = "Битрейт аудио"; +"Audio channels" = "Аудиоканалы"; +"Audio codec" = "Аудиокодек"; +"Audio conversion failed" = "Не удалось преобразовать аудио"; +"Audio sample rate" = "Частота дискретизации аудио"; +"Balanced. libx264 default." = "Сбалансированный. По умолчанию для libx264."; +"Best practical quality per bit." = "Лучшее практическое качество на бит."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "Битрейт, каналы и частота дискретизации применяются только при кодеке AAC (перекодирование)."; +"Cartoons / anime." = "Мультфильмы / аниме."; +"Cinematic. Smaller files." = "Кинематографично. Файлы меньше."; +"Codec" = "Кодек"; +"Container" = "Контейнер"; +"Copy (passthrough)" = "Копировать (без перекодирования)"; +"CRF quality" = "Качество CRF"; +"Downloading video…" = "Загрузка видео…"; +"Easier to play back on weak devices." = "Проще воспроизводить на слабых устройствах."; +"Encoder unavailable" = "Кодировщик недоступен"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "Примеры: 8M, 12M, 25M, 4500k. Оставьте пустым для авто."; +"Failed to download video" = "Не удалось загрузить видео"; +"Fast, fixed-bitrate, GPU-accelerated." = "Быстро, фиксированный битрейт, ускорение GPU."; +"Fastest, worst compression." = "Быстрее всего, худшее сжатие."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "Faststart перемещает индекс MP4 в начало, чтобы воспроизведение начиналось до полной буферизации файла. «Удалить метаданные» убирает из файла исходные теги (дата создания, обработчик, кодировщик)."; +"FFmpeg documentation" = "Документация FFmpeg"; +"FFmpeg mux failed" = "Не удалось выполнить мультиплексирование FFmpeg"; +"Frame rate" = "Частота кадров"; +"H.264 level" = "Уровень H.264"; +"H.264 profile" = "Профиль H.264"; +"Hardware (VideoToolbox)" = "Аппаратно (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "Аппаратное (VideoToolbox) поддерживает только yuv420p — '%@' проигнорирован. Переключитесь на программное (libx264), чтобы использовать его."; +"Keep original audio. Fast." = "Сохранить исходное аудио. Быстро."; +"Keep the source frame rate." = "Сохранить исходную частоту кадров."; +"Let the encoder pick." = "Пусть выберет кодировщик."; +"Live-action video." = "Реальное видео."; +"Lossless. Huge files." = "Без потерь. Огромные файлы."; +"Low-latency streaming." = "Стриминг с низкой задержкой."; +"Manual ffmpeg controls in place of Encoding speed." = "Ручное управление ffmpeg вместо скорости кодирования."; +"Marginal gain, huge time cost." = "Незначительный выигрыш, огромные затраты времени."; +"Max resolution" = "Макс. разрешение"; +"Mono" = "Моно"; +"No tuning. Default." = "Без настройки. По умолчанию."; +"None" = "Нет"; +"Pixel format" = "Формат пикселей"; +"Pixel format ignored" = "Формат пикселей проигнорирован"; +"Preserve film grain." = "Сохранить зернистость плёнки."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "Preset и Tune применяются только к программному (libx264). Сочетайте профиль с форматом пикселей: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Несоответствия незаметно понижают формат. Аппаратное всегда использует yuv420p."; +"Re-encode. Use when source is opus or unsupported." = "Перекодировать. Используйте, если источник opus или не поддерживается."; +"Reset advanced encoding" = "Сбросить расширенное кодирование"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "Задание битрейта видео переводит программное кодирование в режим фиксированного битрейта и игнорирует CRF. Оставьте пустым для CRF. Аппаратное использует битрейт."; +"Slideshow-like content." = "Контент типа слайд-шоу."; +"Slower, better compression per bit." = "Медленнее, лучше сжатие на бит."; +"Smaller, visible artefacts." = "Меньше, заметные артефакты."; +"Software (libx264)" = "Программно (libx264)"; +"Standard 8-bit." = "Стандартный 8-бит."; +"Stereo" = "Стерео"; +"Streaming default." = "По умолчанию для стриминга."; +"Strip metadata" = "Удалить метаданные"; +"Top of AAC." = "Максимум для AAC."; +"Tune" = "Настроить"; +"Unknown error" = "Неизвестная ошибка"; +"Very high quality." = "Очень высокое качество."; +"Video bitrate" = "Битрейт видео"; +"Video codec" = "Видеокодек"; +"Visually lossless. RyukGram default." = "Визуально без потерь. По умолчанию для RyukGram."; +"Widest compatibility, no B-frames." = "Самая широкая совместимость, без B-кадров."; +"Worst quality." = "Худшее качество."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "Жесты длительного нажатия"; +"Inserts a button in the profile navigation header" = "Добавляет кнопку в навигационный заголовок профиля"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "Добавляет кнопку действий RyukGram в заголовок профиля с пунктами копирования, просмотра фото, поделиться, сохранить и сведения о профиле. По умолчанию нажатие открывает меню; поведение можно изменить в разделе «Настроить меню»."; +"Configure menu" = "Настроить меню"; +"Reorder, enable/disable, set default tap, show date" = "Изменение порядка, вкл./выкл., действие по умолчанию, показ даты"; +"Reorder, enable/disable, set default tap" = "Изменение порядка, вкл./выкл., действие по умолчанию"; +"RyukGram profile actions" = "Действия профиля RyukGram"; +"Reorder sections" = "Изменить порядок разделов"; +"Drag the ≡ handle to reorder sections." = "Перетаскивайте маркер ≡, чтобы изменить порядок разделов."; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "Перетаскивайте маркер ≡, чтобы изменить порядок. Выключите строку, чтобы скрыть её из меню. Отметьте раздел как подменю, чтобы свернуть его действия за одним пунктом."; +"Show as submenu" = "Показывать как подменю"; +"Collapse this section's actions behind a single entry" = "Свернуть действия этого раздела за один пункт"; +"Configure: %@" = "Настроить: %@"; +"What happens on a single tap. Long-press always opens the full menu." = "Что происходит при одиночном нажатии. Долгое нажатие всегда открывает полное меню."; +"Reset to defaults" = "Сбросить к значениям по умолчанию"; +"This will restore the default sections, order, and toggles for this menu." = "Это восстановит разделы, порядок и переключатели этого меню по умолчанию."; +"Audio & visibility" = "Аудио и видимость"; +"DM disappearing media" = "Исчезающие медиа в DM"; +"Bulk download" = "Массовое скачивание"; +"Feed settings" = "Настройки ленты"; +"Reels settings" = "Настройки рилсов"; +"Profile settings" = "Настройки профиля"; +"Stories settings" = "Настройки историй"; +"Copy ID" = "Копировать ID"; +"Copy Info" = "Копировать сведения"; +"Copy all info" = "Копировать всю информацию"; +"Copy media URL" = "Копировать ссылку на медиа"; +"Copy profile link" = "Копировать ссылку на профиль"; +"Copy username" = "Копировать логин"; +"Download" = "Скачать"; +"Download to Gallery" = "Скачать в Галерею"; +"Download all to Gallery" = "Скачать всё в Галерею"; +"Exclude/include user" = "Исключить/включить пользователя"; +"Mute / unmute audio" = "Включить/выключить звук"; +"Save picture to Gallery" = "Сохранить фото в Галерею"; +"Share picture" = "Поделиться фото"; +"View picture" = "Просмотреть фото"; +"Bio" = "Био"; +"ID" = "ID"; +"Info" = "Сведения"; +"Profile info" = "информация профиля"; +"Profile link" = "Ссылка на профиль"; +"Picture not found" = "Фото не найдено"; +"Private profile" = "Закрытый профиль"; +"Profile unavailable" = "Профиль недоступен"; +"Public profile" = "Открытый профиль"; +"Username" = "Логин"; +"Followers: %@" = "Подписчики: %@"; +"Following: %@" = "Подписки: %@"; +"Copied %@" = "Скопировано: %@"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(неизвестно)"; +"All files deleted" = "Все файлы удалены"; +"Browsing" = "Просмотр"; +"By source" = "По источнику"; +"By type" = "По типу"; +"By user" = "По пользователю"; +"Clear filters" = "Сбросить фильтры"; +"Comment" = "Комментарий"; +"Create" = "Создать"; +"Create & Move" = "Создать и переместить"; +"Delete %@?" = "Удалить %@?"; +"Delete all files" = "Удалить все файлы"; +"Delete all images" = "Удалить все изображения"; +"Delete all videos" = "Удалить все видео"; +"Delete by user" = "Удалить по пользователю"; +"Delete DM media" = "Удалить медиа из DM"; +"Delete feed posts" = "Удалить посты ленты"; +"Delete files" = "Удалить файлы"; +"Delete Folder" = "Удалить папку"; +"Delete from Gallery?" = "Удалить из Галереи?"; +"Delete profile pictures" = "Удалить фото профилей"; +"Delete reels" = "Удалить рилсы"; +"Delete selected" = "Удалить выбранное"; +"Delete Selected Files?" = "Удалить выбранные файлы?"; +"Delete stories" = "Удалить истории"; +"Delete thumbnails" = "Удалить миниатюры"; +"Deleted from Gallery" = "Удалено из Галереи"; +"Deleted selected files" = "Выбранные файлы удалены"; +"Deselect All" = "Снять выделение"; +"DM media deleted" = "Медиа из DM удалены"; +"DMs" = "Сообщения"; +"Each user appears as a folder next to your real folders." = "Каждый пользователь отображается как папка рядом с вашими реальными папками."; +"Each user gets a labelled section in the grid/list." = "Каждый пользователь получает отдельный раздел в сетке/списке."; +"Enable gallery" = "Включить Галерею"; +"Failed" = "Ошибка"; +"Failed to delete" = "Не удалось удалить"; +"Favorite" = "В избранное"; +"Favorite selected" = "В избранное выбранное"; +"Favorites only" = "Только избранное"; +"Feed posts deleted" = "Посты ленты удалены"; +"Files deleted" = "Файлы удалены"; +"Flat list. No grouping." = "Плоский список. Без группировки."; +"Folder name" = "Имя папки"; +"Folders" = "Папки"; +"From RyukGram Gallery" = "Аудио из Галереи RyukGram"; +"Gallery" = "Галерея"; +"Gallery only" = "Только Галерея"; +"Gallery save mode" = "Режим сохранения Галереи"; +"Gallery Settings" = "Настройки Галереи"; +"GIFs" = "GIF"; +"Grid view" = "Сеткой"; +"Group by user" = "Группировать по пользователю"; +"Hold DM tab to open gallery" = "Удерживайте вкладку DM, чтобы открыть галерею"; +"Images" = "Изображения"; +"Images deleted" = "Изображения удалены"; +"Images first" = "Сначала изображения"; +"item" = "файл"; +"items" = "файлов"; +"Largest first" = "Сначала большие"; +"List view" = "Списком"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "Удерживайте кнопку входящих в нижней панели, чтобы открыть галерею RyukGram"; +"Manage" = "Управление"; +"More" = "Ещё"; +"Move selected" = "Переместить выбранное"; +"Move to Folder" = "Переместить в папку"; +"Name A-Z" = "Имя А–Я"; +"Name Z-A" = "Имя Я–А"; +"New Folder" = "Новая папка"; +"New folder…" = "Новая папка…"; +"Newest first" = "Сначала новые"; +"No files in Gallery" = "В Галерее нет файлов"; +"No files to delete" = "Нет файлов для удаления"; +"No matching files" = "Нет подходящих файлов"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "Локальная библиотека медиа, скачанного через RyukGram. Режим сохранения определяет, куда фактически записывает «Скачать в Фото»."; +"Open" = "Открыть"; +"Open Original Post" = "Открыть оригинальный пост"; +"Options" = "Параметры"; +"Other" = "Другое"; +"Photos + Gallery" = "Фото + Галерея"; +"Photos only" = "Только Фото"; +"Profile pictures deleted" = "Фото профилей удалены"; +"Reels deleted" = "Рилсы удалены"; +"Rename" = "Переименовать"; +"Rename Folder" = "Переименовать папку"; +"Root" = "Корень"; +"Save media from the preview screen\nto see it here." = "Сохраняйте медиа с экрана предпросмотра,\nчтобы увидеть их здесь."; +"Saved %lu items to Gallery" = "Сохранено в Галерею: %lu"; +"Saved to Gallery" = "Сохранено в Галерею"; +"Saving to Gallery" = "Сохранение в Галерею…"; +"Search users" = "Поиск пользователей"; +"Sections" = "Разделы"; +"Select All" = "Выбрать все"; +"Share" = "Поделиться"; +"Share selected" = "Поделиться выбранным"; +"Show favorites at top" = "Показывать избранное сверху"; +"Show gallery entries in download menus and unlock the gallery button" = "Показывать пункты Галереи в меню скачивания и разблокировать кнопку Галереи"; +"Smallest first" = "Сначала маленькие"; +"Source" = "Источник"; +"Source user" = "Источник — пользователь"; +"Storage" = "Хранилище"; +"Stories deleted" = "Истории удалены"; +"Story" = "История"; +"The original content may no longer exist." = "Исходный контент может больше не существовать."; +"This folder contains %ld file(s). They will be moved to the parent folder." = "В этой папке файлов: %ld. Они будут перемещены в родительскую папку."; +"This folder is empty." = "Эта папка пуста."; +"This will permanently remove %ld file%@ from the gallery." = "Это безвозвратно удалит из галереи файлов: %ld%@."; +"This will permanently remove %ld file(s)." = "Это безвозвратно удалит файлов: %ld."; +"This will permanently remove this file from the gallery." = "Это безвозвратно удалит этот файл из галереи."; +"Thumb" = "Миниатюра"; +"Thumbnails deleted" = "Миниатюры удалены"; +"to Gallery" = "в Галерею"; +"Total files" = "Всего файлов"; +"Total size" = "Общий размер"; +"Type" = "Тип"; +"Unable to open original post" = "Не удалось открыть исходный пост"; +"Unable to open profile" = "Не удалось открыть профиль"; +"Unfavorite" = "Убрать из избранного"; +"Unknown user" = "Неизвестный пользователь"; +"User files deleted" = "Файлы пользователя удалены"; +"Videos" = "Видео"; +"Videos deleted" = "Видео удалены"; +"Videos first" = "Сначала видео"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "Когда включено, избранное закрепляется над остальными файлами в текущей сортировке и папке."; +"Where 'Download to Photos' actually writes when gallery is on" = "Куда фактически пишет «Скачать в Фото», когда Галерея включена"; +"Yesterday" = "Вчера"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "Кнопка ярлыка на главной"; +"Show the extra button on the home top bar" = "Настройте дополнительную кнопку на верхней панели главной"; +"Auto" = "Авто"; +"Icon" = "Значок"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "Перетащите маркер ≡ для изменения порядка. Отключите строку, чтобы скрыть это направление. При одном включённом действии нажатие выполняет его; при двух и более — открывает меню."; +"Changelog" = "История изменений"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "Добавляет дополнительную кнопку рядом с кнопкой «+» создания публикации на верхней панели."; +"All buttons" = "Все кнопки"; +"Choose icon, reorder actions, and enable menu items" = "Выберите значок, измените порядок действий и включите пункты меню"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "Выберите значок на верхней панели. «Авто» использует значок действия, когда включено только одно действие."; +"Configure button" = "Настроить кнопку"; +"Global Action Icons" = "Глобальные значки действий"; +"Interface" = "Интерфейс"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "Переопределить значок для конкретной кнопки. Кнопки на значении «По умолчанию» используют общий значок выше."; +"Per button" = "По кнопкам"; +"Show home shortcut button" = "Показывать кнопку-ярлык на главной"; +"Tab bar" = "Панель вкладок"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "Универсальные уведомления. Выберите стиль, положение, маршрутизацию по действиям (плашка / IG / выкл)."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "Уведомления"; +"Appearance" = "Внешний вид"; +"Routing" = "Маршрутизация"; +"Style" = "Стиль"; +"Position" = "Положение"; +"Stack size" = "Размер стопки"; +"Duration" = "Длительность"; +"Default surface" = "Поверхность по умолчанию"; +"Enable notifications" = "Включить уведомления"; +"Haptic feedback" = "Тактильная отдача"; +"Preview pill" = "Превью плашки"; +"Preview download pill" = "Превью плашки загрузки"; +"Preview loading pill" = "Превью плашки загрузки"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "Главный выключатель. Когда выключен, никакие уведомления не показываются."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "Универсальные уведомления в приложении. Все сообщения RyukGram (загрузки, копирование, ошибки, успехи) проходят здесь."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal: плоское размытие. Colorful: тонированная. Glow: цветной ореол. Island: капсула Dynamic Island."; +"Top slides down, bottom slides up." = "Сверху сдвигается вниз, снизу — вверх."; +"How many pills can show at once before queueing." = "Сколько плашек может показываться одновременно до очереди."; +"Multiplies how long toasts stay on screen." = "Умножает время показа уведомлений."; +"Vibration on success/error pills." = "Вибрация для плашек успеха/ошибки."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "Для действий-уведомлений выбирайте между нашей плашкой и стандартным уведомлением IG. Переопределения по действиям ниже."; +"What to use when an action doesn't have its own override." = "Что использовать, когда у действия нет собственного переопределения."; +"Tap to cycle: info → success → warning → error" = "Нажмите для переключения: инфо → успех → предупреждение → ошибка"; +"Tap to cycle between success and failure" = "Нажмите для переключения между успехом и неудачей"; +"Progress UI — pill or off only." = "Интерфейс прогресса — только плашка или выкл."; +"Minimal" = "Минимальный"; +"Colorful" = "Цветной"; +"Glow" = "Свечение"; +"Island" = "Островок"; +"Top" = "Сверху"; +"Bottom" = "Снизу"; +"Custom pill" = "Кастомная плашка"; +"IG native toast" = "Стандартное уведомление IG"; +"Short" = "Короткий"; +"Normal" = "Обычный"; +"Long" = "Длинный"; +"Very long" = "Очень длинный"; +"Downloads & saving" = "Загрузки и сохранение"; +"Copy to clipboard" = "Копирование в буфер"; +"Read receipts & seen" = "Отметки о прочтении"; +"Block, exclude & pin" = "Блок, исключения и закрепление"; +"Stories & messages" = "Истории и сообщения"; +"Voice & audio" = "Голос и аудио"; +"Errors" = "Ошибки"; +"Download progress" = "Прогресс загрузки"; +"Bulk download progress" = "Прогресс массовой загрузки"; +"Copied post / reel URL" = "URL поста / рилса скопирован"; +"Copied comment text" = "Текст комментария скопирован"; +"Copied note text" = "Текст заметки скопирован"; +"Copied profile info" = "Информация профиля скопирована"; +"Copied audio URL" = "URL аудио скопирован"; +"Copied quality picker URL" = "URL выбора качества скопирован"; +"Copied unlocked password" = "Разблокированный пароль скопирован"; +"Copied description text" = "Текст описания скопирован"; +"DM seen / read receipts" = "Прочтение / просмотры в DM"; +"Story seen / read receipts" = "Прочтение / просмотры историй"; +"User blocked / unblocked" = "Пользователь заблокирован / разблокирован"; +"Chat added / removed from exclude" = "Чат добавлен / удалён из исключений"; +"Story user added / removed from exclude" = "Пользователь историй добавлен / удалён из исключений"; +"Share-sheet recipient pinned" = "Получатель в листе поделиться закреплён"; +"Unsent message detected" = "Обнаружено отозванное сообщение"; +"Live comments toggled" = "Комментарии в эфире переключены"; +"Custom GIF sent" = "Кастомный GIF отправлен"; +"Voice DM sent" = "Голосовое DM отправлено"; +"Audio extraction status" = "Статус извлечения аудио"; +"Profile Analyzer complete" = "Анализ профиля завершён"; +"Media extraction failed" = "Не удалось извлечь медиа"; +"Permission denied" = "Доступ запрещён"; +"Validation error" = "Ошибка валидации"; +"Network / API error" = "Ошибка сети / API"; +"Action error fallback" = "Резервная ошибка действия"; +"Invalid clipboard link" = "Неверная ссылка из буфера"; +"Experimental flag warning" = "Предупреждение об экспериментальном флаге"; +"Settings action confirmed" = "Действие в настройках подтверждено"; +"Cache clearing progress" = "Очистка кэша"; +"Other / uncategorized" = "Прочее / без категории"; +"Comment copied" = "Комментарий скопирован"; +"FFmpeg log copied" = "Лог FFmpeg скопирован"; +"GIF inserted" = "GIF вставлен"; +"Story marked as seen" = "История отмечена прочитанной"; +"Saved" = "Сохранено"; +"Tap to retry" = "Нажмите, чтобы повторить"; +"Looks great" = "Выглядит отлично"; +"Something broke" = "Что-то сломалось"; +"Just so you know" = "К сведению"; +"Success preview" = "Превью успеха"; +"Error preview" = "Превью ошибки"; +"Warning preview" = "Превью предупреждения"; +"Info preview" = "Превью информации"; +"Preview download…" = "Превью загрузки…"; +"Colors" = "Цвета"; +"+ Add new language" = "+ Добавить новый язык"; +"Each chat can override this in the list" = "Каждый чат может переопределить это в списке"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "Если включено, запросы Instagram о местоположении возвращают выбранное фиктивное местоположение. Кнопка карты добавляет быстрый ярлык в Карте друзей."; +"Tap a preset to make it active. Swipe left to delete." = "Нажмите пресет, чтобы активировать. Смахните влево для удаления."; +"Override Instagram location reads." = "Переопределяет чтение местоположения Instagram."; +"Show the quick button in Friends Map." = "Показывать быструю кнопку в Карте друзей."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "Выберите формат абсолютных дат. “По умолчанию” оставляет формат IG без изменений."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "Даты младше порога отображаются как относительное время. Более старые даты используют абсолютный формат. «Объединить с датой» показывает оба — «5 янв 2026 (2ч)» или «2ч – 5 янв 2026»."; +"Compact style" = "Компактный стиль"; +"Example: “1h” instead of “1 hour ago”" = "Пример: “1h” вместо “1 час назад”"; +"Example: “Jan 5, 2026 (2h)”" = "Пример: “Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "Аудио-API iOS не смогли обработать этот файл%@%@\n\nМожно попробовать отправить его в Instagram как есть или открыть запрос в поддержку."; +"Combine with date" = "Объединить с датой"; +"Absolute then relative" = "Сначала абсолютное, затем относительное"; +"Relative – absolute" = "Относительное – абсолютное"; +"Relative when young, absolute when older." = "Относительное для недавних, абсолютное для старых."; +"Example: “2h – Jan 5, 2026”" = "Пример: «2ч – 5 янв 2026»"; diff --git a/src/Localization/Resources/tr.lproj/Localizable.strings b/src/Localization/Resources/tr.lproj/Localizable.strings new file mode 100644 index 0000000..3777374 --- /dev/null +++ b/src/Localization/Resources/tr.lproj/Localizable.strings @@ -0,0 +1,2202 @@ +/* + * RyukGram — Localizable.strings (English source of truth) + * ------------------------------------------------------------------------- + * + * Every user-facing string in RyukGram goes through the macro + * SCILocalized(@"English text here") + * in the Objective-C source. The argument is BOTH the lookup key and the + * English fallback, so if a translation is missing the user still sees + * clean English — nothing ever breaks. + * + * + * HOW TO ADD A NEW LANGUAGE + * ------------------------------------------------------------------------- + * + * 1. Copy this file into a new folder named after the language code: + * src/Localization/Resources/.lproj/Localizable.strings + * e.g. ar.lproj (Arabic) + * es.lproj (Spanish) + * fr.lproj (French) + * 2. Translate the RIGHT-hand side of every `"key" = "value";` line. + * Do NOT touch the left-hand side — that is the lookup key and must + * stay identical to the English version, otherwise the app will never + * find your translation. + * 3. Keep every format specifier (%@, %lu, %d, %lld, %1$@, …) exactly + * as-is, in the same order. If you need to reorder them, switch to + * positional specifiers (%1$@ %2$lu). + * 4. Keep embedded quotes escaped with a backslash: \" — and newlines + * as \n. + * 5. Open a pull request at https://github.com/faroukbmiled/RyukGram/pulls + * so we can ship the language in the next release. + * + * + * HOW TO ADD A NEW STRING IN CODE + * ------------------------------------------------------------------------- + * + * Just wrap the English text with SCILocalized(...) in the .m / .x / .xm + * file — the helper resolves to the English text automatically when no + * translation exists. Then add the same English text as BOTH the key and + * the value inside the matching section below, e.g. + * + * "Download all items" = "Download all items"; + * + * Translators copy that line into their own .lproj and translate only the + * right-hand side. + * + * + * FILE FORMAT NOTES + * ------------------------------------------------------------------------- + * + * - UTF-8, LF line endings. + * - Slash-star block comments and double-slash line comments both work. + * - DO NOT nest one slash-star block comment inside another — the + * parser will close the outer block at the first inner close marker + * and every lookup in the file will silently fail. + * - Keys and values are both quoted; every line ends with a semicolon. + */ + +////////////////////////////////////////////////////////////////////////////// +// CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // +// Shown on the root Settings screen: title, search bar, the globe language // +// menu, and the one-time welcome alert. These use dotted keys (settings.*) // +// and are hand-authored rather than extracted from English source. // +////////////////////////////////////////////////////////////////////////////// + +"settings.firstrun.message" = "İleride RyukGram ayarlarını yeniden açmak için profil sayfanızın sağ üstündeki üç çizgiye basılı tutun."; +"settings.firstrun.ok" = "Anladım!"; +"settings.firstrun.title" = "RyukGram Ayar Bilgisi"; +"settings.language.english_only" = "RyukGram şu anda yalnızca İngilizce ile geliyor. Diğer diller hazır ve çeviri bekliyor — README'deki kısa rehberi izleyerek kendi dilinize çevirmeye yardımcı olun."; +"settings.language.help_translate" = "Çeviriye katkı sağla"; +"settings.language.system" = "Sistem varsayılanı"; +"settings.language.title" = "Dil"; +"settings.language.restart.message" = "Ayarlar güncellendi. Uygulamanın diğer yerlerindeki menülerin, düğmelerin ve bildirimlerin de yeni dili kullanması için Instagram'ı yeniden başlatın."; +"settings.language.restart.title" = "Her yerde uygulamak için yeniden başlat"; +"settings.language.available" = "Mevcut"; +"settings.results.many" = "%lu sonuç"; +"settings.results.one" = "%lu sonuç"; +"settings.search.placeholder" = "Ayarlarda ara"; +"settings.title" = "RyukGram Ayarları"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL // +// Settings → General tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button icon" = "Eylem düğmesi simgesi"; +"Adds a copy option to the comment long-press menu" = "Yorum uzun basma menüsüne kopyalama seçeneği ekler"; +"Adds a download button next to share/save on the reels audio page" = "Reels ses sayfasında paylaş/kaydet yanına indirme düğmesi ekler"; +"Adds download, copy and expand options to GIF and image comments" = "GIF ve görsel yorumlara indirme, kopyalama ve büyütme seçenekleri ekler"; +"Allow video in photo sticker" = "Foto etiketinde videoya izin ver"; +"Alternate icons are not supported" = "Alternatif simgeler desteklenmiyor"; +"Anonymous live viewing" = "Canlıyı anonim izleme"; +"App Icon" = "Uygulama Simgesi"; +"Audio page" = "Ses sayfası"; +"Auto-reveals sensitive media" = "Hassas medyayı otomatik gösterir"; +"Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "Yayıncının sizi görmemesi için izleyici sayısı sinyalini engeller — siz de izleyici sayısını göremezsiniz"; +"Browser" = "Tarayıcı"; +"Change the app icon from the bundled icons" = "Uygulama simgesini paketlenmiş simgelerden değiştir"; +"Choose Icon" = "Simge Seç"; +"Choose which surfaces hide ads" = "Hangi yüzeylerin reklamları gizleyeceğini seçin"; +"Comments" = "Yorumlar"; +"Commerce carousels in comments and shoppable CTAs on reels" = "Yorumlardaki ticaret galerileri ve reels'lerdeki alışveriş CTA'ları"; +"Copy comment text" = "Yorum metnini kopyala"; +"Copy description" = "Açıklamayı kopyala"; +"Copy description text fields by long-pressing on them" = "Açıklama metin alanlarını üzerlerine uzun basarak kopyalayın"; +"Custom music sticker color" = "Özel müzik etiketi rengi"; +"Date format" = "Tarih biçimi"; +"Disable app haptics" = "Uygulama titreşimini kapat"; +"Disables haptics/vibrations within the app" = "Uygulama içindeki dokunsal geri bildirimleri/titreşimleri kapatır"; +"Do not save recent searches" = "Son aramaları kaydetme"; +"Download GIF & image comments" = "GIF ve görsel yorumlarını indir"; +"Download image" = "Görseli indir"; +"Embed domain" = "Gömme alan adı"; +"Embed domain: %@" = "Gömme alan adı: %@"; +"Enable liquid glass buttons" = "Liquid glass butonlarını etkinleştir"; +"Enable liquid glass surfaces" = "Liquid glass yüzeylerini etkinleştir"; +"Enable teen app icons" = "Genç uygulama simgelerini etkinleştir"; +"Enables experimental liquid glass buttons" = "Deneysel liquid glass butonlarını etkinleştirir"; +"Enables liquid glass tab bar, floating navigation, and other UI elements" = "Liquid glass sekme çubuğunu, kayan gezinmeyi ve diğer arayüz öğelerini etkinleştirir"; +"End" = "Bitiş"; +"Experimental features" = "Deneysel özellikler"; +"Explore & search" = "Keşfet ve ara"; +"Failed to change icon" = "Simge değiştirilemedi"; +"Fixed" = "Sabit"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "Sabit küçülmeyi önler. Gizle aşağı kaydırırken çubuğun kaybolmasını sağlar"; +"Focus/distractions" = "Odak/dikkat dağıtıcılar"; +"General" = "Genel"; +"Gradient color" = "Gradyan renk"; +"Hide ads" = "Reklamları gizle"; +"Hide explore posts grid" = "Keşfet gönderi ızgarasını gizle"; +"Hide friends map" = "Arkadaş haritasını gizle"; +"Hide Meta AI" = "Meta AI'ı gizle"; +"Hide metrics" = "İstatistikleri gizle"; +"Hide notes tray" = "Notlar bölümünü gizle"; +"Hide on scroll" = "Kaydırırken gizle"; +"Hide TestFlight popup" = "TestFlight açılır penceresini gizle"; +"Hide trending searches" = "Trend aramaları gizle"; +"Hide UI on capture" = "Ekran kaydında arayüzü gizle"; +"Hides all suggested users for you to follow, outside your feed" = "Akışınız dışında takip etmeniz önerilen tüm kullanıcıları gizler"; +"Hides like/comment/share counts on posts and reels" = "Gönderilerde ve reels'te beğeni/yorum/paylaşım sayılarını gizler"; +"Hides the friends map icon in the notes tray" = "Notlar bölümündeki arkadaş haritası simgesini gizler"; +"Hides the grid of suggested posts on the explore/search tab" = "Keşfet/arama sekmesindeki önerilen gönderiler ızgarasını gizler"; +"Hides the meta ai buttons/functionality within the app" = "Uygulama içindeki Meta AI butonlarını/işlevlerini gizler"; +"Hides the notes tray in the DM inbox" = "DM gelen kutusundaki notlar bölümünü gizler"; +"Hides the suggested broadcast channels in direct messages" = "Direkt mesajlardaki önerilen yayın kanallarını gizler"; +"Hides the trending searches under the explore search bar" = "Keşfet arama çubuğunun altındaki trend aramaları gizler"; +"Hold down on the Instagram logo to change the app icon" = "Uygulama simgesini değiştirmek için Instagram logosuna basılı tutun"; +"Lets the photo sticker picker show videos too, not just photos" = "Foto etiketi seçicisinin sadece fotoğrafları değil videoları da göstermesini sağlar"; +"Liquid glass tab bar" = "Liquid glass sekme çubuğu"; +"Live" = "Canlı"; +"Long press on the eyedropper tool in stories to customize the text color more precisely" = "Metin rengini daha hassas ayarlamak için hikayelerdeki damlalık aracına uzun basın"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "Düz veya gradyan herhangi bir renk seçmek için müzik ya da şarkı sözü etiketindeki renk çarkına uzun basın"; +"Long-press the heart button in a live to hide or show the comments" = "Yorumları gizlemek veya göstermek için canlı yayındaki kalp butonuna uzun basın"; +"Long-press the search tab to open a copied Instagram link" = "Kopyalanmış bir Instagram bağlantısını açmak için arama sekmesine uzun basın"; +"Master switch. When off, all per-surface toggles below are ignored." = "Ana anahtar. Kapalıyken aşağıdaki yüzey başına tüm anahtarlar yok sayılır."; +"No suggested chats" = "Önerilen sohbetleri kapat"; +"No suggested users" = "Önerilen kullanıcıları kapat"; +"Notes" = "Notlar"; +"Open app icon picker" = "Uygulama simgesi seçicisini aç"; +"Open link from clipboard" = "Panodan bağlantı aç"; +"Open links in external browser" = "Bağlantıları harici tarayıcıda aç"; +"Opens links in Safari instead of Instagram's in-app browser" = "Bağlantıları Instagram'ın uygulama içi tarayıcısı yerine Safari'de açar"; +"Privacy" = "Gizlilik"; +"Removes ads across enabled surfaces" = "Etkin yüzeylerde reklamları kaldırır"; +"Removes igsh, utm_source, and other tracking parameters from shared links" = "Paylaşılan bağlantılardan igsh, utm_source ve diğer takip parametrelerini kaldırır"; +"Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "URL'lerden Instagram takip yönlendirmelerini (l.instagram.com) ve UTM/fbclid parametrelerini kaldırır"; +"Replace domain in shared links" = "Paylaşılan bağlantılarda alan adını değiştir"; +"Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "IG'nin göreli zaman damgalarını (\"3 gün önce\") özel bir biçimle değiştirir. Seçici içinden hangi yüzeylere uygulanacağını açıp kapatın."; +"Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "Kopyalanan/paylaşılan bağlantıları Discord, Telegram vb. önizlemeler için gömüme uygun bir alan adı kullanacak şekilde yeniden yazar."; +"Search bars will no longer save your recent searches" = "Arama çubukları artık son aramalarınızı kaydetmeyecek"; +"Selected" = "Seçili"; +"Sharing" = "Paylaşım"; +"Shopping" = "Alışveriş"; +"Skip sensitive content covers" = "Hassas içerik kapaklarını atla"; +"Solid color" = "Düz renk"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "Ana, bağlamsal, video ve zincirleme akışlardaki sponsorlu gönderiler"; +"Sponsored posts on the explore grid" = "Keşfet ızgarasındaki sponsorlu gönderiler"; +"Sponsored reels in the sundial feed" = "Sundial akışındaki sponsorlu reels'ler"; +"Start" = "Başlangıç"; +"Story ads and sponsored entries in the story tray" = "Hikaye tepsisindeki hikaye reklamları ve sponsorlu girişler"; +"Strip tracking from links" = "Bağlantılardan takip verilerini kaldır"; +"Strip tracking params" = "Takip parametrelerini kaldır"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "\"It's time to update Instagram Beta\" bildirimini bastırır"; +"Tap to apply" = "Uygulamak için dokun"; +"The selected icon will be saved and shown here the next time you open this page." = "Seçilen simge kaydedilecek ve bu sayfayı bir sonraki açışınızda burada gösterilecek."; +"Toggle live comments" = "Canlı yorumları aç/kapat"; +"Use detailed color picker" = "Gelişmiş renk seçici kullan"; +"Used across feed, stories, reels, and DMs." = "Akış, hikayeler, Reels ve DM'lerde kullanılır"; + +////////////////////////////////////////////////////////////////////////////// +// DATE FORMAT // +// Settings → Date format tab // +////////////////////////////////////////////////////////////////////////////// + +"%ld day ago" = "%ld gün önce"; +"%ld days ago" = "%ld gün önce"; +"%ld hour ago" = "%ld saat önce"; +"%ld hours ago" = "%ld saat önce"; +"%ld minute ago" = "%ld dakika önce"; +"%ld minutes ago" = "%ld dakika önce"; +"%ld week ago" = "%ld hafta önce"; +"%ld weeks ago" = "%ld hafta önce"; +"%ldd" = "%ldg"; +"%ldh" = "%ldsa"; +"%ldm" = "%lddk"; +"%ldw" = "%ldh"; +"Alternate" = "Alternatif"; +"Always ask" = "Her zaman sor"; +"Balanced" = "Dengeli"; +"Block all" = "Tümünü engelle"; +"Block selected" = "Seçilenleri engelle"; +"Button" = "Buton"; +"Classic" = "Klasik"; +"Date format — %@" = "Tarih biçimi — %@"; +"Default" = "Varsayılan"; +"Disabled" = "Kapalı"; +"Download and share" = "İndir ve paylaş"; +"Download to Photos" = "Fotoğraflar'a indir"; +"Enabled" = "Açık"; +"Expand" = "Genişlet"; +"Explore" = "Keşfet"; +"Fast" = "Hızlı"; +"Feed" = "Akış"; +"Feed posts" = "Akış gönderileri"; +"High" = "Yüksek"; +"Inbox" = "Gelen kutusu"; +"just now" = "az önce"; +"Low" = "Düşük"; +"Max" = "Maksimum"; +"Medium" = "Orta"; +"Mute/Unmute" = "Sesi kapat/aç"; +"Notes, comments, stories" = "Notlar, yorumlar, hikayeler"; +"now" = "şimdi"; +"Open menu" = "Menüyü aç"; +"Pause/Play" = "Duraklat/Oynat"; +"Profile" = "Profil"; +"Quality" = "Kalite"; +"Reels" = "Reels"; +"Requires restart" = "Yeniden başlatma gerekir"; +"Save to Photos" = "Fotoğraflar'a kaydet"; +"Share sheet" = "Paylaşım sayfası"; +"Standard" = "Standart"; +"Toggle" = "Aç/Kapat"; + +////////////////////////////////////////////////////////////////////////////// +// FEED // +// Settings → Feed tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button" = "Eylem butonu"; +"Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "Hikaye çubuğu uzun basma menülerine 'Profil fotoğrafını görüntüle' ve 'Kapağı görüntüle' seçeneklerini ekler"; +"Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Her akış gönderisinin altına indirme/paylaşma/kopyalama/genişletme/yeniden paylaşma seçenekleri olan bir RyukGram eylem butonu ekler. Varsayılan olarak dokunma menüyü açar; dokunma davranışını aşağıdan değiştirin."; +"Choose Instagram's default feed or force the Following feed" = "Instagram'ın varsayılan akışını seçin veya Takip Edilenler akışını zorlayın"; +"Main feed" = "Ana akış"; +"Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "Akışın ne zaman ve nasıl yenileneceğini kontrol eder. Arka plan yenileme, yaklaşık 10 dakika sonra uygulamaya geri dönüldüğünde gerçekleşir. Ana sayfa butonu yenilemesi, zaten Ana Sayfa sekmesindeyken sekmeye dokunulduğunda gerçekleşir."; +"Default tap action" = "Varsayılan dokunma eylemi"; +"Disable background refresh" = "Arka plan yenilemeyi kapat"; +"Disable home button refresh" = "Ana sayfa butonu yenilemeyi kapat"; +"Disable home button scroll" = "Ana sayfa butonu kaydırmasını kapat"; +"Disable video autoplay" = "Video otomatik oynatmayı kapat"; +"Hide" = "Gizle"; +"Hide entire feed" = "Tüm akışı gizle"; +"Hide repost button" = "Yeniden paylaş butonunu gizle"; +"Hide stories tray" = "Hikaye çubuğunu gizle"; +"Hide suggested stories" = "Önerilen hikayeleri gizle"; +"Hides suggested accounts" = "Önerilen hesapları gizler"; +"Hides suggested reels" = "Önerilen reels'i gizler"; +"Hides suggested threads posts" = "Önerilen Threads gönderilerini gizler"; +"Hides the repost button on feed posts" = "Akış gönderilerindeki yeniden paylaş butonunu gizler"; +"Hides the story tray at the top" = "Üstteki hikaye çubuğunu gizler"; +"Inserts a button row below like/comment/share on each post" = "Her gönderide beğen/yorum/paylaş altına bir buton satırı ekler"; +"Long press on media to expand in full-screen viewer" = "Medyayı tam ekran görüntüleyicide açmak için uzun basın"; +"Start media muted" = "Medyayı sessiz başlat"; +"Expanded videos open with sound off" = "Genişletilen videolar sesi kapalı açılır"; +"Enhanced media resolution" = "Geliştirilmiş medya çözünürlüğü"; +"Media saving" = "Medya kaydetme"; +"Spoof device profile so IG serves higher-quality images" = "IG'nin daha yüksek kaliteli görseller sunması için cihaz profilini taklit eder"; +"Media" = "Medya"; +"Media zoom" = "Medya yakınlaştırma"; +"No suggested for you" = "Sana önerilenler yok"; +"No suggested posts" = "Önerilen gönderi yok"; +"No suggested reels" = "Önerilen reels yok"; +"No suggested threads" = "Önerilen Threads yok"; +"Prevents feed from reloading when returning from background" = "Arka plandan dönüldüğünde akışın yeniden yüklenmesini engeller"; +"Prevents videos from playing automatically" = "Videoların otomatik oynatılmasını engeller"; +"Refresh" = "Yenile"; +"Removes all content from your home feed" = "Ana sayfa akışınızdaki tüm içeriği kaldırır"; +"Removes suggested accounts from the stories tray" = "Hikaye çubuğundaki önerilen hesapları kaldırır"; +"Removes suggested posts" = "Önerilen gönderileri kaldırır"; +"Scroll to top without refreshing when tapping Home" = "Ana Sayfa'ya dokununca yenilemeden en üste kaydır"; +"Show action button" = "Eylem butonunu göster"; +"Show date" = "Tarihi göster"; +"Stories tray" = "Hikaye çubuğu"; +"Tapping Home does nothing when already on feed" = "Zaten akıştayken Ana Sayfa'ya dokunmak hiçbir şey yapmaz"; +"Tray long-press actions" = "Çubuk uzun basma eylemleri"; +"Composer doesn't accept GIFs" = "Yazma alanı GIF kabul etmiyor"; +"Copy GIF link" = "GIF bağlantısını kopyala"; +"Copy image link" = "Görsel bağlantısını kopyala"; +"Custom GIF in comments" = "Yorumlarda özel GIF"; +"Failed to build GIF model" = "GIF modeli oluşturulamadı"; +"GIF link copied" = "GIF bağlantısı kopyalandı"; +"Image" = "Görsel"; +"Image link copied" = "Görsel bağlantısı kopyalandı"; +"Invalid Giphy URL" = "Geçersiz Giphy URL'si"; +"Long-press the GIF button to paste any Giphy URL" = "Herhangi bir Giphy URL'sini yapıştırmak için GIF düğmesine uzun basın"; +"Paste Giphy Link" = "Giphy bağlantısı yapıştır"; +"Paste a giphy.com URL or media ID" = "Bir giphy.com URL'si ya da medya kimliği yapıştırın"; +"Send" = "Gönder"; + +////////////////////////////////////////////////////////////////////////////// +// REELS // +// Settings → Reels tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button above the reel sidebar with view-cover/download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Reels yan çubuğunun üstüne kapak görüntüleme/indirme/paylaşma/kopyalama/genişletme/yeniden paylaşma seçenekleri olan bir RyukGram eylem butonu ekler. Varsayılan olarak dokunma menüyü açar; dokunma davranışını aşağıdan değiştirin."; +"Always show progress scrubber" = "İlerleme çubuğunu her zaman göster"; +"Auto-scroll reels" = "Reels otomatik kaydır"; +"Change what happens when you tap on a reel" = "Bir reel'e dokunduğunuzda ne olacağını değiştirir"; +"Confirm reel refresh" = "Reels yenilemeyi onayla"; +"Custom speed" = "Özel hız"; +"Disable auto-unmuting reels" = "Reels otomatik sesi açmayı kapat"; +"Disable scrolling reels" = "Reels kaydırmayı kapat"; +"Disable tab button refresh" = "Sekme butonu yenilemeyi kapat"; +"Doom scrolling limit" = "Sonsuz kaydırma limiti"; +"e.g. 1.75" = "örn. 1.75"; +"Enter a value between 0.5 and 2.0" = "0.5 ile 2.0 arasında bir değer girin"; +"Forces the progress bar to appear on every reel" = "İlerleme çubuğunu her reel'de görünmeye zorlar"; +"Hide \"Made with Edits\" badge" = "\"Made with Edits\" rozetini gizle"; +"Hide friends avatars" = "Arkadaş avatarlarını gizle"; +"Hide reels header" = "Reels üst çubuğunu gizle"; +"Hide social context overlay" = "Sosyal bağlam katmanını gizle"; +"Hides the avatar bubbles next to the Friends tab in reels" = "Reels'taki Arkadaşlar sekmesinin yanındaki avatar baloncuklarını gizler"; +"Hides the Edits app promo pill on reels" = "Reels'taki Edits uygulaması tanıtım hapını gizler"; +"Hides the floating overlay showing who reposted or commented on reels" = "Reels'ta kimin yeniden paylaştığını veya yorum yaptığını gösteren yüzen katmanı gizler"; +"Hides the repost button on the reels sidebar" = "Reels yan çubuğundaki yeniden paylaş butonunu gizler"; +"Hides the top navigation bar when watching reels" = "Reels izlerken üst gezinme çubuğunu gizler"; +"Hiding" = "Gizleme"; +"Hold the 3-dot on any reel to open speed picker" = "Hız seçiciyi açmak için herhangi bir reel'deki 3 noktaya basılı tutun"; +"IG default" = "IG varsayılanı"; +"IG default: native behavior. RyukGram: re-advances after swiping back." = "IG varsayılanı: yerel davranış. RyukGram: geri kaydırdıktan sonra tekrar ilerletir."; +"Limits" = "Limitler"; +"Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "Herhangi bir anda kaydırılabilecek reels miktarını sınırlar ve yenilemeyi engeller"; +"Only loads %@ %@" = "Yalnızca %@ %@ yükler"; +"Places a button above the like/comment/share column on each reel" = "Her reel'de beğeni/yorum/paylaş sütununun üstüne bir buton yerleştirir"; +"Playback speed" = "Oynatma hızı"; +"Prevent doom scrolling" = "Sonsuz kaydırmayı engelle"; +"Prevents reels from being scrolled to the next video" = "Reels'in sonraki videoya kaydırılmasını engeller"; +"Prevents reels from unmuting when the volume/silent button is pressed" = "Ses/sessiz butonuna basıldığında reels'in sesinin açılmasını engeller"; +"RyukGram" = "RyukGram"; +"Shows an alert when you trigger a reels refresh" = "Reels yenilemesi tetiklediğinizde bir uyarı gösterir"; +"Shows buttons to reveal and auto-fill the password on locked reels" = "Kilitli reels'te şifreyi göstermek ve otomatik doldurmak için butonlar gösterir"; +"Swipe a reel left to open the author's profile" = "Bir reel'i sola kaydırarak yazarının profilini aç"; +"Swipe left to profile" = "Sola kaydırarak profili aç"; +"Tap Controls" = "Dokunma kontrolleri"; +"Tap to mute on photo reels" = "Fotoğraf reels'te dokunarak sesi kapat"; +"Tapping the Reels tab while on reels does nothing" = "Reels'teyken Reels sekmesine dokunmak hiçbir şey yapmaz"; +"Unlock password-locked reels" = "Şifreli reels'leri aç"; +"When pause mode is on, tap on photo reels toggles audio instead of the native pause gesture" = "Duraklatma modu açıkken fotoğraf reels'e dokunmak, yerel duraklatma hareketi yerine sesi açıp kapatır"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE // +// Settings → Profile tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "Herhangi bir takipçi/takip listesini filtrelemek ve sıralamak için bir düğme ekler. Çıkınca sıfırlanır."; +"Adds a view option to the highlight long-press menu to open the cover in full-screen" = "Öne çıkanlar uzun basma menüsüne kapağı tam ekranda açmak için görüntüleme seçeneği ekler"; +"Copy note on long press" = "Uzun basınca notu kopyala"; +"Extra stats shown on each post and reel card in profile grids." = "Profil ızgaralarındaki her gönderi ve reel kartında gösterilen ek istatistikler."; +"Fake follower count" = "Sahte takipçi sayısı"; +"Fake following count" = "Sahte takip edilen sayısı"; +"Fake post count" = "Sahte gönderi sayısı"; +"Fake profile stats" = "Sahte profil istatistikleri"; +"Fake verified badge" = "Sahte doğrulama rozeti"; +"Fetch missing counts" = "Eksik sayıları getir"; +"Filter & sort lists" = "Listeleri filtrele ve sırala"; +"Follow indicator" = "Takip göstergesi"; +"Follower & following lists" = "Takipçi ve takip listeleri"; +"Follower count" = "Takipçi sayısı"; +"Following count" = "Takip edilen sayısı"; +"Long press a profile picture to open it in full-screen with zoom, share, and save" = "Profil fotoğrafını yakınlaştırma, paylaşma ve kaydetme seçenekleriyle tam ekranda açmak için uzun basın"; +"Long press the note bubble on a profile to copy the text" = "Metni kopyalamak için profildeki not balonuna uzun basın"; +"Long press to download directly (ignored when zoom is on)" = "Doğrudan indirmek için uzun basın (yakınlaştırma açıkken yok sayılır)"; +"Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "Profil öğelerindeki uzun basma hareketleri — özellik başına eylem butonlarından ayrı tutulur."; +"Only affects your own profile header. Other users see the real numbers." = "Yalnızca kendi profil başlığınızı etkiler. Diğer kullanıcılar gerçek sayıları görür."; +"Override view count" = "Görüntülenme sayısını geçersiz kıl"; +"Post count" = "Gönderi sayısı"; +"Profile card details" = "Profil kartı detayları"; +"Profile stats" = "Profil istatistikleri"; +"Render counts in shortened format." = "Sayıları kısaltılmış biçimde göster."; +"Save profile picture" = "Profil fotoğrafını kaydet"; +"Short numbers" = "Kısa sayılar"; +"Show a checkmark next to your name on your own profile" = "Kendi profilinizde adınızın yanında onay işareti gösterir"; +"Show full follower count" = "Tam takipçi sayısını göster"; +"Show full post count" = "Tam gönderi sayısını göster"; +"Show like count" = "Beğeni sayısını göster"; +"Show upload date" = "Yüklenme tarihini göster"; +"Shows whether the profile user follows you" = "Profil kullanıcısının sizi takip edip etmediğini gösterir"; +"Tap to set" = "Ayarlamak için dokun"; +"Uses Instagram's API. May hit rate limits." = "Instagram API'sini kullanır. Hız limitlerine takılabilir."; +"View highlight cover" = "Öne çıkan kapak görselini görüntüle"; +"Zoom profile photo" = "Profil fotoğrafını yakınlaştır"; + +////////////////////////////////////////////////////////////////////////////// +// SAVING & DOWNLOADS // +// Settings → Saving tab // +////////////////////////////////////////////////////////////////////////////// + +"Active, queued, and finished downloads" = "Etkin, sırada bekleyen ve tamamlanan indirmeler"; +"Auto-retry attempts" = "Otomatik yeniden deneme sayısı"; +"Auto-retry failed downloads" = "Başarısız indirmeleri otomatik yeniden dene"; +"Confirm before download" = "İndirmeden önce onayla"; +"Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "Kullanımdan kaldırıldı. RyukGram eylem butonu (Akış/Reels/Hikayeler içinde özellik bazında yapılandırılır) medya indirmenin yeni yoludur. Bu ana anahtarı yalnızca medyanın üzerinde eski çok parmaklı uzun basma yöntemini tercih ediyorsanız etkinleştirin."; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "Uygulamadan çıktığınızda indirmeleri, kodlamayı veya profil taramalarını duraklatma"; +"Download queue" = "İndirme kuyruğu"; +"Downloads" = "İndirmeler"; +"Downloads with %@ %@" = "%@ %@ ile indirir"; +"Enable long-press gesture" = "Uzun basma hareketini etkinleştir"; +"Finger count for long-press" = "Uzun basma için parmak sayısı"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "Aynı anda kaç indirmenin çalışacağı — ekstralar sırada bekler ve yuvalar boşaldıkça başlar. Başarısız indirmeler ağ hatalarında otomatik olarak yeniden denenir. İndirmeleri izlemek, iptal etmek veya yeniden denemek için yöneticiyi açın."; +"Keep running in background" = "Arka planda çalışmaya devam et"; +"Legacy long-press gesture" = "Eski uzun basma hareketi"; +"Long-press hold time" = "Uzun basma bekleme süresi"; +"Master toggle for the deprecated gesture workflow (off by default)" = "Kullanımdan kaldırılan hareket iş akışı için ana anahtar (varsayılan olarak kapalı)"; +"Max simultaneous downloads" = "Maks eşzamanlı indirme"; +"Open download manager" = "İndirme yöneticisini aç"; +"Press finger(s) for %@ %@" = "%@ %@ boyunca parmakla basın"; +"Retry automatically when a download drops on a network error" = "Bir indirme ağ hatasıyla düştüğünde otomatik olarak yeniden dene"; +"Route saves into a custom album in Photos instead of the camera roll root" = "Kayıtları film rulosu kökü yerine Fotoğraflar'da özel bir albüme yönlendir"; +"Run up to %@ %@ at once" = "Aynı anda en fazla %@ %@ çalıştır"; +"Save action" = "Kaydetme eylemi"; +"Save to dedicated album" = "Özel albüme kaydet"; +"Show a confirmation dialog before starting a download" = "İndirme başlamadan önce onay iletişim kutusu göster"; +"Try %@ more %@ before giving up" = "Vazgeçmeden önce %@ kez daha %@ dene"; +"What happens after the gesture downloads" = "Hareket indirmeden sonra ne olacağı"; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "\"Özel albüme kaydet\" açıkken, indirmeler ve paylaşım sayfası \"Fotoğraflar'a kaydet\" seçimleri Fotoğraflar kitaplığınızdaki adlandırılmış bir albüme yönlendirilir. Değiştirmek için \"Albüm adı\"na dokunun."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu başarısız"; +"%lu of %lu done" = "%lu / %lu tamamlandı"; +"%lu saved, %lu failed" = "%lu kaydedildi, %lu başarısız"; +"Active" = "Etkin"; +"Auto-retry" = "Otomatik yeniden dene"; +"Clear completed" = "Tamamlananları temizle"; +"Completed" = "Tamamlandı"; +"Download settings" = "İndirme ayarları"; +"Downloading %lu items" = "%lu öğe indiriliyor"; +"Downloading…" = "İndiriliyor…"; +"Encoding %d%%" = "Kodlanıyor %d%%"; +"Encoding…" = "Kodlanıyor…"; +"Extra downloads wait in line and start as slots free up." = "Ekstra indirmeler sırada bekler ve yuvalar boşaldıkça başlar."; +"No downloads yet" = "Henüz indirme yok"; +"Preview" = "Önizleme"; +"Queued" = "Sırada"; +"Redownload" = "Yeniden indir"; +"Retry" = "Yeniden dene"; +"Retrying…" = "Yeniden deneniyor…"; +"Waiting for connection…" = "Bağlantı bekleniyor…"; +"Waiting…" = "Bekleniyor…"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES // +// Settings → Stories tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button next to the eye button on stories with download/share/copy/expand/repost/view-mentions entries. Tap opens the menu by default; change the tap behavior below." = "Hikayelerde göz butonunun yanına indirme/paylaşma/kopyalama/genişletme/yeniden paylaşma/bahsedilenleri görüntüleme seçenekleri olan bir RyukGram eylem butonu ekler. Varsayılan olarak dokunma menüyü açar; dokunma davranışını aşağıdan değiştirin."; +"Adds a speaker button to the story overlay to unmute/mute audio. Also available in the 3-dot menu" = "Hikaye katmanına sesi açıp kapatmak için hoparlör butonu ekler. 3 nokta menüsünde de bulunur"; +"Advance on story like" = "Hikaye beğenilince ilerle"; +"Advance on story reply" = "Hikayeye yanıt verince ilerle"; +"Advance when marking as seen" = "Görüldü olarak işaretleyince ilerle"; +"Audio" = "Ses"; +"Block all: all stories blocked — listed users are exceptions.\nBlock selected: only listed users are blocked — everything else is normal.\nBoth lists are saved independently." = "Tümünü engelle: tüm hikayeler engellenir — listedeki kullanıcılar istisnadır.\nSeçilenleri engelle: yalnızca listedeki kullanıcılar engellenir — diğer her şey normaldir.\nİki liste bağımsız olarak kaydedilir."; +"Blocking mode" = "Engelleme modu"; +"Button = single-tap mark seen. Toggle = tap toggles story read receipts on/off (eye fills blue when on)" = "Buton = tek dokunuşta görüldü işaretler. Anahtar = dokunma hikaye okundu bilgisini açıp kapatır (açıkken göz mavi dolar)"; +"Disable instants creation" = "Anlık oluşturmayı kapat"; +"Disable story seen receipt" = "Hikaye görüldü bilgisini kapat"; +"Enable story user list" = "Hikaye kullanıcı listesini etkinleştir"; +"Hides the functionality to create/send instants" = "Anlık oluşturma/gönderme işlevini gizler"; +"Hides the notification for others when you view their story" = "Hikayelerini görüntülediğinizde başkalarına giden bildirimi gizler"; +"Inserts a button next to the seen/eye button on story overlays" = "Hikaye katmanlarında görüldü/göz butonunun yanına bir buton ekler"; +"Keep stories visually seen locally" = "Hikayeleri yerelde görsel olarak görüldü tut"; +"Liking a story automatically advances to the next one after a short delay" = "Bir hikayeyi beğenmek kısa bir gecikmeden sonra otomatik olarak sonrakine ilerletir"; +"Manage list" = "Listeyi yönet"; +"Manage list (%lu)" = "Listeyi yönet (%lu)"; +"Manual seen button mode" = "Manuel görüldü butonu modu"; +"Mark seen on story like" = "Hikaye beğenisinde görüldü işaretle"; +"Mark seen on story reply" = "Hikaye yanıtında görüldü işaretle"; +"Marks a story as seen the moment you tap the heart, even with seen blocking on" = "Görüldü engelleme açık olsa bile kalbe dokunduğunuz anda hikayeyi görüldü olarak işaretler"; +"Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "Görüldü engelleme açık olsa bile yanıt veya emoji tepkisi gönderdiğinizde hikayeyi görüldü olarak işaretler"; +"Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "Sunucuda görüldü bilgisini engellemeye devam ederken hikayeleri yerelde görüldü (gri halka) işaretler"; +"Master toggle. When off, the list is ignored" = "Ana anahtar. Kapalıyken liste yok sayılır"; +"Playback" = "Oynatma"; +"Search, sort, swipe to remove" = "Ara, sırala, kaldırmak için kaydır"; +"Seen receipts" = "Görüldü bilgileri"; +"Sending a reply or emoji reaction automatically advances to the next story" = "Yanıt veya emoji tepkisi göndermek otomatik olarak sonraki hikayeye ilerletir"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "Eylem düğmesi menüsüne ve hikaye 3 nokta menüsüne 'Bahsetmeleri görüntüle' girişi ekler"; +"Mentions overlay button" = "Bahsetmeler katman düğmesi"; +"Mentions count badge" = "Bahsetme sayısı rozeti"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "Hikaye katmanındaki eylem/göz düğmesinin yanına bir düğme ekler. Yalnızca geçerli hikayede bahsetmeler veya paylaşılan gönderiler/Reels olduğunda görünür"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "Bindirme düğmesinde benzersiz bahsedilen hesap sayısını kırmızı bir rozetle gösterir"; +"Hide stories midcards" = "Hikâye orta kartlarını gizle"; +"Removes the Trending and Music promo cards from the stories tray" = "Hikâye tepsisindeki Trend ve Müzik tanıtım kartlarını kaldırır"; +"Stickers" = "Çıkartmalar"; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "Etkileşime geçmeden önce anket/quiz/kaydırıcı sonuçlarına göz atın — normal şekilde oy vermek için yine dokunabilirsiniz. “Force legacy”, Quiz ve Reveal etiketlerini hikaye düzenleyiciye geri ekler."; +"Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "Etkileşmeden önce reels üzerindeki anket/quiz/kaydırıcı sonuçlarına göz atın — yine normal şekilde oy vermek için dokunabilirsiniz."; +"Force legacy stickers in tray" = "Eski etiketleri çubukta zorla göster"; +"Adds Quiz and Reveal stickers back to the picker" = "Quiz ve Reveal etiketlerini seçiciye geri ekler"; +"Bypass Reveal sticker" = "Reveal etiketini atla"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "Reveal etiketli hikayelerde DM ile gösterme adımını atla"; +"Show quiz answer" = "Quiz yanıtını göster"; +"Circle the correct option on quiz stickers, or the leading option on polls" = "Quiz çıkartmalarında doğru seçeneği veya anketlerde önde olan seçeneği daire içine alır"; +"Show poll vote counts" = "Anket oy sayılarını göster"; +"Show vote tallies on poll options and slider count/average before you vote" = "Oy vermeden önce anket seçeneklerindeki oy toplamlarını ve kaydırıcı sayı/ortalamasını göster"; +"Stop story auto-advance" = "Hikaye otomatik ilerlemeyi durdur"; +"Stories" = "Hikayeler"; +"Stories won't auto-skip to the next one when the timer ends. Tap to advance manually" = "Sayaç bitince hikayeler otomatik olarak sonrakine geçmez. Manuel ilerlemek için dokunun"; +"Story audio toggle" = "Hikaye sesi anahtarı"; +"Story user list" = "Hikaye kullanıcı listesi"; +"Tapping the eye button to mark a story as seen advances to the next story automatically" = "Bir hikayeyi görüldü işaretlemek için göz butonuna dokunmak otomatik olarak sonraki hikayeye ilerletir"; +"View story mentions" = "Hikaye bahsetmelerini görüntüle"; +"Which stories get seen-receipt blocking" = "Hangi hikayelerde görüldü bilgisi engellensin"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — READ RECEIPTS // +// Settings → Read receipts tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to DM threads to mark messages as seen" = "Mesajları görüldü olarak işaretlemek için DM konuşmalarına bir buton ekler"; +"Auto mark seen on interact" = "Etkileşimde otomatik görüldü işaretle"; +"Auto mark seen on typing" = "Yazarken otomatik görüldü işaretle"; +"Control when messages are marked as seen" = "Mesajların ne zaman görüldü işaretleneceğini kontrol eder"; +"How the seen button behaves" = "Görüldü butonunun nasıl davranacağı"; +"Manually mark messages as seen" = "Mesajları manuel olarak görüldü işaretle"; +"Marks messages as seen when you send any message" = "Herhangi bir mesaj gönderdiğinizde mesajları görüldü işaretler"; +"Marks messages as seen when you start typing" = "Yazmaya başladığınızda mesajları görüldü işaretler"; +"Read receipt mode" = "Okundu bilgisi modu"; +"Read receipts" = "Okundu bilgileri"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — KEEP DELETED // +// Settings → Keep deleted messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Activity" = "Etkinlik"; +"Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "Sesli mesajları M4A ses olarak kaydetmek için uzun basma menüsüne 'İndir' seçeneği ekler"; +"Allows typing and sending DMs longer than Instagram's limit" = "Instagram'ın sınırından daha uzun mesajlar yazıp göndermenize izin verir"; +"Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "DM'lerde artı menüsüne 'Dosya Gönder' seçeneği ekler. Desteklenen dosya türleri Instagram tarafından sınırlanabilir"; +"Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "Ses dosyalarını sesli mesaj olarak göndermek için DM'lerde artı menüsüne 'Ses Dosyası' seçeneği ekler"; +"Adds copy text, download GIF/audio to the note long-press menu" = "Not uzun basma menüsüne metin kopyalama, GIF/ses indirme seçenekleri ekler"; +"Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "Tümünü engelle: tüm sohbetler engellenir — listedeki sohbetler istisnadır.\nSeçilenleri engelle: yalnızca listedeki sohbetler engellenir — diğer her şey normaldir.\nİki liste bağımsız olarak kaydedilir. Eklemek veya kaldırmak için gelen kutusunda bir sohbete uzun basın."; +"Block keep-deleted for excluded chats" = "Hariç tutulan sohbetlerde silinenleri tutmayı engelle"; +"Block keep-deleted for unlisted chats" = "Listelenmemiş sohbetlerde silinenleri tutmayı engelle"; +"Bypass DM character limit" = "Mesaj karakter sınırını atla"; +"Chat list" = "Sohbet listesi"; +"Confirmation dialog before clearing preserved messages" = "Korunan mesajları temizlemeden önce onay iletişim kutusu"; +"Copies note text directly on long press without opening the menu" = "Uzun basınca menüyü açmadan not metnini doğrudan kopyalar"; +"Copy text on hold" = "Basılı tutunca metni kopyala"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "Özel arka plan ve metin renkleri seçmek için fırça düğmesi ve uzun basma kısayolu ekler"; +"Custom note themes" = "Özel not temaları"; +"Disable vanish mode swipe" = "Kaybolma modu kaydırmasını kapat"; +"Disable typing status" = "Yazıyor durumunu kapat"; +"Disable view-once limitations" = "Bir kez görüntüleme sınırlamalarını kapat"; +"Download voice messages" = "Sesli mesajları indir"; +"Enable chat list" = "Sohbet listesini etkinleştir"; +"Enable note theming" = "Not temalarını etkinleştir"; +"Enables the notes theme picker" = "Not tema seçicisini etkinleştirir"; +"Files" = "Dosyalar"; +"Full last active date" = "Tam son aktiflik tarihi"; +"Hide reels blend button" = "Reels blend butonunu gizle"; +"Hide send to group chat" = "Grup sohbetine gönder seçeneğini gizle"; +"Pin recipients on long-press" = "Uzun basışla alıcıları sabitle"; +"Long-press in the share sheet to pin a chat/user to the top" = "Paylaş sayfasında bir sohbeti/kullanıcıyı en üste sabitlemek için uzun basın"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "Bir alıcıya uzun basarak sabitleyin veya kaldırın. Sabitlenen alıcılar en üstte görünür."; +"Recipient pinned" = "Alıcı sabitlendi"; +"Recipient unpinned" = "Alıcı sabitlemesi kaldırıldı"; +"Couldn't resolve recipient id" = "Alıcı kimliği çözümlenemedi"; +"Hide video call button" = "Görüntülü arama butonunu gizle"; +"Hide voice call button" = "Sesli arama butonunu gizle"; +"Hides the blend button in DMs" = "DM'lerde blend butonunu gizler"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "Birden fazla alıcıyla paylaşırken grup sohbeti oluştur/gönder satırını kaldırır"; +"Hides typing indicator from others" = "Yazıyor göstergesini başkalarından gizler"; +"Indicate unsent messages" = "Gönderilmemiş mesajları belirt"; +"Keep deleted messages" = "Silinen mesajları tut"; +"Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "Bir kez görüntülenen mesajların normal görsel mesajlar gibi davranmasını sağlar (döngülenebilir/duraklatılabilir)"; +"Note actions" = "Not eylemleri"; +"Preserves messages that others unsend" = "Başkalarının geri aldığı mesajları korur"; +"Prevents accidental swipe-up activation of vanish mode" = "Kaybolma modunun yanlışlıkla yukarı kaydırmayla etkinleşmesini engeller"; +"Quick list button in chats" = "Sohbetlerde hızlı liste butonu"; +"Removes the audio call button from DM thread header" = "DM konuşma başlığından sesli arama butonunu kaldırır"; +"Removes the video call button from DM thread header" = "DM konuşma başlığından görüntülü arama butonunu kaldırır"; +"Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "Görsel mesajları süresi dolmadan tekrar oynatır. Göz butonu menüsünden açıp kapatın veya göz butonu kapalıyken bağımsız buton olarak kullanın"; +"Search, sort, swipe to remove or toggle keep-deleted" = "Ara, sırala, kaldırmak veya silinenleri tutmayı açıp kapatmak için kaydır"; +"Send audio as file" = "Sesi dosya olarak gönder"; +"Send files (experimental)" = "Dosya gönder (deneysel)"; +"Show full date instead of \"Active 2h ago\"" = "\"2 saat önce aktifti\" yerine tam tarihi göster"; +"Shows a button in DM threads to add/remove chats from the list. Long-press for more options" = "Sohbetleri listeye eklemek/kaldırmak için DM konuşmalarında bir buton gösterir. Daha fazla seçenek için uzun basın"; +"Shows a notification pill when a message is unsent" = "Bir mesaj geri alındığında bildirim etiketi gösterir"; +"Shows an \"Unsent\" label on preserved messages" = "Korunan mesajlarda \"Geri alındı\" etiketi gösterir"; +"Unlimited replay of visual messages" = "Görsel mesajları sınırsız tekrar oynatma"; +"Unsent message notification" = "Geri alınan mesaj bildirimi"; +"Voice messages" = "Sesli mesajlar"; +"Warn before clearing on refresh" = "Yenilemede temizlemeden önce uyar"; +"Which chats get read-receipt blocking" = "Hangi sohbetlerde okundu bilgisi engellensin"; +"⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ DM sekmesinde yenilemek için çekme, tüm korunan mesajları temizler. Onay iletişim kutusu almak için aşağıdaki uyarıyı etkinleştirin."; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu silindi"; +"%lu messages from %lu users" = "%lu kullanıcıdan %lu mesaj"; +"%lu selected" = "%lu seçildi"; +"Absolute date + time" = "Tarih ve saat (mutlak)"; +"Adjust the filters or clear the search to see more." = "Daha fazlasını görmek için filtreleri değiştirin veya aramayı temizleyin."; +"All time" = "Tüm zamanlar"; +"Browse, filter and search recorded messages" = "Kaydedilen mesajlarda gezin, filtrele ve ara"; +"Captures unsent messages with their text or media" = "Gönderilmeyen mesajları metni veya medyasıyla yakalar"; +"Clear deleted-message log?" = "Silinmiş mesaj günlüğü temizlensin mi?"; +"Clear from this user" = "Bu kullanıcıdan temizle"; +"Clear log" = "Günlüğü temizle"; +"Clear log for this account" = "Bu hesabın günlüğünü temizle"; +"Clear log for this user?" = "Bu kullanıcının günlüğü temizlensin mi?"; +"Clear media files" = "Medya dosyalarını temizle"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "Medyayı temizlemek kayıtları (metin, gönderen, zaman) korur. Günlüğü temizlemek bu hesabın her şeyini siler."; +"Close" = "Kapat"; +"Content unavailable" = "İçerik kullanılamıyor"; +"Copied" = "Kopyalandı"; +"Copy URL" = "URL'yi kopyala"; +"Date range" = "Tarih aralığı"; +"Deleted messages" = "Silinmiş mesajlar"; +"Deleted messages log" = "Silinmiş mesaj günlüğü"; +"Deleted: %@\n" = "Silindi: %@\n"; +"Edit %lu" = "Düzenleme %lu"; +"Edit history" = "Düzenleme geçmişi"; +"Edited" = "Düzenlendi"; +"Empty" = "Boş"; +"Enable deleted messages log" = "Silinmiş mesaj günlüğünü etkinleştir"; +"Enable Settings → Messages → Deleted messages log to start recording." = "Kayda başlamak için Ayarlar → Mesajlar → Silinmiş mesaj günlüğü’nü etkinleştirin."; +"GIF" = "GIF"; +"Hashtag" = "Hashtag"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "Tür: %@\n"; +"Last 30 days" = "Son 30 gün"; +"Last 7 days" = "Son 7 gün"; +"Link" = "Bağlantı"; +"Live location" = "Canlı konum"; +"Location" = "Konum"; +"Logging is off" = "Kayıt kapalı"; +"Media on disk" = "Diskteki medya"; +"Most messages" = "En çok mesaj"; +"Most recent" = "En yeniler"; +"No deleted messages yet" = "Henüz silinmiş mesaj yok"; +"No matches" = "Eşleşme yok"; +"Nothing to save" = "Kaydedilecek bir şey yok"; +"Oldest first" = "Önce en eski"; +"Open log" = "Günlüğü aç"; +"Open profile" = "Profili aç"; +"Original" = "Orijinal"; +"Play" = "Oynat"; +"Post" = "Gönderi"; +"Records every message someone unsends, grouped by sender" = "Birinin geri aldığı her mesajı gönderen bazında kaydeder"; +"Reel" = "Reel"; +"Relative (1m / 3h / 3d ago)" = "Göreli (1d / 3sa / 3g önce)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "Geçerli hesap için saklanan her silinmiş mesajı ve yakalanan medyasını kaldırır. Geri alınamaz."; +"Removes every preserved deleted message and its captured media for this account." = "Bu hesap için saklanan her silinmiş mesajı ve yakalanan medyasını kaldırır."; +"Removes every preserved deleted message from this sender." = "Bu göndericinin saklanan her silinmiş mesajını kaldırır."; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "Kaydedilen her fotoğraf, video ve ses klibini kaldırır. Kayıtlar metni ve gönderen bilgisini korur."; +"Search messages" = "Mesaj ara"; +"Search senders or messages" = "Gönderen veya mesaj ara"; +"Select" = "Seç"; +"Show edit history" = "Düzenleme geçmişini göster"; +"Source URL recorded but media not stored.\n" = "Kaynak URL kaydedildi ancak medya saklanmadı.\n"; +"Sticker" = "Çıkartma"; +"Tap to open in Instagram" = "Instagram'da açmak için dokunun"; +"Tap to open in Maps" = "Haritalar'da açmak için dokunun"; +"Tap to play" = "Oynatmak için dokunun"; +"Tap to play · %@" = "Oynatmak için dokunun · %@"; +"Text" = "Metin"; +"This account" = "Bu hesap"; +"Unknown" = "Bilinmiyor"; +"Video" = "Video"; +"View" = "Görüntüle"; +"Voice" = "Ses"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "Etkinleştirildiğinde, silinmiş mesajlar ve medyaları bu cihaza kaydedilir. Geçmişi silmek için kapatın ve günlüğü temizleyin."; +"When someone unsends a message, it will appear here grouped by sender." = "Birisi bir mesajı geri aldığında, burada gönderen bazında görünecek."; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES // +// Settings → Messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Custom chat background" = "Özel sohbet arka planı"; +"Incoming calls stay silent — no ring, no screen, no notification" = "Gelen aramalar sessiz kalır — zil yok, ekran yok, bildirim yok"; +"Messages" = "Mesajlar"; +"Silence incoming calls" = "Gelen aramaları sustur"; +"Threads" = "Konular"; +"Use your own images as chat backgrounds" = "Kendi görsellerinizi sohbet arka planı olarak kullanın"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "Albümünüzden fotoğraf göndermek için anlık kamerasına bir galeri butonu ekler"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "Instants görüntüleyicisinin başlığına genişlet, kaydet, paylaş ve tümünü kaydet girişleri içeren bir RyukGram eylem düğmesi ekler"; +"All loaded instants" = "Yüklü tüm anlıklar"; +"Bypasses the Instants screenshot block" = "Instants ekran görüntüsü engelini atlar"; +"Could not locate the instant on screen" = "Ekrandaki anlık bulunamadı"; +"Current instant" = "Geçerli anlık"; +"In-app Gallery" = "Uygulama içi galeri"; +"Instant" = "Anlık"; +"Instants" = "Anlık"; +"Instants action button" = "Instants eylem düğmesi"; +"No instants currently loaded" = "Şu anda yüklü anlık yok"; +"No media available to save" = "Kaydedilecek medya yok"; +"Photos library" = "Fotoğraflar kitaplığı"; +"Pick from" = "Şuradan seç"; +"Queued %lu instants" = "%lu anlık kuyruğa alındı"; +"Save all to Gallery" = "Hepsini galeriye kaydet"; +"Save all to Photos" = "Hepsini Fotoğraflar'a kaydet"; +"Save to Gallery" = "Galeriye kaydet"; +"Send from gallery" = "Galeriden gönder"; +"Tweaks for the QuickSnap / Instants camera surface." = "QuickSnap / Anlık kamera ekranı için ayarlar."; +"Use" = "Kullan"; + +////////////////////////////////////////////////////////////////////////////// +// NAVIGATION // +// Settings → Navigation tab // +////////////////////////////////////////////////////////////////////////////// + +"Also hide the bottom tab bar — only the inbox is visible" = "Alt sekme çubuğunu da gizle — yalnızca gelen kutusu görünür"; +"Hide create tab" = "Oluştur sekmesini gizle"; +"Hide explore tab" = "Keşfet sekmesini gizle"; +"Hide feed tab" = "Akış sekmesini gizle"; +"Hide messages tab" = "Mesajlar sekmesini gizle"; +"Hide reels tab" = "Reels sekmesini gizle"; +"Hide tab bar" = "Sekme çubuğunu gizle"; +"Hides every tab except DM inbox + profile and forces launch into the inbox. Settings shortcut moves to long-press on the inbox tab." = "DM gelen kutusu + profil dışındaki tüm sekmeleri gizler ve uygulamayı gelen kutusunda açmaya zorlar. Ayarlar kısayolu gelen kutusu sekmesine uzun basmaya taşınır."; +"Hides the create tab on the bottom navigation bar" = "Alt gezinme çubuğundaki oluştur sekmesini gizler"; +"Hides the direct messages tab on the bottom navigation bar" = "Alt gezinme çubuğundaki direkt mesajlar sekmesini gizler"; +"Hides the explore/search tab on the bottom navigation bar" = "Alt gezinme çubuğundaki keşfet/arama sekmesini gizler"; +"Hides the feed/home tab on the bottom navigation bar" = "Alt gezinme çubuğundaki akış/ana sayfa sekmesini gizler"; +"Hides the reels tab on the bottom navigation bar" = "Alt gezinme çubuğundaki reels sekmesini gizler"; +"Hiding tabs" = "Sekmeleri gizleme"; +"Icon order" = "Simge sırası"; +"Launch tab" = "Açılış sekmesi"; +"Lets you swipe to switch between navigation bar tabs" = "Gezinme çubuğu sekmeleri arasında geçmek için kaydırmanıza izin verir"; +"Messages only" = "Yalnızca mesajlar"; +"Messages-only mode" = "Yalnızca mesajlar modu"; +"Navigation" = "Gezinme"; +"Swipe between tabs" = "Sekmeler arasında kaydır"; +"Tab the app opens to. Ignored when Messages-only is on" = "Uygulamanın açılacağı sekme. Yalnızca Mesajlar açıkken yok sayılır"; +"The order of the icons on the bottom navigation bar" = "Alt gezinme çubuğundaki simgelerin sırası"; +"Turn IG into a DM-only client" = "IG'yi yalnızca DM istemcisine dönüştür"; + +////////////////////////////////////////////////////////////////////////////// +// CONFIRM ACTIONS // +// Settings → Confirm actions tab // +////////////////////////////////////////////////////////////////////////////// + +"All" = "Tümü"; +"Calls" = "Aramalar"; +"Comments & posts" = "Yorumlar ve gönderiler"; +"Confirm actions" = "Eylemleri onayla"; +"Confirm changing theme" = "Tema değiştirmeyi onayla"; +"Confirm follow" = "Takip etmeyi onayla"; +"Confirm follow requests" = "Takip isteklerini onayla"; +"Confirm Instants capture" = "Instants çekimini onayla"; +"Confirm Instants emoji reaction" = "Instants emoji tepkisini onayla"; +"Confirm like: Posts" = "Beğeniyi onayla: Gönderiler"; +"Confirm like: Reels" = "Beğeniyi onayla: Reels"; +"Confirm note emoji reaction" = "Not emoji tepkisini onayla"; +"Confirm note like" = "Not beğenisini onayla"; +"Confirm posting comment" = "Yorum göndermeyi onayla"; +"Confirm repost" = "Yeniden paylaşmayı onayla"; +"Confirm send to group chat" = "Grup sohbetine göndermeyi onayla"; +"Confirm sticker interaction (highlights)" = "Çıkartma etkileşimini onayla (öne çıkanlar)"; +"Confirm sticker interaction (stories)" = "Çıkartma etkileşimini onayla (hikayeler)"; +"Confirm story emoji reaction" = "Hikaye emoji tepkisini onayla"; +"Confirm story like" = "Hikaye beğenisini onayla"; +"Confirm switching Instant" = "Instant değiştirmeyi onayla"; +"Confirm unfollow" = "Takibi bırakmayı onayla"; +"Confirm vanish mode" = "Kaybolma modunu onayla"; +"Confirm video call" = "Görüntülü aramayı onayla"; +"Confirm voice call" = "Sesli aramayı onayla"; +"Confirm voice messages" = "Sesli mesajları onayla"; +"Follows" = "Takip ediyor"; +"Likes" = "Beğeniler"; +"Messaging" = "Mesajlaşma"; +"Reaction stickers only" = "Yalnızca tepki etiketleri"; +"Reactions" = "Tepkiler"; +"Send to group chat?" = "Grup sohbetine gönderilsin mi?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "Paylaşım sayfasından bir grup sohbeti oluşturmadan/göndermeden önce uyarı gösterir"; +"Shows an alert before sending an emoji reaction on a note" = "Bir nota emoji tepkisi göndermeden önce uyarı gösterir"; +"Shows an alert before sending an emoji reaction on a story" = "Bir hikayeye emoji tepkisi göndermeden önce uyarı gösterir"; +"Shows an alert before sending an emoji reaction on an Instant" = "Bir Instant'a emoji tepkisi göndermeden önce uyarı gösterir"; +"Shows an alert before taking a photo with the Instants camera" = "Instants kamerasıyla fotoğraf çekmeden önce uyarı gösterir"; +"Shows an alert before tapping to switch to the next/previous Instant" = "Sonraki/önceki Instant'a geçmek için dokunmadan önce uyarı gösterir"; +"Shows an alert to confirm before sending a voice message" = "Sesli mesaj göndermeden önce onay uyarısı gösterir"; +"Shows an alert to confirm before toggling vanish mode" = "Kaybolma modunu açıp kapatmadan önce onay uyarısı gösterir"; +"Shows an alert when you accept/decline a follow request" = "Bir takip isteğini kabul/reddettiğinizde uyarı gösterir"; +"Shows an alert when you change a chat theme to confirm" = "Sohbet temasını değiştirdiğinizde onay uyarısı gösterir"; +"Shows an alert when you click the follow button to confirm the follow" = "Takibi onaylamak için takip butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you click the like button on notes to confirm the like" = "Notlarda beğeniyi onaylamak için beğen butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you click the like button on posts to confirm the like" = "Gönderilerde beğeniyi onaylamak için beğen butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you click the like button on reels to confirm the like" = "Reels'te beğeniyi onaylamak için beğen butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you click the like button on stories to confirm the like" = "Hikayelerde beğeniyi onaylamak için beğen butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you click the post comment button to confirm" = "Gönderi yorumu butonuna tıklayınca onay uyarısı gösterir"; +"Shows an alert when you click the repost button to confirm before reposting" = "Yeniden paylaşmadan önce onaylamak için yeniden paylaş butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you click the unfollow button to confirm" = "Takibi bırakmayı onaylamak için takibi bırak butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you click the video call button to confirm before calling" = "Aramadan önce onaylamak için görüntülü arama butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you click the voice call button to confirm before calling" = "Aramadan önce onaylamak için sesli arama butonuna tıkladığınızda uyarı gösterir"; +"Shows an alert when you tap a sticker inside a highlight" = "Öne çıkan içindeki çıkartmaya dokunduğunuzda uyarı gösterir"; +"Shows an alert when you tap a sticker on someone's story" = "Birinin hikayesindeki çıkartmaya dokunduğunuzda uyarı gösterir"; +"Stories & highlights" = "Hikayeler ve öne çıkanlar"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld sa"; +"%ld locked" = "%ld kilitli"; +"%ld min" = "%ld dk"; +"%ldh idle" = "%ld sa boşta"; +"%ldm idle" = "%ld dk boşta"; +"%lds" = "%ld sn"; +"%lds idle" = "%ld sn boşta"; +"%lu hidden" = "%lu gizli"; +"4 digits" = "4 hane"; +"6 digits" = "6 hane"; +"Add hidden chat" = "Gizli sohbet ekle"; +"Add locked chat" = "Kilitli sohbet ekle"; +"Allow Instants screenshots" = "Instants ekran görüntülerine izin ver"; +"Always ask when opening again" = "Tekrar açarken her zaman sor"; +"Ask again after Instagram returns" = "Instagram geri döndükten sonra tekrar sor"; +"Auto-relock after idle" = "Boşta kaldıktan sonra otomatik yeniden kilitle"; +"Balanced default" = "Dengeli varsayılan"; +"Best for sensitive sections" = "Hassas bölümler için en iyisi"; +"Biometric" = "Biyometrik"; +"Change passcode" = "Şifreyi değiştir"; +"Chat hidden" = "Sohbet gizlendi"; +"Chat locked" = "Sohbet kilitlendi"; +"Chat unlocked" = "Sohbet kilidi açıldı"; +"Choose a code you'll remember." = "Hatırlayacağınız bir kod seçin."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "Bu bölümün boştayken ne kadar süre kilitsiz kalacağını seçin. Asla, Instagram kapanana veya arka plana geçene kadar kilitsiz tutar."; +"Confirm current passcode" = "Mevcut şifreyi onayla"; +"Confirm passcode" = "Şifreyi onayla"; +"Could not save passcode" = "Şifre kaydedilemedi"; +"Create passcode" = "Şifre oluştur"; +"Derivation failed" = "Türetme başarısız"; +"DM inbox" = "DM gelen kutusu"; +"Don't share unlock" = "Kilit açmayı paylaşma"; +"Each target has its own enable, timeout, and re-lock configuration." = "Her hedefin kendi etkinleştirme, zaman aşımı ve yeniden kilitleme yapılandırması vardır."; +"Enable lock" = "Kilidi etkinleştir"; +"Enter passcode" = "Şifreyi gir"; +"Enter value" = "Değer gir"; +"Enter your current passcode to change it" = "Değiştirmek için mevcut şifrenizi girin"; +"Enter your current passcode to reset it" = "Sıfırlamak için mevcut parolanızı girin"; +"Enter your passcode to continue" = "Devam etmek için şifrenizi girin"; +"every use" = "her kullanımda"; +"Every use" = "Her kullanımda"; +"Hidden chats" = "Gizli sohbetler"; +"Hide chat" = "Sohbeti gizle"; +"Hide message preview" = "Mesaj önizlemesini gizle"; +"Hide this chat?" = "Bu sohbet gizlensin mi?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "RyukGram arayüzünü ekran görüntülerinden/kayıtlardan gizler ve Instagram’ın özellik bazlı ekran görüntüsü uyarılarını atlatır."; +"Idle timeout" = "Boşta kalma süresi"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "Bu hedefi ayrı olarak kilitli tut"; +"Less frequent prompts" = "Daha seyrek istemler"; +"Lock" = "Kilitle"; +"Lock chat" = "Sohbeti kilitle"; +"Lock every time" = "Her seferinde kilitle"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "Her seferinde kilitle, boşta zaman aşımını geçersiz kılar. Kilit açmayı paylaşma, bu hedefi ayrı tutar."; +"Lock targets" = "Kilit hedefleri"; +"Lock the tweak" = "Tweak’i kilitle"; +"Lock this chat" = "Bu sohbeti kilitle"; +"Lock this chat?" = "Bu sohbet kilitlensin mi?"; +"Lock with passcode" = "Şifre ile kilitle"; +"Locked chats" = "Kilitli sohbetler"; +"Long-press a chat to lock it individually" = "Bireysel olarak kilitlemek için bir sohbete uzun basın"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "Bir DM sohbetine uzun basın → Sohbeti gizle’ye dokunarak buraya ekleyin. Gizli sohbetler bu listeden çıkarana kadar gelen kutusundan filtrelenir."; +"Long-press a DM to add" = "Eklemek için bir DM’ye uzun basın"; +"Longest idle window" = "En uzun boşta süresi"; +"Manage locked chats" = "Kilitli sohbetleri yönet"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "Ana anahtar. Hedef başına yapılandırmayı kaybetmeden tüm kilit hedeflerini devre dışı bırakmak için kapatın."; +"Never" = "Asla"; +"No passcode set" = "Şifre ayarlanmadı"; +"Nothing here yet." = "Burada henüz bir şey yok."; +"Off" = "Kapalı"; +"On" = "Açık"; +"On — %@" = "Açık — %@"; +"On — %@ + %ld more" = "Açık — %@ + %ld diğer"; +"On — no targets enabled" = "Açık — etkin hedef yok"; +"Passcode" = "Şifre"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "Şifre + biyometrik. Tweak ayarları penceresini, galeriyi, silinen mesajlar günlüğünü, bireysel sohbetleri ve tüm uygulamayı kilitler."; +"Passcode changed" = "Şifre değiştirildi"; +"Passcode reset" = "Şifre sıfırlandı"; +"Passcode set" = "Şifre ayarlandı"; +"Passcode too short" = "Parola çok kısa"; +"Passcodes did not match — try again" = "Şifreler eşleşmedi — tekrar deneyin"; +"Per-chat locks" = "Sohbet başına kilitler"; +"Prompt before Instagram opens" = "Instagram açılmadan önce sor"; +"Prompt before Profile Analyzer opens" = "Profil Analizörü açılmadan önce sor"; +"Prompt before the deleted-messages log opens" = "Silinen mesajlar günlüğü açılmadan önce sor"; +"Prompt before the gallery opens" = "Galeri açılmadan önce sor"; +"Prompt before tweak settings open" = "Tweak ayarları açılmadan önce sor"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "Doğrudan mesajlara açılış dahil, DM gelen kutusuna her girişte sor"; +"Re-enter the same passcode" = "Aynı şifreyi tekrar gir"; +"Re-lock on background" = "Arka planda yeniden kilitle"; +"re-lock on bg" = "arka planda yeniden kilitle"; +"Recently hidden" = "Son gizlenenler"; +"Recently locked" = "Son kilitlenenler"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "Ekran görüntüleri, ekran kayıtları ve yansıtmada RyukGram düğmelerini gizler"; +"Remove screenshot alert" = "Ekran görüntüsü uyarısını kaldır"; +"Replace inbox preview with • • •" = "Gelen kutusu önizlemesini • • • ile değiştir"; +"Require passcode for this section" = "Bu bölüm için parola iste"; +"Requires your current passcode" = "Mevcut parolanızı gerektirir"; +"Reset passcode" = "Şifreyi sıfırla"; +"Reset passcode?" = "Şifre sıfırlansın mı?"; +"Screenshots & capture" = "Ekran görüntüsü ve kayıt"; +"Security & Privacy" = "Güvenlik ve gizlilik"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "Ayarları, Galeriyi, silinen mesajlar günlüğünü, bireysel sohbetleri, DM gelen kutusunu, Profil Analizörü veya Instagram’ın kendisini kilitlemek için bir şifre ayarlayın."; +"Set passcode" = "Şifre ayarla"; +"Short idle window" = "Kısa boşta süresi"; +"Stay unlocked until app close or background" = "Uygulama kapanana veya arka plana geçene kadar kilitsiz kal"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "IG'nin \"X ekran görüntüsü aldı\" bildirimini hikayeler, DM'ler ve kaybolan medya genelinde gizle"; +"Tap Unlock" = "Kilidi aç’a dokun"; +"Tap Unlock or enter your passcode" = "Kilidi aç’a dokun veya şifreni gir"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "Bu, şifreyi siler, tüm kilit hedeflerini devre dışı bırakır ve tüm sohbetlerin kilidini açar. Galeri ve silinen mesaj verileri etkilenmez."; +"Thread %@" = "Sohbet %@"; +"Tweak settings" = "Tweak ayarları"; +"Unlock" = "Kilidi aç"; +"Unlock %@" = "%@ kilidini aç"; +"Unlock chat" = "Sohbet kilidini aç"; +"Unlock Instagram" = "Instagram kilidini aç"; +"Unlock this chat" = "Bu sohbetin kilidini aç"; +"Use %@" = "%@ kullan"; +"Username (looks up the DM thread) or raw thread ID" = "Kullanıcı adı (DM sohbetini bulur) veya ham sohbet kimliği"; +"Username or thread ID" = "Kullanıcı adı veya sohbet kimliği"; +"Wrong passcode" = "Yanlış şifre"; +"Wrong passcode • %ld attempts" = "Yanlış parola • %ld deneme"; + +////////////////////////////////////////////////////////////////////////////// +// BACKUP & RESTORE // +// Settings → Backup & Restore tab // +////////////////////////////////////////////////////////////////////////////// + +"%lu account(s)" = "%lu hesap"; +"%lu account(s) · %lu image(s) · %@" = "%lu hesap · %lu görsel · %@"; +"%lu file(s) · %@" = "%lu dosya · %@"; +"%lu preferences" = "%lu tercih"; +"(none)" = "(yok)"; +"Apply backup?" = "Yedek uygulansın mı?"; +"Applying backup…" = "Yedek uygulanıyor…"; +"archive error" = "arşiv hatası"; +"Archived snapshots" = "Arşivlenen anlık görüntüler"; +"Backup & Restore" = "Yedekle ve Geri Yükle"; +"Backup exported" = "Yedek dışa aktarıldı"; +"Backup failed" = "Yedekleme başarısız"; +"Backup has no importable sections." = "Yedekte içe aktarılabilir bölüm yok."; +"Chat & story filters" = "Sohbet ve hikaye filtreleri"; +"Chat backgrounds" = "Sohbet arka planları"; +"Clear selected data" = "Seçili verileri temizle"; +"Corrupt entry path." = "Bozuk giriş yolu."; +"Could not decompress archive." = "Arşiv açılamadı."; +"Could not open archive." = "Arşiv açılamadı."; +"Could not open staging file." = "Hazırlama dosyası açılamadı."; +"Could not read the backup archive." = "Yedek arşivi okunamadı."; +"Could not write archive." = "Arşiv yazılamadı."; +"Could not write backup file." = "Yedek dosyası yazılamadı."; +"Could not write extracted file." = "Çıkarılan dosya yazılamadı."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "İşaretli öğeler için mevcut veriler değiştirilecek. Her şeyin etkili olması için yeniden başlatma gerekebilir."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "RyukGram verilerini dışa veya içe aktarın — ayarlar, hesap başına filtreler, gizli ve kilitli sohbetler, Profil Analizcisi, galeri, sohbet arka planları ve silinen mesajlar. Her sayfada herhangi bir kombinasyonu seçin. Ayarlar düz bir JSON dosyası olarak kalır; medya içeren paketler sıkıştırılmış bir .ryukbak olarak dışa aktarılır."; +"Hidden & locked chats" = "Gizli ve kilitli sohbetler"; +"Import" = "İçe aktar"; +"Inspect the full manifest" = "Tam manifesti incele"; +"Load a .json or .ryukbak backup" = "Bir .json veya .ryukbak yedeği yükle"; +"Not a RyukGram backup archive." = "RyukGram yedek arşivi değil."; +"PK %@" = "PK %@"; +"Preparing backup…" = "Yedek hazırlanıyor…"; +"Reading backup…" = "Yedek okunuyor…"; +"Save settings or a full backup" = "Ayarları veya tam yedeği kaydet"; +"Tick what to apply. Rows not in this backup are hidden." = "Neyin uygulanacağını işaretleyin. Bu yedekte olmayan satırlar gizlidir."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "Neyin dahil edileceğini işaretleyin. İncelemek için bir satıra dokunun. Galeri, sohbet arka planları veya silinen mesajları eklemek sıkıştırılmış bir .ryukbak paketi oluşturur."; +"Truncated entry data." = "Kesik giriş verisi."; +"Truncated entry length." = "Kesik giriş uzunluğu."; +"Truncated entry path." = "Kesik giriş yolu."; +"Unsafe entry path." = "Güvensiz giriş yolu."; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED // +// Settings → Advanced tab // +////////////////////////////////////////////////////////////////////////////// + +"Advanced" = "Gelişmiş"; +"Auto-clear cache" = "Önbelleği otomatik temizle"; +"Automatically opens settings when the app launches" = "Uygulama açıldığında ayarları otomatik açar"; +"Cache" = "Önbellek"; +"Cache cleared" = "Önbellek temizlendi"; +"Calculating cache size…" = "Önbellek boyutu hesaplanıyor…"; +"Clear" = "Temizle"; +"Clear cache" = "Önbelleği temizle"; +"Clear cache (%@)" = "Önbelleği temizle (%@)"; +"Clearing cache…" = "Önbellek temizleniyor…"; +"Clearing still scans on demand." = "Temizleme yine de gerektiğinde tarama yapar."; +"Daily" = "Günlük"; +"Disable safe mode" = "Güvenli modu kapat"; +"Enable tweak settings quick-access" = "Tweak ayarlarına hızlı erişimi etkinleştir"; +"Fix duplicate notifications" = "Yinelenen bildirimleri düzelt"; +"Free %@ of Instagram cache." = "Instagram önbelleğinden %@ boşalt."; +"Freed %@" = "%@ boşaltıldı"; +"Hold on the home tab to open RyukGram settings" = "RyukGram ayarlarını açmak için ana sayfa sekmesine basılı tutun"; +"Monthly" = "Aylık"; +"Nothing to clear" = "Temizlenecek bir şey yok"; +"Off skips the size scan when Advanced opens." = "Kapalıyken Gelişmiş açıldığında boyut taraması atlanır."; +"Pause playback when opening settings" = "Ayarlar açılırken oynatmayı duraklat"; +"Always show what's new" = "Yenilikleri her zaman göster"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "Mavi noktayı görüntüledikten sonra kaldırmak yerine her yeni özellikte tut"; +"Preserve messages database" = "Mesaj veritabanını koru"; +"Pauses any playing video/audio when settings opens" = "Ayarlar açıldığında oynayan video/sesi duraklatır"; +"Prevents Instagram from resetting settings after crashes (at your own risk)" = "Çökmelerden sonra Instagram'ın ayarları sıfırlamasını engeller (risk size aittir)"; +"Prevents two banners for the same message when IG is in the foreground" = "IG ön plandayken aynı mesaj için iki bildirimin gösterilmesini önler"; +"Remove Instagram's cached images, videos, and temporary files." = "Instagram'ın önbelleğe alınmış görsellerini, videolarını ve geçici dosyalarını kaldırır."; +"Reset onboarding state" = "İlk kullanım durumunu sıfırla"; +"Run a silent cache clear on launch when the interval has elapsed." = "Aralık dolduğunda açılışta sessiz önbellek temizliği çalıştırır."; +"Show cache size" = "Önbellek boyutunu göster"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "Temizlik sırasında mesaj veritabanını atla — DM'leri, taslakları ve kayıtlı mesajları korur."; +"Show tweak settings on app launch" = "Uygulama açılışında tweak ayarlarını göster"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "Bildirim uzantısı da bildirimi iletirken IG'nin uygulama içinde sıraya aldığı ikinci bildirimi bastırır."; +"Weekly" = "Haftalık"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED EXPERIMENTAL // +// Settings → Advanced → Advanced experimental features // +////////////////////////////////////////////////////////////////////////////// + +"Actions" = "Eylemler"; +"Advanced experimental features" = "Gelişmiş deneysel özellikler"; +"All experimental toggles will be turned off. Instagram will restart." = "Tüm deneysel anahtarlar kapatılacak. Instagram yeniden başlatılacak."; +"Direct Notes — Audio reply" = "Direct Notes — Sesli yanıt"; +"Direct Notes — Avatar reply" = "Direct Notes — Avatar yanıtı"; +"Direct Notes — Friend Map" = "Direct Notes — Arkadaş Haritası"; +"Direct Notes — GIFs & stickers reply" = "Direct Notes — GIF ve çıkartma yanıtı"; +"Direct Notes — Photo reply" = "Direct Notes — Fotoğraf yanıtı"; +"Disabled after repeated crashes." = "Tekrarlanan çökmelerden sonra devre dışı bırakıldı."; +"Enables GIF/sticker replies" = "GIF/çıkartma yanıtlarını etkinleştirir"; +"Enables photo replies" = "Fotoğraf yanıtlarını etkinleştirir"; +"Enables the audio-note reply type" = "Sesli not yanıt türünü etkinleştirir"; +"Enables the avatar reply type" = "Avatar yanıt türünü etkinleştirir"; +"Experimental flags reset" = "Deneysel bayraklar sıfırlandı"; +"Flip what you want on, then tap Apply to restart. Some flags may not work on every account or IG version. Flags auto-reset if IG crashes on launch 3 times." = "Açmak istediklerinizi etkinleştirin, ardından yeniden başlatmak için Uygula'ya dokunun. Bazı bayraklar her hesapta veya IG sürümünde çalışmayabilir. IG açılışta 3 kez çökerse bayraklar otomatik sıfırlanır."; +"Forces Prism-gated experiments on" = "Prism ile kısıtlanan deneyleri açmaya zorlar"; +"Forces the Homecoming home surface / nav on" = "Homecoming ana yüzeyini/gezinmesini açmaya zorlar"; +"Forces the QuickSnap / Instants surface on in feed, inbox, stories, and notes tray" = "QuickSnap / Instants yüzeyini akışta, gelen kutusunda, hikayelerde ve notlar tepsisinde açmaya zorlar"; +"Got it" = "Anladım"; +"Heads up" = "Dikkat"; +"Hidden Instagram experiments" = "Gizli Instagram deneyleri"; +"Hidden Instagram experiments (in Advanced)" = "Gizli Instagram deneyleri (Gelişmiş içinde)"; +"Homecoming" = "Eve dönüş"; +"Notes & QuickSnap" = "Notlar ve QuickSnap"; +"Prism design system" = "Prism tasarım sistemi"; +"QuickSnap (Instants)" = "QuickSnap (Anlık)"; +"Reset all experimental flags" = "Tüm deneysel bayrakları sıfırla"; +"Reset experimental flags?" = "Deneysel bayraklar sıfırlansın mı?"; +"Restart Instagram to apply changes" = "Değişiklikleri uygulamak için Instagram'ı yeniden başlatın"; +"Shows the friend map entry in Direct Notes" = "Direct Notes içinde arkadaş haritası girişini gösterir"; +"Surfaces" = "Yüzeyler"; +"These toggles flip hidden Instagram experiments on. Some features may not work on every account or IG version. If IG keeps crashing on launch, the flags auto-reset after 3 failed starts." = "Bu anahtarlar gizli Instagram deneylerini açar. Bazı özellikler her hesapta veya IG sürümünde çalışmayabilir. IG açılışta çökmeye devam ederse bayraklar 3 başarısız başlatmadan sonra otomatik sıfırlanır."; +"Toggle hidden Instagram experiments. Some may not work on every account or IG version." = "Gizli Instagram deneylerini açıp kapatın. Bazıları her hesapta veya IG sürümünde çalışmayabilir."; +"Turn every experimental toggle off" = "Tüm deneysel anahtarları kapat"; + +////////////////////////////////////////////////////////////////////////////// +// DEBUG // +// Settings → Debug tab // +////////////////////////////////////////////////////////////////////////////// + +"Button Cell" = "Buton hücresi"; +"Change the value on the right" = "Sağdaki değeri değiştir"; +"Could not delete: %@" = "Silinemedi: %@"; +"Debug" = "Hata ayıklama"; +"Delete an imported override and fall back to the shipped strings" = "İçe aktarılan geçersiz kılmayı sil ve paketle gelen metinlere geri dön"; +"Deleted %@ override. Restart to apply." = "%@ geçersiz kılma silindi. Uygulamak için yeniden başlatın."; +"Enable FLEX gesture" = "FLEX hareketini etkinleştir"; +"Export strings" = "Metinleri dışa aktar"; +"Hold 5 fingers on the screen to open FLEX" = "FLEX'i açmak için ekranda 5 parmağınızı basılı tutun"; +"I have %@%@" = "Bende %@%@ var"; +"Import a .strings file for a language" = "Bir dil için .strings dosyası içe aktar"; +"Import a .strings file to update a translation. Pick a language, select the file, restart." = "Bir çeviriyi güncellemek için .strings dosyası içe aktarın. Bir dil seçin, dosyayı seçin, yeniden başlatın."; +"Link Cell" = "Bağlantı hücresi"; +"Localization" = "Yerelleştirme"; +"Menu Cell" = "Menü hücresi"; +"Navigation Cell" = "Gezinme hücresi"; +"No imported localization files to reset." = "Sıfırlanacak içe aktarılmış yerelleştirme dosyası yok."; +"No overrides" = "Geçersiz kılma yok"; +"Open FLEX on app focus" = "Uygulama odaklandığında FLEX'i aç"; +"Open FLEX on app launch" = "Uygulama açılışında FLEX'i aç"; +"Opens FLEX when the app is focused" = "Uygulama odaklandığında FLEX'i açar"; +"Opens FLEX when the app launches" = "Uygulama açıldığında FLEX'i açar"; +"Pick a language to delete the imported file" = "İçe aktarılan dosyayı silmek için bir dil seçin"; +"Pick a language to export" = "Dışa aktarmak için bir dil seçin"; +"Reset localization" = "Yerelleştirmeyi sıfırla"; +"Pick a language and share its .strings file" = ".strings dosyasını paylaşmak için bir dil seçin"; +"Static Cell" = "Statik hücre"; +"Stepper cell" = "Adımlayıcı hücre"; +"Switch Cell" = "Anahtar hücresi"; +"Switch Cell (Restart)" = "Anahtar hücresi (Yeniden başlatma)"; +"Tap the switch" = "Anahtara dokun"; +"These features rely on hidden Instagram flags and may not work on all accounts or versions." = "Bu özellikler gizli Instagram bayraklarına dayanır ve tüm hesaplarda veya sürümlerde çalışmayabilir."; +"Update localization file" = "Yerelleştirme dosyasını güncelle"; +"Using icon" = "Simge kullanılıyor"; +"Using image" = "Görsel kullanılıyor"; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOADS & MEDIA ACTIONS // +// Action button menus, download/share/copy toasts, quality picker pills. // +////////////////////////////////////////////////////////////////////////////// + +"%@ settings" = "%@ ayarları"; +"%lu items" = "%lu öğe"; +"Cancelled" = "İptal edildi"; +"Carousel" = "Galeri"; +"Carousel · %lu items" = "Galeri · %lu öğe"; +"Copied %lu URLs" = "%lu URL kopyalandı"; +"Copied caption" = "Açıklama kopyalandı"; +"Copied download URL" = "İndirme URL'si kopyalandı"; +"Copied quality info" = "Kalite bilgisi kopyalandı"; +"Copied video URL" = "Video URL'si kopyalandı"; +"Copy all URLs" = "Tüm URL'leri kopyala"; +"Copy caption" = "Açıklamayı kopyala"; +"Copy download URL" = "İndirme URL'sini kopyala"; +"Could not extract any URLs" = "Hiç URL çıkarılamadı"; +"Could not extract audio URL" = "Ses URL'si çıkarılamadı"; +"Could not extract media URL" = "Medya URL'si çıkarılamadı"; +"Could not extract photo URL" = "Fotoğraf URL'si çıkarılamadı"; +"Could not extract video URL" = "Video URL'si çıkarılamadı"; +"Done" = "Tamamlandı"; +"Download all stories and share?" = "Tüm hikayeler indirilip paylaşılsın mı?"; +"Download all to Photos" = "Tümünü Fotoğraflar'a indir"; +"Download and share all" = "Tümünü indir ve paylaş"; +"Download failed" = "İndirme başarısız"; +"Downloaded %lu items" = "%lu öğe indirildi"; +"Downloading audio…" = "Ses indiriliyor…"; +"Failed to save" = "Kaydedilemedi"; +"File" = "Dosya"; +"HD" = "HD"; +"HD download complete" = "HD indirme tamamlandı"; +"HD video" = "HD video"; +"Mute audio" = "Sesi kapat"; +"No caption on this post" = "Bu gönderide açıklama yok"; +"No carousel children" = "Carousel öğesi yok"; +"No cover image" = "Kapak görseli yok"; +"No media" = "Medya yok"; +"No media to expand" = "Genişletilecek medya yok"; +"No media to show" = "Gösterilecek medya yok"; +"No media URL" = "Medya URL'si yok"; +"No URLs" = "URL yok"; +"No URLs found" = "URL bulunamadı"; +"No video URL" = "Video URL'si yok"; +"Not a carousel" = "Carousel değil"; +"Nothing to share" = "Paylaşılacak bir şey yok"; +"Opening creator…" = "Oluşturucu açılıyor..."; +"Photo library access denied" = "Fotoğraf arşivi erişimi reddedildi"; +"Photos access denied" = "Fotoğraflar erişimi reddedildi"; +"Preparing repost…" = "Yeniden paylaşım hazırlanıyor..."; +"Raw image" = "Ham görsel"; +"Repost" = "Yeniden paylaş"; +"Repost unavailable" = "Yeniden paylaşım kullanılamıyor"; +"Save failed" = "Kaydetme başarısız"; +"Saved %lu items" = "%lu öğe kaydedildi"; +"Saved to Photos" = "Fotoğraflar'a kaydedildi"; +"Saved to RyukGram" = "RyukGram'a kaydedildi"; +"Saving to Photos" = "Fotoğraflar'a kaydediliyor"; +"Saving…" = "Kaydediliyor..."; +"Unmute audio" = "Sesi aç"; +"Video · %@" = "Video · %@"; +"View cover" = "Kapağı görüntüle"; +"View mentions" = "Bahsetmeleri görüntüle"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES & MESSAGES (FEATURES) // +// Buttons, menu entries, toasts and alerts shown while watching stories or // +// inside DM threads. // +////////////////////////////////////////////////////////////////////////////// + +" %lu votes · avg %.0f%% " = " %lu oy · ort %.0f%% "; +"%@ can't be converted" = "%@ dönüştürülemiyor"; +"%@ unsent a message" = "%@ bir mesajı geri aldı"; +"%@ unsent a message from %@" = "%1$@, %2$@ kişisinden gelen bir mesajı geri aldı"; +"A message was unsent" = "Bir mesaj geri alındı"; +"Add" = "Ekle"; +"Add to block list" = "Engel listesine ekle"; +"Added to block list" = "Engel listesine eklendi"; +"Added to exclude list" = "Hariç tutma listesine eklendi"; +"Audio not loaded yet. Play the message first and try again." = "Ses henüz yüklenmedi. Önce mesajı oynatıp tekrar deneyin."; +"Audio sent" = "Ses gönderildi"; +"Audio URL not available" = "Ses URL'si kullanılamıyor"; +"Audio/Video from Files" = "Dosyalardan Ses/Video"; +"Blocked" = "Engellendi"; +"Cancel" = "İptal"; +"Clear preserved messages?" = "Korunan mesajlar temizlensin mi?"; +"Converting…" = "Dönüştürülüyor..."; +"Copy link" = "Bağlantıyı kopyala"; +"Copy text" = "Metni kopyala"; +"Could not copy selected video" = "Seçili video kopyalanamadı"; +"Could not find media" = "Medya bulunamadı"; +"Could not find story media" = "Hikaye medyası bulunamadı"; +"Could not get audio data. Try again after refreshing the chat." = "Ses verisi alınamadı. Sohbeti yeniledikten sonra tekrar deneyin."; +"Disable read receipts" = "Okundu bilgilerini kapat"; +"Disappearing media" = "Kaybolan medya"; +"Download audio" = "Sesi indir"; +"Enable read receipts" = "Okundu bilgilerini etkinleştir"; +"Error: %@" = "Hata: %@"; +"Exclude chat" = "Sohbeti hariç tut"; +"Exclude from seen" = "Görüldüden hariç tut"; +"Exclude story seen" = "Hikaye görüldüden hariç tut"; +"Excluded" = "Hariç tutuldu"; +"Extracting audio…" = "Ses çıkarılıyor..."; +"FFmpeg conversion failed" = "FFmpeg dönüştürme başarısız oldu"; +"File sending not supported" = "Dosya gönderme desteklenmiyor"; +"Follow" = "Takip et"; +"Following" = "Takip ediliyor"; +"Format not supported without FFmpegKit" = "FFmpegKit olmadan biçim desteklenmiyor"; +"Inserts a button on disappearing media overlays" = "Kaybolan medya katmanlarına bir buton ekler"; +"Inserts a speaker button to mute/unmute disappearing media" = "Kaybolan medyanın sesini kapatmak/açmak için hoparlör butonu ekler"; +"Inserts an eye button to mark the current disappearing media as viewed" = "Mevcut kaybolan medyayı görüntülendi olarak işaretlemek için göz butonu ekler"; +"Link copied" = "Bağlantı kopyalandı"; +"Mark as viewed" = "Görüntülendi olarak işaretle"; +"Mark messages as seen" = "Mesajları görüldü işaretle"; +"Mark seen" = "Görüldü işaretle"; +"Marked as viewed" = "Görüntülendi olarak işaretlendi"; +"Marked messages as seen" = "Mesajlar görüldü işaretlendi"; +"Mentions" = "Bahsetmeler"; +"Message from %@ was unsent" = "%@ kişisinden gelen mesaj geri alındı"; +"Message sender not found" = "Mesaj gönderen bulunamadı"; +"Messages settings" = "Mesaj ayarları"; +"Mute story audio" = "Hikaye sesini kapat"; +"no audio track could be read" = "ses kanalı okunamadı"; +"No audio URL found. Try again after refreshing the chat." = "Ses URL'si bulunamadı. Sohbeti yeniledikten sonra tekrar deneyin."; +"No mentions in this story" = "Bu hikayede bahsetme yok"; +"No thread key" = "Konu anahtarı yok"; +"No video selected" = "Video seçilmedi"; +"No voice send method found" = "Ses gönderme yöntemi bulunamadı"; +"Note has no downloadable content" = "Notta indirilebilir içerik yok"; +"Note text copied" = "Not metni kopyalandı"; +"Open GitHub" = "GitHub'ı aç"; +"Pick audio or video" = "Ses veya video seç"; +"Read receipts disabled" = "Okundu bilgileri kapatıldı"; +"Read receipts enabled" = "Okundu bilgileri etkinleştirildi"; +"Read receipts will be blocked for this chat." = "Bu sohbet için okundu bilgileri engellenecek."; +"Read receipts will no longer be blocked for this chat." = "Bu sohbet için okundu bilgileri artık engellenmeyecek."; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "DM sekmesini yenilemek %lu korunan mesajı silecek. Bu geri alınamaz."; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "DM sekmesini yenilemek %lu korunan mesajı silecek. Bu geri alınamaz."; +"Remove" = "Kaldır"; +"Remove from block list" = "Engel listesinden kaldır"; +"Remove from exclude list" = "Hariç tutma listesinden kaldır"; +"Removed" = "Kaldırıldı"; +"Removed from list" = "Listeden kaldırıldı"; +"Save GIF" = "GIF'i kaydet"; +"Selection too short (min 0.5s)" = "Seçim çok kısa (min. 0,5 sn)"; +"Send anyway" = "Yine de gönder"; +"Send Audio" = "Ses Gönder"; +"Send failed: %@" = "Gönderme başarısız: %@"; +"Send File" = "Dosya Gönder"; +"Send service not found" = "Gönderme servisi bulunamadı"; +"Show audio toggle" = "Ses anahtarını göster"; +"Show mark-as-viewed button" = "Görüntülendi işaretleme butonunu göster"; +"Story read receipts disabled" = "Hikaye okundu bilgileri kapatıldı"; +"Story read receipts enabled" = "Hikaye okundu bilgileri etkinleştirildi"; +"This chat will resume normal read-receipt behavior." = "Bu sohbet normal okundu bilgisi davranışına dönecek."; +"This file" = "Bu dosya"; +"Total: %@" = "Toplam: %@"; +"Un-exclude chat" = "Sohbeti hariç tutmadan çıkar"; +"Un-exclude story seen" = "Hikaye görüldü hariç tutmadan çıkar"; +"Un-excluded" = "Hariç tutmadan çıkarıldı"; +"Unblocked" = "Engel kaldırıldı"; +"Unlimited replay enabled" = "Sınırsız tekrar oynatma etkin"; +"Unmute story audio" = "Hikaye sesini aç"; +"Unsent" = "Geri alındı"; +"Upload Audio" = "Ses Yükle"; +"VC not found" = "VC bulunamadı"; +"Video from Library" = "Arşivden video"; +"Visual messages will expire" = "Görsel mesajların süresi dolacak"; +"Visual messages: expiring" = "Görsel mesajlar: süresi doluyor"; +"Visual messages: unlimited replay" = "Görsel mesajlar: sınırsız tekrar"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "Arka Plan Ekle"; +"Add Chat Background" = "Sohbet Arka Planı Ekle"; +"Adds your own image backgrounds to Instagram chats" = "Instagram sohbetlerine kendi görsel arka planlarınızı ekler"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "Etkinleştirdikten sonra herhangi bir sohbeti açın, tema düğmesine dokunun, ardından sağ üstteki fotoğraf simgesine dokunun."; +"Blur" = "Bulanıklık"; +"Browse chats" = "Sohbetlere göz at"; +"Browse chats (%ld)" = "Sohbetlere göz at (%ld)"; +"Change Background" = "Arka Planı Değiştir"; +"Change default" = "Varsayılanı değiştir"; +"Chat Backgrounds" = "Sohbet Arka Planları"; +"Choose an image used when no chat override exists" = "Sohbet için özel ayar yokken kullanılacak bir görsel seçin"; +"Choose Image" = "Görsel Seç"; +"Clear default" = "Varsayılanı temizle"; +"Couldn't import image" = "Görsel içe aktarılamadı"; +"Custom Chat Background" = "Özel Sohbet Arka Planı"; +"Default background" = "Varsayılan arka plan"; +"Delete library images, default background, and chat overrides" = "Kitaplık görsellerini, varsayılan arka planı ve sohbet özel ayarlarını sil"; +"Dim in dark mode" = "Karanlık modda karart"; +"Edit image settings" = "Görsel ayarlarını düzenle"; +"Enable custom backgrounds" = "Özel arka planları etkinleştir"; +"Enter a username, chat name, or thread ID." = "Bir kullanıcı adı, sohbet adı veya thread ID girin."; +"Group" = "Grup"; +"Image Settings" = "Görsel Ayarları"; +"Library" = "Kitaplık"; +"Library, default, and per-chat overrides will be deleted." = "Kitaplık, varsayılan ve sohbet başına özel ayarlar silinecek."; +"No Custom" = "Özel Yok"; +"Opacity" = "Opaklık"; +"Photo Library" = "Fotoğraf Kitaplığı"; +"Pick default" = "Varsayılanı seç"; +"Pinch + drag to position" = "Konumlandırmak için sıkıştır + sürükle"; +"Quit and reopen Instagram for the change to take effect." = "Değişikliğin etkili olması için Instagram'dan çıkıp yeniden açın."; +"Recently set" = "Yakın zamanda ayarlandı"; +"Remove the global fallback background" = "Genel yedek arka planı kaldır"; +"Replace the default background image" = "Varsayılan arka plan görselini değiştir"; +"Reset all backgrounds" = "Tüm arka planları sıfırla"; +"Reset all backgrounds?" = "Tüm arka planlar sıfırlansın mı?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "Sıfırlama opaklığı 1.0, bulanıklığı 0, kararmayı 0 yapar."; +"RyukGram Gallery" = "RyukGram Galerisi"; +"Search username, name, or thread ID" = "Kullanıcı adı, ad veya thread ID ara"; +"Set as default" = "Varsayılan olarak ayarla"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "Eklemek için artıya dokunun. Düzenlemek, varsayılan yapmak veya silmek için bir arka plana dokunun."; +"This Chat Background" = "Bu Sohbet Arka Planı"; +"Thread ID" = "Sohbet kimliği"; +"Used only when a chat does not have its own custom background." = "Yalnızca bir sohbetin kendi özel arka planı olmadığında kullanılır."; +"View and manage chats with custom backgrounds" = "Özel arka planlı sohbetleri görüntüleyin ve yönetin"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL FEATURES // +// Strings inside per-feature overlays: fake location, color picker, notes // +// customization, profile copy, etc. // +////////////////////////////////////////////////////////////////////////////// + +"Add location" = "Konum ekle"; +"Add preset" = "Hazır ayar ekle"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "Yukarıdaki her şeyi etkiler. Kapalıyken RyukGram'ın teması ve yüzey geçersiz kılmaları yalnızca iOS karanlık moddayken uygulanır — aydınlık mod olduğu gibi kalır."; +"Apply & restart" = "Uygula ve yeniden başlat"; +"Background" = "Arka plan"; +"Behavior" = "Davranış"; +"Change location" = "Konumu değiştir"; +"Clipboard is not an Instagram URL" = "Pano bir Instagram URL'si değil"; +"Comments hidden" = "Yorumlar gizlendi"; +"Comments shown" = "Yorumlar gösterildi"; +"Copied text to clipboard" = "Metin panoya kopyalandı"; +"Copy" = "Kopyala"; +"Copy bio" = "Biyografiyi kopyala"; +"Copy name" = "Adı kopyala"; +"Could not find cover image" = "Kapak görseli bulunamadı"; +"Current: %@" = "Geçerli: %@"; +"Dark" = "Karanlık"; +"Disable" = "Kapat"; +"Download GIF" = "GIF indir"; +"Dropped pin" = "Bırakılan iğne"; +"Emoji" = "Emoji"; +"Enable" = "Etkinleştir"; +"Enable Location Services for Instagram in Settings to use your current location." = "Geçerli konumunuzu kullanmak için Ayarlar'da Instagram için Konum Servisleri'ni etkinleştirin."; +"Enter emoji" = "Emoji girin"; +"Fake location" = "Sahte konum"; +"Force theme" = "Temayı zorla uygula"; +"Keyboard theme" = "Klavye teması"; +"Light" = "Açık"; +"Location access denied" = "Konum erişimi reddedildi"; +"Location Services off" = "Konum Servisleri kapalı"; +"Name" = "Ad"; +"Nothing to copy" = "Kopyalanacak bir şey yok"; +"Off, Light, Dark, or OLED" = "Kapalı, Açık, Koyu veya OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "OLED sohbet teması"; +"Open Settings" = "Ayarları Aç"; +"Optional per-surface overrides. Each one is independent of the theme above." = "İsteğe bağlı yüzey başına geçersiz kılmalar. Her biri yukarıdaki temadan bağımsızdır."; +"Override iOS appearance regardless of system mode" = "Sistem modundan bağımsız olarak iOS görünümünü geçersiz kıl"; +"Override the keyboard appearance when typing" = "Yazarken klavye görünümünü geçersiz kıl"; +"Pick location" = "Konum seç"; +"Pure black DM thread + incoming bubbles" = "Saf siyah DM dizisi + gelen mesaj baloncukları"; +"Reset theme" = "Temayı sıfırla"; +"Restart Instagram to apply your theme changes" = "Tema değişikliklerinizi uygulamak için Instagram'ı yeniden başlatın"; +"Save" = "Kaydet"; +"Save preset" = "Hazır ayarı kaydet"; +"Saved locations" = "Kayıtlı konumlar"; +"Select color" = "Renk seç"; +"Set location" = "Konumu ayarla"; +"The theme RyukGram applies to Instagram." = "RyukGram'ın Instagram'a uyguladığı tema."; +"Theme" = "Tema"; +"Turn every theme option off and restart" = "Tüm tema seçeneklerini kapat ve yeniden başlat"; +"Turn Location Services on in Settings → Privacy to use your current location." = "Geçerli konumunuzu kullanmak için Ayarlar → Gizlilik içinde Konum Servisleri'ni açın."; +"Type an emoji to use as the note bubble icon." = "Not balonu simgesi olarak kullanılacak emojiyi yazın."; +"View profile picture" = "Profil fotoğrafını görüntüle"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE ANALYZER // +// Settings → Profile Analyzer // +////////////////////////////////////////////////////////////////////////////// + +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu hesap? Hız sınırlarından kaçınmak için ilk %ld işlenecek."; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu hesap? Bu, her biri arasında kısa bir duraklamayla sırayla çalışır."; +"%@ followers · %@ following" = "%@ takipçi · %@ takip"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "%d g önce"; +"%dh ago" = "%d sa önce"; +"%dm ago" = "%d dk önce"; +"%lu accounts followed" = "%lu hesap takip edildi"; +"%lu accounts unfollowed" = "%lu hesabın takibi bırakıldı"; +"%lu followers · %lu following" = "%lu takipçi · %lu takip edilen"; +"%lu of %lu" = "%lu / %lu"; +"%lu saved · comparing against %@" = "%lu kaydedildi · %@ ile karşılaştırılıyor"; +"(empty)" = "(boş)"; +"(no analyzer data)" = "(analizör verisi yok)"; +"a saved snapshot" = "kaydedilmiş bir anlık görüntü"; +"About Profile Analyzer" = "Profil Analizörü hakkında"; +"All preferences (%lu)" = "Tüm tercihler (%lu)"; +"Analysis complete" = "Analiz tamamlandı"; +"Analysis failed" = "Analiz başarısız"; +"Another analysis is already running" = "Başka bir analiz zaten çalışıyor"; +"Available after your next scan" = "Bir sonraki taramanızdan sonra kullanılabilir"; +"Batch follow" = "Toplu takip"; +"Batch follow finished" = "Toplu takip tamamlandı"; +"Batch unfollow" = "Toplu takibi bırak"; +"Batch unfollow finished" = "Toplu takibi bırakma tamamlandı"; +"Categories" = "Kategoriler"; +"Clear visited profiles" = "Ziyaret edilen profilleri temizle"; +"Compare next scan against" = "Sonraki taramayı şununla karşılaştır"; +"Comparing against %@" = "%@ ile karşılaştırılıyor"; +"Continue" = "Devam"; +"Couldn't fetch profile information" = "Profil bilgileri alınamadı"; +"Delete %lu snapshots? This can't be undone." = "%lu anlık görüntü silinsin mi? Bu geri alınamaz."; +"Delete (%lu)" = "Sil (%lu)"; +"Delete snapshots" = "Anlık görüntüleri sil"; +"Delete this snapshot? This can't be undone." = "Bu anlık görüntü silinsin mi? Bu geri alınamaz."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "Her tarama, daha sonra karşılaştırabilmeniz için takipçilerinizin ve takip ettiklerinizin tam bir kopyasını kaydeder. Her şey bu cihazda kalır."; +"Export" = "Dışa aktar"; +"Fetching followers (%lu/%ld)…" = "Takipçiler alınıyor (%lu/%ld)…"; +"Fetching following (%lu/%ld)…" = "Takip edilenler alınıyor (%lu/%ld)…"; +"Fetching profile info…" = "Profil bilgisi alınıyor…"; +"File is not a valid RyukGram backup." = "Dosya geçerli bir RyukGram dışa aktarımı değil."; +"Filter" = "Filtre"; +"Filter · %lu" = "Filtre · %lu"; +"First scan: %@" = "İlk tarama: %@"; +"First scan: we collect your followers and following lists and save them locally." = "İlk tarama: takipçi ve takip edilen listelerinizi toplar ve yerelde kaydederiz."; +"Follow %lu" = "%lu kişiyi takip et"; +"Follower count exceeds %ld — analysis disabled to avoid rate limits." = "Takipçi sayısı %ld değerini aşıyor — hız sınırlarından kaçınmak için analiz devre dışı."; +"Followers" = "Takipçiler"; +"Following… %lu / %lu" = "Takip ediliyor… %lu / %lu"; +"Gained since last scan" = "Son taramadan beri kazanılan"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Dikkat: bu özellik beta aşamasındadır ve Instagram'ın özel API'sini kullanır. Arka arkaya veya yoğun takip/takip bırakma etkinliğinden hemen sonra çalıştırmak kısa süreli hız sınırını tetikleyebilir. Seyrek ve kendi riskinizle kullanın."; +"Import complete" = "İçe aktarma tamamlandı"; +"Include" = "Dahil et"; +"Keep newest" = "En yenileri sakla"; +"Keep newest snapshots" = "En yeni anlık görüntüleri sakla"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Büyük hesaplar engellenir: Instagram'ın tüm uygulamayı hız sınırına sokmasını önlemek için 13.000 takipçinin üzerinde analiz devre dışıdır."; +"Last scan: %@" = "Son tarama: %@"; +"Logs every profile you open. Stays on-device." = "Açtığınız her profili günlüğe kaydeder. Yalnızca cihazda kalır."; +"Lost followers" = "Kaybedilen takipçiler"; +"Most visited" = "En çok ziyaret edilen"; +"Mutual followers" = "Karşılıklı takipçiler"; +"Name: %@ → %@" = "Ad: %@ → %@"; +"New followers" = "Yeni takipçiler"; +"No active Instagram session found" = "Aktif Instagram oturumu bulunamadı"; +"No results" = "Sonuç yok"; +"No scan yet" = "Henüz tarama yok"; +"Not following you back" = "Sizi geri takip etmiyor"; +"Not verified only" = "Yalnızca doğrulanmamış"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "Hiçbir şey yüklenmez — her şey bu cihazda kalır ve çöp kutusu simgesinden silinebilir."; +"Nothing was applied." = "Hiçbir şey uygulanmadı."; +"OK" = "Tamam"; +"Older snapshots beyond the limit are removed automatically" = "Sınırın ötesindeki eski anlık görüntüler otomatik olarak kaldırılır"; +"Older snapshots beyond this limit are deleted on the next scan." = "Bu sınırın ötesindeki eski anlık görüntüler bir sonraki taramada silinir."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "Neyin kaldırılacağını seçin. Anlık görüntüler, tarama farklarını ve kaydedilen her anlık görüntüyü temizler; ziyaret edilen profiller, ziyaret geçmişini siler."; +"Posts" = "Gönderiler"; +"Preferences" = "Tercihler"; +"Previous scan" = "Önceki tarama"; +"Private account" = "Gizli hesap"; +"Private only" = "Yalnızca gizli"; +"Profile Analyzer" = "Profil Analizörü"; +"Profile Analyzer data" = "Profil Analizörü verileri"; +"Profile picture changed" = "Profil fotoğrafı değişti"; +"Profile updates" = "Profil güncellemeleri"; +"Profiles you've opened recently" = "Son zamanlarda açtığınız profiller"; +"Raw" = "Ham"; +"Raw JSON" = "Ham JSON"; +"Record snapshots" = "Anlık görüntü kaydet"; +"Recording" = "Kaydediliyor"; +"Request failed" = "İstek başarısız"; +"Reset analyzer data" = "Analizör verilerini sıfırla"; +"Reset complete" = "Sıfırlama tamamlandı"; +"Reset everything" = "Her şeyi sıfırla"; +"Reset selected data?" = "Seçili veriler sıfırlansın mı?"; +"Reset snapshots" = "Anlık görüntüleri sıfırla"; +"Rolling — always your last run" = "Sürekli güncel — her zaman son çalıştırmanız"; +"Run analysis" = "Analizi çalıştır"; +"Run your first analysis" = "İlk analizinizi çalıştırın"; +"Save a dated entry on every scan" = "Her taramada tarihli bir giriş kaydet"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "İkinci taramadan itibaren her tarama bir öncekiyle karşılaştırılır; böylece kazanılan/kaybedilen takipçileri, kendi takip/takip bırakma hareketlerinizi ve profil güncellemelerini gösterebiliriz."; +"Settings" = "Ayarlar"; +"Since last scan" = "Son taramadan beri"; +"Snapshot" = "Anlık görüntü"; +"Snapshots" = "Anlık görüntüler"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "Anlık görüntüler her taramayı arşivlemenize ve yeni taramaların hangisiyle karşılaştırılacağını seçmenize olanak tanır. Ziyaretleri izle, açtığınız her profili kaydeder, böylece burada inceleyebilirsiniz."; +"Sort" = "Sırala"; +"Starting…" = "Başlatılıyor…"; +"They follow you, you don't follow back" = "Onlar sizi takip ediyor, siz geri takip etmiyorsunuz"; +"This can't be undone." = "Bu geri alınamaz."; +"Ticked data will be cleared. Tap a row to see what's stored." = "Seçili veriler temizlenecek. Nelerin saklandığını görmek için herhangi bir satıra dokunun."; +"Today" = "Bugün"; +"Too many followers" = "Çok fazla takipçi"; +"Too many followers to analyze" = "Analiz edilemeyecek kadar fazla takipçi"; +"Track visited profiles" = "Ziyaret edilen profilleri izle"; +"Tracking" = "İzleme"; +"Tracking off — enable below to log visits" = "İzleme kapalı — ziyaretleri kaydetmek için aşağıdan etkinleştirin"; +"Unfollow" = "Takibi bırak"; +"Unfollow %lu" = "%lu kişinin takibini bırak"; +"Unfollow @%@?" = "@%@ takibi bırakılsın mı?"; +"Unfollowed you since last scan" = "Son taramadan beri sizi takipten çıkardı"; +"Unfollowing… %lu / %lu" = "Takip bırakılıyor… %lu / %lu"; +"Unlimited" = "Sınırsız"; +"Username A → Z" = "Kullanıcı adı A → Z"; +"Username Z → A" = "Kullanıcı adı Z → A"; +"Username, name or picture changes" = "Kullanıcı adı, ad veya fotoğraf değişiklikleri"; +"Username: @%@ → @%@" = "Kullanıcı adı: @%@ → @%@"; +"Using %@ across %lu snapshots." = "%lu anlık görüntü genelinde %@ kullanılıyor."; +"Verified only" = "Yalnızca doğrulanmış"; +"Visited" = "Ziyaret edildi"; +"Visited profiles" = "Ziyaret edilen profiller"; +"We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "Instagram hız sınırlarından kaçınmak için takipçi sayısı %ld değerini aştığında çalışmayı reddediyoruz."; +"You both follow each other" = "Birbirinizi takip ediyorsunuz"; +"You don't follow back" = "Geri takip etmiyorsunuz"; +"You follow them, they don't follow back" = "Siz onları takip ediyorsunuz, onlar geri takip etmiyor"; +"You started following" = "Takip etmeye başladınız"; +"You unfollowed" = "Takibi bıraktınız"; +"your previous scan" = "önceki taramanız"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "“Önceki tarama” her zaman son çalıştırmanıza göre ölçer. Bunun yerine sabit bir zaman noktasıyla karşılaştırmak için kaydedilmiş bir anlık görüntü seçin."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ Bu büyüyor — yer açmak için sınırı düşürün veya eski anlık görüntüleri silin."; + +////////////////////////////////////////////////////////////////////////////// +// SETTINGS VIEWS & DIALOGS // +// Excluded-lists managers, backup/restore flows, in-picker labels. // +////////////////////////////////////////////////////////////////////////////// + +"Absolute format" = "Mutlak biçim"; +"Add chat" = "Sohbet ekle"; +"Add custom domain" = "Özel alan adı ekle"; +"Add to list?" = "Listeye eklensin mi?"; +"Add user" = "Kullanıcı ekle"; +"Apply" = "Uygula"; +"Apply to" = "Şuna uygula"; +"Chats" = "Sohbetler"; +"Colored" = "Renkli"; +"Could not read file." = "Dosya okunamadı."; +"Could not resolve user ID" = "Kullanıcı kimliği çözümlenemedi"; +"Current location" = "Geçerli konum"; +"Custom" = "Özel"; +"Delete" = "Sil"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "IG'deki her yüzey farklı bir NSDate biçimlendirici kullanır. Bu biçimin uygulanmasını istediğiniz yüzeyleri açın."; +"Enable fake location" = "Sahte konumu etkinleştir"; +"Excluded chats" = "Hariç tutulan sohbetler"; +"Excluded users" = "Hariç tutulan kullanıcılar"; +"Follow default" = "Varsayılanı izle"; +"Force OFF (allow unsends)" = "Kapalıya zorla (geri almaya izin ver)"; +"Force ON (preserve unsends)" = "Açığa zorla (geri alınanları koru)"; +"Include seconds when the format already shows time." = "Biçim zaman içeriyorsa saniyeleri de göster."; +"Included chats" = "Dahil edilen sohbetler"; +"Included users" = "Dahil edilen kullanıcılar"; +"KD: default" = "ST: varsayılan"; +"KD: ON" = "ST: AÇIK"; +"Keep-deleted" = "Silinenleri tut"; +"Keep-deleted override" = "Silinenleri tut geçersiz kılması"; +"Name (A–Z)" = "Ad (A–Z)"; +"No DM thread found with @%@" = "@%@ ile DM konuşması bulunamadı"; +"Presets" = "Hazır ayarlar"; +"Recently added" = "Son eklenenler"; +"Relative time" = "Göreli zaman"; +"Relative within" = "Göreli süre"; +"Remove from list" = "Listeden kaldır"; +"Reset" = "Sıfırla"; +"Search" = "Ara"; +"Search address or place" = "Adres veya yer ara"; +"Search by name or username" = "Ada veya kullanıcı adına göre ara"; +"Search by username or name" = "Kullanıcı adına veya ada göre ara"; +"Select location on map" = "Haritada konum seç"; +"Set current location" = "Geçerli konumu ayarla"; +"Set keep-deleted override" = "Silinenleri tut geçersiz kılmasını ayarla"; +"Show map button" = "Harita butonunu göster"; +"Show relative time for dates younger than this many days. 0 disables it." = "Belirtilen günden daha yeni tarihler için göreli zaman göster. 0 kapatır."; +"Show seconds" = "Saniyeleri göster"; +"Sort by" = "Şuna göre sırala"; +"Thread" = "Sohbet"; +"Time" = "Saat"; +"Use this location" = "Bu konumu kullan"; +"User '%@' not found" = "'%@' kullanıcısı bulunamadı"; +"Username (A–Z)" = "Kullanıcı adı (A–Z)"; +"Within %ld days" = "%ld gün içinde"; +"Within 1 day" = "1 gün içinde"; + +////////////////////////////////////////////////////////////////////////////// +// REELS (FEATURES) // +// Strings from Reels. // +////////////////////////////////////////////////////////////////////////////// + +"No password found" = "Şifre bulunamadı"; +"No text field found" = "Metin alanı bulunamadı"; +"Refresh Reels?" = "Reels yenilensin mi?"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE (FEATURES) // +// Strings from Profile. // +////////////////////////////////////////////////////////////////////////////// + +"%lu accounts" = "%lu hesap"; +"%lu loaded" = "%lu yüklendi"; +"%lu loaded · all loaded" = "%lu yüklendi · tümü yüklendi"; +"Doesn't follow you" = "Sizi takip etmiyor"; +"Everyone is already loaded." = "Herkes zaten yüklendi."; +"Filter & sort" = "Filtrele ve sırala"; +"Follows me" = "Beni takip ediyor"; +"Follows me first" = "Önce beni takip edenler"; +"Follows you" = "Sizi takip ediyor"; +"Hides everyone who doesn't match all picked filters." = "Seçili filtrelerin tümüyle eşleşmeyen herkesi gizler."; +"Jump to bottom" = "En alta atla"; +"Jump to top" = "En üste atla"; +"List" = "Liste"; +"List fully loaded" = "Liste tamamen yüklendi"; +"Load more" = "Daha fazla yükle"; +"Loaded more" = "Daha fazlası yüklendi"; +"Mutuals" = "Karşılıklı"; +"Mutuals first" = "Önce karşılıklılar"; +"Note copied" = "Not kopyalandı"; +"People I follow" = "Takip ettiklerim"; +"People I follow first" = "Önce takip ettiklerim"; +"Reverse order" = "Ters sırala"; +"Show only" = "Yalnızca göster"; +"Verified" = "Doğrulanmış"; +"Verified first" = "Önce doğrulanmışlar"; + +////////////////////////////////////////////////////////////////////////////// +// MISC // +// Anything that didn't fit a named section. Usually short labels. // +////////////////////////////////////////////////////////////////////////////// + +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(ayarsız)"; +"720p • progressive • fastest" = "720p • aşamalı • en hızlı"; +"Add language" = "Dil ekle"; +"Album name" = "Albüm adı"; +"Are you sure?" = "Emin misiniz?"; +"Bundle" = "Paket"; +"Copy audio URL" = "Ses URL'sini kopyala"; +"Copy quality info" = "Kalite bilgisini kopyala"; +"Copy video URL" = "Video URL'sini kopyala"; +"Could not access reel media" = "Reel medyasına erişilemedi"; +"Could not access reel photo" = "Reel fotoğrafına erişilemedi"; +"Could not write file." = "Dosya yazılamadı."; +"Download all and share?" = "Tümünü indirip paylaşılsın mı?"; +"Download Quality" = "İndirme Kalitesi"; +"Downloading %d%%" = "İndiriliyor %%%d"; +"e.g. 1000000" = "örn. 1000000"; +"Localization file not found" = "Çeviri dosyası bulunamadı"; +"Enter the language code (e.g. fr, de, ja)" = "Dil kodunu girin (ör. fr, de, ja)"; +"Error" = "Hata"; +"Extras" = "Ekstralar"; +"FFmpegKit Debug" = "FFmpegKit Hata Ayıklama"; +"File is empty or not a valid .strings file." = "Dosya boş veya geçerli bir .strings dosyası değil."; +"KD: OFF" = "KD: KAPALI"; +"Keep-deleted: OFF" = " • Silinenleri sakla: KAPALI"; +"Keep-deleted: ON" = " • Silinenleri sakla: AÇIK"; +"Later" = "Daha sonra"; +"Loading" = "Yükleniyor"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "RyukGram'ın kaydettiği Fotoğraflar albümünün adı. Varsayılana dönmek için boş bırakın."; +"Next" = "İleri"; +"No results found." = "Sonuç bulunamadı."; +"No!" = "Hayır!"; +"Pick a language to update, or add a new one" = "Güncellemek için bir dil seçin veya yeni bir tane ekleyin"; +"Preset" = "Hazır ayar"; +"Restart" = "Yeniden başlat"; +"Restart now" = "Şimdi yeniden başlat"; +"Restart required" = "Yeniden başlatma gerekli"; +"Saved preset \"%@\"" = "Kaydedilen ön ayar \"%@\""; +"selected" = "seçildi"; +"Shared icon, or override per button" = "Paylaşılan simge veya düğme başına geçersiz kıl"; +"Speed" = "Hız"; +"Unset" = "Ayarlanmamış"; +"Update localization" = "Çeviriyi güncelle"; +"Updated %@ (%ld keys). Restart to apply." = "%@ güncellendi (%ld anahtar). Uygulamak için yeniden başlatın."; +"Use default" = "Varsayılanı kullan"; +"Username or PK" = "Kullanıcı adı veya PK"; +"Username or raw user PK" = "Kullanıcı adı veya ham kullanıcı PK"; +"Yes" = "Evet"; +"You must restart the app to apply this change" = "Bu değişikliği uygulamak için uygulamayı yeniden başlatmalısınız"; + +////////////////////////////////////////////////////////////////////////////// +// ABOUT / CREDITS // +// Strings from the About / Credits footer of Settings. // +////////////////////////////////////////////////////////////////////////////// + +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub, Telegram, Bağış"; +"About" = "Hakkında"; +"Arabic translation" = "Arapça çeviri"; +"Chinese (Traditional and Simplified) translation" = "Çince (Geleneksel ve Basitleştirilmiş) çevirisi"; +"Credits" = "Katkıda bulunanlar"; +"Developers" = "Geliştiriciler"; +"Donate to SoCuul" = "SoCuul'a bağış yap"; +"installed" = "yüklü"; +"Korean translation" = "Korece çeviri"; +"Portuguese (Brazil) translation" = "Portekizce (Brezilya) çevirisi"; +"Turkish translation" = "Türkçe çeviri"; +"Vietnamese translation" = "Vietnamca çeviri"; +"French translation" = "Fransızca çeviri"; +"Code contributions" = "Kod katkıları"; +"Following feed mode (from InstaSane)" = "Takip Edilenler akış modu (InstaSane'den)"; +"latest" = "en son"; +"Links" = "Bağlantılar"; +"No releases" = "Sürüm yok"; +"Original SCInsta developer" = "Orijinal SCInsta geliştiricisi"; +"Release notes" = "Sürüm notları"; +"Releases" = "Sürümler"; +"Report an issue" = "Sorun bildir"; +"Russian translation" = "Rusça çeviri"; +"RyukGram developer" = "RyukGram geliştiricisi"; +"Join Telegram channel" = "Telegram kanalına katıl"; +"Source code" = "Kaynak kod"; +"View on GitHub" = "GitHub'da görüntüle"; +"Spanish translation" = "İspanyolca çeviri"; +"Support the original SCInsta developer" = "Orijinal SCInsta geliştiricisini destekle"; +"Inspirations" = "İlham kaynakları"; +"Inspirations, contributors, translators" = "İlham kaynakları, katkıda bulunanlar, çevirmenler"; +"Code and research" = "Kod ve araştırma"; +"Translators" = "Çevirmenler"; +"Original BHInstagram developer" = "Orijinal BHInstagram geliştiricisi"; +"OLED theme inspiration" = "OLED tema ilhamı"; +"Donate to Ryuk" = "Ryuk'a bağış yap"; +"Support RyukGram development" = "RyukGram geliştirmesini destekle"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram, SCInsta'nın büyük ölçüde yeniden çalışılmış bir çatallanmasıdır — orijinal geliştiriciye yapılan destek takdir edilir."; +"Browse changes from previous releases" = "Önceki sürümlerdeki değişikliklere göz at"; +"Code inspiration" = "Kod ilhamı"; +"zxPluginsInject sideload compatibility shim" = "zxPluginsInject sideload uyumluluk katmanı"; +"Telegram channel" = "Telegram kanalı"; +"Testing and feature suggestions" = "Test ve özellik önerileri"; +"Version" = "Sürüm"; +"Version, credits, and links" = "Sürüm, katkılar ve bağlantılar"; +"What's new in RyukGram" = "RyukGram'da yenilikler"; + +////////////////////////////////////////////////////////////////////////////// +// HD DOWNLOADS // +// Enhanced / HD downloads settings (DASH + FFmpegKit encoding). // +////////////////////////////////////////////////////////////////////////////// + +"720p • progressive • silent" = "720p • aşamalı • sessiz"; +"Audio only" = "Yalnızca ses"; +"Audio ready" = "Ses hazır"; +"Download video at the highest available quality" = "Videoyu mevcut en yüksek kalitede indir"; +"Downloads HD video via DASH streams and encodes to H.264. Requires FFmpegKit." = "HD videoyu DASH akışları üzerinden indirir ve H.264'e kodlar. FFmpegKit gerektirir."; +"Encoding speed" = "Kodlama hızı"; +"Enhanced downloads" = "Gelişmiş indirmeler"; +"Faster = lower quality" = "Daha hızlı = daha düşük kalite"; +"FFmpeg not available" = "FFmpeg kullanılamıyor"; +"FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit kullanılamıyor. Etkinleştirmek için sideload edilmiş IPA'yı veya _ffmpeg .deb varyantını yükleyin."; +"No audio track found" = "Ses parçası bulunamadı"; +"Photo" = "Fotoğraf"; +"Photo quality" = "Fotoğraf kalitesi"; +"silent" = "sessiz"; +"Use highest resolution available" = "Mevcut en yüksek çözünürlüğü kullan"; +"Video quality" = "Video kalitesi"; +"Which quality to download" = "Hangi kalitenin indirileceği"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "'%@' bu FFmpegKit derlemesinde yok — bunun yerine donanım h264 kullanılıyor."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-bit 4:2:0. ~2x daha yavaş, daha pürüzsüz geçişler."; +"10-bit colour. Slower, smoother gradients. Software only." = "10-bit renk. Daha yavaş, daha pürüzsüz geçişler. Yalnızca yazılım."; +"1080p30 baseline." = "1080p30 temel."; +"4K30 baseline." = "4K30 temel."; +"8-bit 4:2:0. Universal default." = "8-bit 4:2:0. Evrensel varsayılan."; +"8-bit 4:2:2 chroma. Niche playback." = "8-bit 4:2:2 kroma. Niş oynatma."; +"8-bit 4:2:2 chroma. Software only." = "8-bit 4:2:2 kroma. Yalnızca yazılım."; +"8-bit 4:4:4 chroma. Software only." = "8-bit 4:4:4 kroma. Yalnızca yazılım."; +"8-bit 4:4:4 full chroma. Niche playback." = "8-bit 4:4:4 tam kroma. Niş oynatma."; +"8-bit. Best for modern devices." = "8-bit. Modern cihazlar için en iyisi."; +"Advanced encoding" = "Gelişmiş kodlama"; +"Advanced encoding settings" = "Gelişmiş kodlama ayarları"; +"Archival quality." = "Arşiv kalitesi."; +"Audio bitrate" = "Ses bit hızı"; +"Audio channels" = "Ses kanalları"; +"Audio codec" = "Ses codec'i"; +"Audio conversion failed" = "Ses dönüştürme başarısız"; +"Audio sample rate" = "Ses örnekleme hızı"; +"Balanced. libx264 default." = "Dengeli. libx264 varsayılanı."; +"Best practical quality per bit." = "Bit başına en iyi pratik kalite."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "Bit hızı, kanallar ve örnekleme hızı yalnızca codec AAC olduğunda (yeniden kodlama) geçerlidir."; +"Cartoons / anime." = "Çizgi film / anime."; +"Cinematic. Smaller files." = "Sinematik. Daha küçük dosyalar."; +"Codec" = "Codec"; +"Container" = "Konteyner"; +"Copy (passthrough)" = "Kopyala (geçiş)"; +"CRF quality" = "CRF kalitesi"; +"Downloading video…" = "Video indiriliyor…"; +"Easier to play back on weak devices." = "Zayıf cihazlarda oynatması daha kolay."; +"Encoder unavailable" = "Kodlayıcı kullanılamıyor"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "Örnekler: 8M, 12M, 25M, 4500k. Otomatik için boş bırakın."; +"Failed to download video" = "Video indirilemedi"; +"Fast, fixed-bitrate, GPU-accelerated." = "Hızlı, sabit bit hızı, GPU hızlandırmalı."; +"Fastest, worst compression." = "En hızlı, en kötü sıkıştırma."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "Faststart, MP4 dizinini başa taşır, böylece oynatma dosya tamamen arabelleğe alınmadan başlar. Meta verileri çıkar, kaynak etiketlerini (oluşturma tarihi, işleyici, kodlayıcı) dosyadan kaldırır."; +"FFmpeg documentation" = "FFmpeg belgeleri"; +"FFmpeg mux failed" = "FFmpeg birleştirme başarısız"; +"Frame rate" = "Kare hızı"; +"H.264 level" = "H.264 seviyesi"; +"H.264 profile" = "H.264 profili"; +"Hardware (VideoToolbox)" = "Donanım (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "Donanım (VideoToolbox) yalnızca yuv420p destekler — '%@' yok sayıldı. Kullanmak için Yazılım (libx264) seçeneğine geçin."; +"Keep original audio. Fast." = "Orijinal sesi koru. Hızlı."; +"Keep the source frame rate." = "Kaynak kare hızını koru."; +"Let the encoder pick." = "Kodlayıcı seçsin."; +"Live-action video." = "Gerçek çekim video."; +"Lossless. Huge files." = "Kayıpsız. Çok büyük dosyalar."; +"Low-latency streaming." = "Düşük gecikmeli akış."; +"Manual ffmpeg controls in place of Encoding speed." = "Kodlama hızı yerine manuel ffmpeg kontrolleri."; +"Marginal gain, huge time cost." = "Marjinal kazanç, büyük zaman maliyeti."; +"Max resolution" = "Maks çözünürlük"; +"Mono" = "Mono"; +"No tuning. Default." = "Ayar yok. Varsayılan."; +"None" = "Yok"; +"Pixel format" = "Piksel biçimi"; +"Pixel format ignored" = "Piksel biçimi yok sayıldı"; +"Preserve film grain." = "Film grenini koru."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "Ön ayar ve İnce ayar yalnızca Yazılım (libx264) için geçerlidir. Profili piksel biçimiyle eşleştirin: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Uyumsuzluklar sessizce alt biçime dönüştürülür. Donanım her zaman yuv420p kullanır."; +"Re-encode. Use when source is opus or unsupported." = "Yeniden kodla. Kaynak opus veya desteklenmiyorsa kullanın."; +"Reset advanced encoding" = "Gelişmiş kodlamayı sıfırla"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "Bir video bit hızı ayarlamak Yazılım'ı sabit bit hızına geçirir ve CRF'yi yok sayar. CRF için boş bırakın. Donanım bit hızını kullanır."; +"Slideshow-like content." = "Slayt gösterisi benzeri içerik."; +"Slower, better compression per bit." = "Daha yavaş, bit başına daha iyi sıkıştırma."; +"Smaller, visible artefacts." = "Daha küçük, görünür bozulmalar."; +"Software (libx264)" = "Yazılım (libx264)"; +"Standard 8-bit." = "Standart 8-bit."; +"Stereo" = "Stereo"; +"Streaming default." = "Akış varsayılanı."; +"Strip metadata" = "Meta verileri çıkar"; +"Top of AAC." = "AAC'nin en üstü."; +"Tune" = "İnce ayar"; +"Unknown error" = "Bilinmeyen hata"; +"Very high quality." = "Çok yüksek kalite."; +"Video bitrate" = "Video bit hızı"; +"Video codec" = "Video codec'i"; +"Visually lossless. RyukGram default." = "Görsel olarak kayıpsız. RyukGram varsayılanı."; +"Widest compatibility, no B-frames." = "En geniş uyumluluk, B-kare yok."; +"Worst quality." = "En kötü kalite."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "Uzun basma hareketleri"; +"Inserts a button in the profile navigation header" = "Profil gezinme başlığına bir düğme ekler"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "Profil başlığına kopyalama, fotoğrafı görüntüleme, paylaşma, kaydetme ve profil bilgisi girişlerine sahip bir RyukGram eylem düğmesi ekler. Varsayılan olarak dokunma menüyü açar; dokunma davranışını Menüyü yapılandır bölümünden değiştirin."; +"Configure menu" = "Menüyü yapılandır"; +"Reorder, enable/disable, set default tap, show date" = "Yeniden sırala, etkinleştir/devre dışı bırak, varsayılan dokunmayı ayarla, tarihi göster"; +"Reorder, enable/disable, set default tap" = "Yeniden sırala, etkinleştir/devre dışı bırak, varsayılan dokunmayı ayarla"; +"RyukGram profile actions" = "RyukGram profil eylemleri"; +"Reorder sections" = "Bölümleri yeniden sırala"; +"Drag the ≡ handle to reorder sections." = "Bölümleri yeniden sıralamak için ≡ tutamağını sürükleyin."; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "Yeniden sıralamak için ≡ tutamağını sürükleyin. Bir satırı kapatarak menüden gizleyin. Bir bölümü alt menü olarak işaretleyerek eylemlerini tek bir girişin arkasında toplayın."; +"Show as submenu" = "Alt menü olarak göster"; +"Collapse this section's actions behind a single entry" = "Bu bölümün eylemlerini tek bir girişin arkasında topla"; +"Configure: %@" = "Yapılandır: %@"; +"What happens on a single tap. Long-press always opens the full menu." = "Tek dokunmada ne olacağı. Uzun basma her zaman tam menüyü açar."; +"Reset to defaults" = "Varsayılanlara sıfırla"; +"This will restore the default sections, order, and toggles for this menu." = "Bu işlem, bu menü için varsayılan bölümleri, sıralamayı ve anahtarları geri yükler."; +"Audio & visibility" = "Ses ve görünürlük"; +"DM disappearing media" = "DM kaybolan medya"; +"Bulk download" = "Toplu indirme"; +"Feed settings" = "Akış ayarları"; +"Reels settings" = "Reels ayarları"; +"Profile settings" = "Profil ayarları"; +"Stories settings" = "Hikaye ayarları"; +"Copy ID" = "Kimliği kopyala"; +"Copy Info" = "Bilgileri kopyala"; +"Copy all info" = "Tüm bilgileri kopyala"; +"Copy media URL" = "Medya URL'sini kopyala"; +"Copy profile link" = "Profil bağlantısını kopyala"; +"Copy username" = "Kullanıcı adını kopyala"; +"Download" = "İndir"; +"Download to Gallery" = "Galeriye indir"; +"Download all to Gallery" = "Tümünü Galeriye indir"; +"Exclude/include user" = "Kullanıcıyı hariç tut/dahil et"; +"Mute / unmute audio" = "Sesi kapat / aç"; +"Save picture to Gallery" = "Fotoğrafı Galeriye kaydet"; +"Share picture" = "Fotoğrafı paylaş"; +"View picture" = "Fotoğrafı görüntüle"; +"Bio" = "Biyografi"; +"ID" = "Kimlik"; +"Info" = "Bilgi"; +"Profile info" = "profil bilgileri"; +"Profile link" = "Profil bağlantısı"; +"Picture not found" = "Fotoğraf bulunamadı"; +"Private profile" = "Gizli profil"; +"Profile unavailable" = "Profil kullanılamıyor"; +"Public profile" = "Herkese açık profil"; +"Username" = "Kullanıcı adı"; +"Followers: %@" = "Takipçiler: %@"; +"Following: %@" = "Takip edilen: %@"; +"Copied %@" = "%@ kopyalandı"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(bilinmiyor)"; +"All files deleted" = "Tüm dosyalar silindi"; +"Browsing" = "Göz atma"; +"By source" = "Kaynağa göre"; +"By type" = "Türe göre"; +"By user" = "Kullanıcıya göre"; +"Clear filters" = "Filtreleri temizle"; +"Comment" = "Yorum"; +"Create" = "Oluştur"; +"Create & Move" = "Oluştur ve Taşı"; +"Delete %@?" = "%@ silinsin mi?"; +"Delete all files" = "Tüm dosyaları sil"; +"Delete all images" = "Tüm görselleri sil"; +"Delete all videos" = "Tüm videoları sil"; +"Delete by user" = "Kullanıcıya göre sil"; +"Delete DM media" = "DM medyasını sil"; +"Delete feed posts" = "Akış gönderilerini sil"; +"Delete files" = "Dosyaları sil"; +"Delete Folder" = "Klasörü Sil"; +"Delete from Gallery?" = "Galeriden silinsin mi?"; +"Delete profile pictures" = "Profil fotoğraflarını sil"; +"Delete reels" = "Reels'i sil"; +"Delete selected" = "Seçilenleri sil"; +"Delete Selected Files?" = "Seçili Dosyalar Silinsin mi?"; +"Delete stories" = "Hikayeleri sil"; +"Delete thumbnails" = "Küçük resimleri sil"; +"Deleted from Gallery" = "Galeriden silindi"; +"Deleted selected files" = "Seçili dosyalar silindi"; +"Deselect All" = "Seçimi kaldır"; +"DM media deleted" = "DM medyası silindi"; +"DMs" = "DM'ler"; +"Each user appears as a folder next to your real folders." = "Her kullanıcı, gerçek klasörlerinizin yanında bir klasör olarak görünür."; +"Each user gets a labelled section in the grid/list." = "Her kullanıcı, ızgara/listede etiketli bir bölüm alır."; +"Enable gallery" = "Galeriyi etkinleştir"; +"Failed" = "Başarısız"; +"Failed to delete" = "Silinemedi"; +"Favorite" = "Favorilere ekle"; +"Favorite selected" = "Seçilenleri favorilere ekle"; +"Favorites only" = "Yalnızca favoriler"; +"Feed posts deleted" = "Akış gönderileri silindi"; +"Files deleted" = "Dosyalar silindi"; +"Flat list. No grouping." = "Düz liste. Gruplama yok."; +"Folder name" = "Klasör adı"; +"Folders" = "Klasörler"; +"From RyukGram Gallery" = "RyukGram Galerisinden ses"; +"Gallery" = "Galeri"; +"Gallery only" = "Yalnızca Galeri"; +"Gallery save mode" = "Galeri kayıt modu"; +"Gallery Settings" = "Galeri Ayarları"; +"GIFs" = "GIF'ler"; +"Grid view" = "Izgara görünümü"; +"Group by user" = "Kullanıcıya göre grupla"; +"Hold DM tab to open gallery" = "Galeri için DM sekmesini basılı tutun"; +"Images" = "Görseller"; +"Images deleted" = "Görseller silindi"; +"Images first" = "Önce görseller"; +"item" = "öğe"; +"items" = "öğe"; +"Largest first" = "Önce en büyük"; +"List view" = "Liste görünümü"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "RyukGram galerisini açmak için alt sekme çubuğundaki gelen kutusu düğmesine uzun basın"; +"Manage" = "Yönet"; +"More" = "Daha fazla"; +"Move selected" = "Seçilenleri taşı"; +"Move to Folder" = "Klasöre Taşı"; +"Name A-Z" = "Ad A-Z"; +"Name Z-A" = "Ad Z-A"; +"New Folder" = "Yeni Klasör"; +"New folder…" = "Yeni klasör…"; +"Newest first" = "Önce en yeni"; +"No files in Gallery" = "Galeride dosya yok"; +"No files to delete" = "Silinecek dosya yok"; +"No matching files" = "Eşleşen dosya yok"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "RyukGram aracılığıyla indirilen medyanın cihazdaki kitaplığı. Kayıt modu, 'Fotoğraflar'a indir' işleminin gerçekte nereye yazacağını belirler."; +"Open" = "Aç"; +"Open Original Post" = "Orijinal Gönderiyi Aç"; +"Options" = "Seçenekler"; +"Other" = "Diğer"; +"Photos + Gallery" = "Fotoğraflar + Galeri"; +"Photos only" = "Yalnızca Fotoğraflar"; +"Profile pictures deleted" = "Profil fotoğrafları silindi"; +"Reels deleted" = "Reels silindi"; +"Rename" = "Yeniden adlandır"; +"Rename Folder" = "Klasörü Yeniden Adlandır"; +"Root" = "Kök"; +"Save media from the preview screen\nto see it here." = "Burada görmek için medyayı önizleme\nekranından kaydedin."; +"Saved %lu items to Gallery" = "Galeriye %lu öğe kaydedildi"; +"Saved to Gallery" = "Galeriye kaydedildi"; +"Saving to Gallery" = "Galeriye kaydediliyor..."; +"Search users" = "Kullanıcı ara"; +"Sections" = "Bölümler"; +"Select All" = "Tümünü seç"; +"Share" = "Paylaş"; +"Share selected" = "Seçilenleri paylaş"; +"Show favorites at top" = "Favorileri üstte göster"; +"Show gallery entries in download menus and unlock the gallery button" = "İndirme menülerinde galeri girişlerini göster ve galeri düğmesinin kilidini aç"; +"Smallest first" = "Önce en küçük"; +"Source" = "Kaynak"; +"Source user" = "Kaynak kullanıcı"; +"Storage" = "Depolama"; +"Stories deleted" = "Hikayeler silindi"; +"Story" = "Hikaye"; +"The original content may no longer exist." = "Orijinal içerik artık mevcut olmayabilir."; +"This folder contains %ld file(s). They will be moved to the parent folder." = "Bu klasör %ld dosya içeriyor. Üst klasöre taşınacak."; +"This folder is empty." = "Bu klasör boş."; +"This will permanently remove %ld file%@ from the gallery." = "Bu işlem galeriden %ld dosya%@ kalıcı olarak kaldıracak."; +"This will permanently remove %ld file(s)." = "Bu işlem, %ld dosyayı kalıcı olarak kaldırır."; +"This will permanently remove this file from the gallery." = "Bu işlem, bu dosyayı galeriden kalıcı olarak kaldırır."; +"Thumb" = "Küçük resim"; +"Thumbnails deleted" = "Küçük resimler silindi"; +"to Gallery" = "Galeriye"; +"Total files" = "Toplam dosya"; +"Total size" = "Toplam boyut"; +"Type" = "Tür"; +"Unable to open original post" = "Orijinal gönderi açılamadı"; +"Unable to open profile" = "Profil açılamadı"; +"Unfavorite" = "Favorilerden çıkar"; +"Unknown user" = "Bilinmeyen kullanıcı"; +"User files deleted" = "Kullanıcı dosyaları silindi"; +"Videos" = "Videolar"; +"Videos deleted" = "Videolar silindi"; +"Videos first" = "Önce videolar"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "Etkinleştirildiğinde favoriler, geçerli sıralama ve klasör bağlamında diğer dosyaların üzerine sabitlenir."; +"Where 'Download to Photos' actually writes when gallery is on" = "Galeri açıkken 'Fotoğraflar'a indir' işleminin gerçekte nereye yazacağı"; +"Yesterday" = "Dün"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "Ana sayfa kısayol düğmesi"; +"Show the extra button on the home top bar" = "Ana sayfa üst çubuğundaki ek düğmeyi yapılandırın"; +"Auto" = "Otomatik"; +"Icon" = "Simge"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "Yeniden sıralamak için ≡ tutamacını sürükleyin. Bir satırı kapatarak o hedefi gizleyin. Bir eylem açıkken dokunma onu çalıştırır; iki veya daha fazlasıyla dokunma menü gösterir."; +"Changelog" = "Değişiklik günlüğü"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "Ana ekran üst çubuğundaki gönderi oluştur + düğmesinin yanına ekstra bir kısayol düğmesi ekler."; +"All buttons" = "Tüm düğmeler"; +"Choose icon, reorder actions, and enable menu items" = "Simge seçin, eylemleri yeniden sıralayın ve menü öğelerini etkinleştirin"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "Ana ekran üst çubuğunda gösterilen simgeyi seçin. Yalnızca bir eylem etkinken Otomatik, seçili eylem simgesini kullanır."; +"Configure button" = "Düğmeyi yapılandır"; +"Global Action Icons" = "Genel Eylem Simgeleri"; +"Interface" = "Arayüz"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "Belirli bir düğmenin simgesini geçersiz kıl. Varsayılan bırakılan düğmeler yukarıdaki paylaşılan simgeyi izler."; +"Per button" = "Düğme başına"; +"Show home shortcut button" = "Ana ekran kısayol düğmesini göster"; +"Tab bar" = "Sekme çubuğu"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "Uygulama içi evrensel bildirimler. Stil, konum, işlem başına yönlendirme seçin."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "Bildirimler"; +"Appearance" = "Görünüm"; +"Routing" = "Yönlendirme"; +"Style" = "Stil"; +"Position" = "Konum"; +"Stack size" = "Yığın boyutu"; +"Duration" = "Süre"; +"Default surface" = "Varsayılan yüzey"; +"Enable notifications" = "Bildirimleri etkinleştir"; +"Haptic feedback" = "Dokunsal geri bildirim"; +"Preview pill" = "Hap önizlemesi"; +"Preview download pill" = "İndirme hapı önizlemesi"; +"Preview loading pill" = "Yükleme hapı önizlemesi"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "Ana anahtar. Kapalıyken hiçbir bildirim gösterilmez."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "Uygulama içi evrensel bildirimler. Tüm RyukGram geri bildirimleri buradan geçer."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal: düz blur. Colorful: ton renkli. Glow: renkli halka. Island: dinamik ada kapsülü."; +"Top slides down, bottom slides up." = "Üst aşağı, alt yukarı kayar."; +"How many pills can show at once before queueing." = "Sıraya alınmadan önce aynı anda kaç hap gösterilebilir."; +"Multiplies how long toasts stay on screen." = "Bildirimlerin ekranda kalma süresini çarpar."; +"Vibration on success/error pills." = "Başarı/hata haplarında titreşim."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "Uyarı tarzı işlemler için hap veya IG yerel uyarısı arasında seçim yapabilirsiniz. İşlem başına geçersiz kılmalar aşağıda."; +"What to use when an action doesn't have its own override." = "Bir işlemin kendi geçersiz kılması yoksa ne kullanılacak."; +"Tap to cycle: info → success → warning → error" = "Geçiş için dokun: bilgi → başarı → uyarı → hata"; +"Tap to cycle between success and failure" = "Başarı ve başarısızlık arasında geçiş için dokun"; +"Progress UI — pill or off only." = "İlerleme arayüzü — yalnızca hap veya kapalı."; +"Minimal" = "Minimal"; +"Colorful" = "Renkli"; +"Glow" = "Parıltı"; +"Island" = "Ada"; +"Top" = "Üst"; +"Bottom" = "Alt"; +"Custom pill" = "Özel hap"; +"IG native toast" = "IG yerel uyarısı"; +"Short" = "Kısa"; +"Normal" = "Normal"; +"Long" = "Uzun"; +"Very long" = "Çok uzun"; +"Downloads & saving" = "İndirmeler ve kaydetme"; +"Copy to clipboard" = "Panoya kopyala"; +"Read receipts & seen" = "Okundu bilgileri"; +"Block, exclude & pin" = "Engelle, hariç tut ve sabitle"; +"Stories & messages" = "Hikayeler ve mesajlar"; +"Voice & audio" = "Ses ve audio"; +"Errors" = "Hatalar"; +"Download progress" = "İndirme ilerlemesi"; +"Bulk download progress" = "Toplu indirme ilerlemesi"; +"Copied post / reel URL" = "Gönderi / reel URL'si kopyalandı"; +"Copied comment text" = "Yorum metni kopyalandı"; +"Copied note text" = "Not metni kopyalandı"; +"Copied profile info" = "Profil bilgileri kopyalandı"; +"Copied audio URL" = "Ses URL'si kopyalandı"; +"Copied quality picker URL" = "Kalite seçici URL'si kopyalandı"; +"Copied unlocked password" = "Açılan şifre kopyalandı"; +"Copied description text" = "Açıklama metni kopyalandı"; +"DM seen / read receipts" = "DM görüldü / okundu"; +"Story seen / read receipts" = "Hikaye görüldü / okundu"; +"User blocked / unblocked" = "Kullanıcı engellendi / engel kaldırıldı"; +"Chat added / removed from exclude" = "Sohbet hariç tutulanlardan eklendi / çıkarıldı"; +"Story user added / removed from exclude" = "Hikaye kullanıcısı hariç tutulanlardan eklendi / çıkarıldı"; +"Share-sheet recipient pinned" = "Paylaşım sayfası alıcısı sabitlendi"; +"Unsent message detected" = "Geri çekilmiş mesaj algılandı"; +"Live comments toggled" = "Canlı yorumlar değiştirildi"; +"Custom GIF sent" = "Özel GIF gönderildi"; +"Voice DM sent" = "Sesli DM gönderildi"; +"Audio extraction status" = "Ses çıkarma durumu"; +"Profile Analyzer complete" = "Profil Analizcisi tamamlandı"; +"Media extraction failed" = "Medya çıkarma başarısız"; +"Permission denied" = "İzin reddedildi"; +"Validation error" = "Doğrulama hatası"; +"Network / API error" = "Ağ / API hatası"; +"Action error fallback" = "İşlem hata yedeği"; +"Invalid clipboard link" = "Geçersiz pano bağlantısı"; +"Experimental flag warning" = "Deneysel bayrak uyarısı"; +"Settings action confirmed" = "Ayar işlemi onaylandı"; +"Cache clearing progress" = "Önbellek temizleme ilerlemesi"; +"Other / uncategorized" = "Diğer / kategorisiz"; +"Comment copied" = "Yorum kopyalandı"; +"FFmpeg log copied" = "FFmpeg günlüğü kopyalandı"; +"GIF inserted" = "GIF eklendi"; +"Story marked as seen" = "Hikaye görüldü olarak işaretlendi"; +"Saved" = "Kaydedildi"; +"Tap to retry" = "Yeniden denemek için dokun"; +"Looks great" = "Harika görünüyor"; +"Something broke" = "Bir şey bozuldu"; +"Just so you know" = "Bilginize"; +"Success preview" = "Başarı önizleme"; +"Error preview" = "Hata önizleme"; +"Warning preview" = "Uyarı önizleme"; +"Info preview" = "Bilgi önizleme"; +"Preview download…" = "İndirme önizleme…"; +"Colors" = "Renkler"; +"+ Add new language" = "+ Yeni dil ekle"; +"Each chat can override this in the list" = "Her sohbet bunu listede geçersiz kılabilir"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "Açıkken, Instagram konum istekleri seçilen sahte konumu döndürür. Harita düğmesi Arkadaşlar Haritası içine bir kısayol ekler."; +"Tap a preset to make it active. Swipe left to delete." = "Etkinleştirmek için bir ön ayara dokunun. Silmek için sola kaydırın."; +"Override Instagram location reads." = "Instagram'ın konum okumalarını geçersiz kılar."; +"Show the quick button in Friends Map." = "Hızlı düğmeyi Arkadaşlar Haritası içinde göster."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "Mutlak tarihlerin nasıl yazılacağını seçin. “Varsayılan”, IG'nin kendi biçimine dokunmaz."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "Eşikten yeni tarihler göreli zaman olarak gösterilir. Eski tarihler mutlak biçime döner. “Tarih ile birleştir” her ikisini de gösterir — “5 Oca 2026 (2s)” veya “2s – 5 Oca 2026”."; +"Compact style" = "Sıkışık stil"; +"Example: “1h” instead of “1 hour ago”" = "Örnek: “1 saat önce” yerine “1h”"; +"Example: “Jan 5, 2026 (2h)”" = "Örnek: “Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "iOS ses API'leri bu dosyayı işleyemedi%@%@\n\nDosyayı Instagram'a olduğu gibi göndermeyi deneyebilir veya bir destek bildirimi açabilirsiniz."; +"Combine with date" = "Tarih ile birleştir"; +"Absolute then relative" = "Önce mutlak, sonra göreli"; +"Relative – absolute" = "Göreli – mutlak"; +"Relative when young, absolute when older." = "Yeniyse göreli, eskiyse mutlak."; +"Example: “2h – Jan 5, 2026”" = "Örnek: “2s – 5 Oca 2026”"; diff --git a/src/Localization/Resources/vi.lproj/Localizable.strings b/src/Localization/Resources/vi.lproj/Localizable.strings new file mode 100644 index 0000000..bb6ae1a --- /dev/null +++ b/src/Localization/Resources/vi.lproj/Localizable.strings @@ -0,0 +1,2172 @@ +/* + * RyukGram — Localizable.strings (Vietnamese translation) + * ------------------------------------------------------------------------- + * + * Every user-facing string in RyukGram goes through the macro + * SCILocalized(@"English text here") + * in the Objective-C source. The argument is BOTH the lookup key and the + * English fallback, so if a translation is missing the user still sees + * clean English — nothing ever breaks. + * + * Translator: tranbinh02 (https://github.com/tranbinh02) + * + * + * FILE FORMAT NOTES + * ------------------------------------------------------------------------- + * + * - UTF-8, LF line endings. + * - DO NOT nest one slash-star block comment inside another — the + * parser will close the outer block at the first inner close marker + * and every lookup in the file will silently fail. + * - Keys and values are both quoted; every line ends with a semicolon. + * - Keep every format specifier (%@, %lu, %d, %lld, %1$@, …) exactly + * as-is in the same order. If you need to reorder them, switch to + * positional specifiers (%1$@ %2$lu). + * - Keep embedded quotes escaped with a backslash: \" — and newlines as \n. + */ + +////////////////////////////////////////////////////////////////////////////// +// CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // +// Shown on the root Settings screen: title, search bar, the globe language // +// menu, and the one-time welcome alert. These use dotted keys (settings.*) // +// and are hand-authored rather than extracted from English source. // +////////////////////////////////////////////////////////////////////////////// + +"settings.firstrun.message" = "Trong tương lai: Nhấn giữ vào biểu tượng ba gạch ở góc trên bên phải trang hồ sơ để mở lại cài đặt RyukGram."; +"settings.firstrun.ok" = "Tôi hiểu rồi!"; +"settings.firstrun.title" = "Thông tin cài đặt RyukGram"; +"settings.language.english_only" = "RyukGram hiện chỉ hỗ trợ tiếng Anh. Các ngôn ngữ khác đã được chuẩn bị và đang chờ bản dịch — hãy giúp dịch sang ngôn ngữ của bạn bằng cách làm theo hướng dẫn ngắn trong README."; +"settings.language.help_translate" = "Giúp dịch"; +"settings.language.system" = "Mặc định hệ thống"; +"settings.language.title" = "Ngôn ngữ"; +"settings.language.restart.message" = "Đã cập nhật cài đặt. Khởi động lại Instagram để các menu, nút và thông báo ở những nơi khác trong ứng dụng cũng sử dụng ngôn ngữ mới."; +"settings.language.restart.title" = "Khởi động lại để áp dụng mọi nơi"; +"settings.language.available" = "Khả dụng"; +"settings.results.many" = "%lu kết quả"; +"settings.results.one" = "%lu kết quả"; +"settings.search.placeholder" = "Tìm kiếm cài đặt"; +"settings.title" = "Cài đặt RyukGram"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL // +// Settings → General tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button icon" = "Biểu tượng nút hành động"; +"Adds a copy option to the comment long-press menu" = "Thêm tùy chọn sao chép vào menu nhấn giữ bình luận"; +"Adds a download button next to share/save on the reels audio page" = "Thêm nút tải xuống cạnh nút chia sẻ/lưu trên trang âm thanh reel"; +"Adds download, copy and expand options to GIF and image comments" = "Thêm tùy chọn tải xuống, sao chép và phóng to cho bình luận GIF và ảnh"; +"Allow video in photo sticker" = "Cho phép video trong sticker ảnh"; +"Alternate icons are not supported" = "Không hỗ trợ biểu tượng thay thế"; +"Anonymous live viewing" = "Xem live ẩn danh"; +"App Icon" = "Biểu tượng ứng dụng"; +"Audio page" = "Trang âm thanh"; +"Auto-reveals sensitive media" = "Tự động hiển thị media nhạy cảm"; +"Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "Chặn tín hiệu số lượng người xem để người phát không thấy bạn — bạn cũng sẽ không thấy số lượng người xem"; +"Browser" = "Trình duyệt"; +"Change the app icon from the bundled icons" = "Đổi biểu tượng ứng dụng từ các biểu tượng có sẵn"; +"Choose Icon" = "Chọn biểu tượng"; +"Choose which surfaces hide ads" = "Chọn các khu vực ẩn quảng cáo"; +"Comments" = "Bình luận"; +"Commerce carousels in comments and shoppable CTAs on reels" = "Băng chuyền mua sắm trong bình luận và CTA mua sắm trên reels"; +"Copy comment text" = "Sao chép văn bản bình luận"; +"Copy description" = "Sao chép mô tả"; +"Copy description text fields by long-pressing on them" = "Sao chép trường văn bản mô tả bằng cách nhấn giữ"; +"Custom music sticker color" = "Màu sticker nhạc tùy chỉnh"; +"Date format" = "Định dạng ngày"; +"Disable app haptics" = "Tắt rung phản hồi ứng dụng"; +"Disables haptics/vibrations within the app" = "Tắt rung/phản hồi rung trong ứng dụng"; +"Do not save recent searches" = "Không lưu tìm kiếm gần đây"; +"Download GIF & image comments" = "Tải bình luận GIF và ảnh"; +"Download image" = "Tải hình ảnh"; +"Embed domain" = "Tên miền nhúng"; +"Embed domain: %@" = "Tên miền nhúng: %@"; +"Enable liquid glass buttons" = "Bật nút kính lỏng"; +"Enable liquid glass surfaces" = "Bật bề mặt kính lỏng"; +"Enable teen app icons" = "Bật biểu tượng ứng dụng teen"; +"Enables experimental liquid glass buttons" = "Bật nút kính lỏng thử nghiệm"; +"Enables liquid glass tab bar, floating navigation, and other UI elements" = "Bật thanh tab kính lỏng, điều hướng nổi và các thành phần UI khác"; +"End" = "Kết thúc"; +"Experimental features" = "Tính năng thử nghiệm"; +"Explore & search" = "Khám phá & tìm kiếm"; +"Failed to change icon" = "Không thể đổi biểu tượng"; +"Fixed" = "Cố định"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "Cố định ngăn thu nhỏ. Ẩn sẽ làm nó biến mất khi cuộn xuống"; +"Focus/distractions" = "Tập trung/xao nhãng"; +"General" = "Chung"; +"Gradient color" = "Màu gradient"; +"Hide ads" = "Ẩn quảng cáo"; +"Hide explore posts grid" = "Ẩn lưới bài viết khám phá"; +"Hide friends map" = "Ẩn bản đồ bạn bè"; +"Hide Meta AI" = "Ẩn Meta AI"; +"Hide metrics" = "Ẩn chỉ số"; +"Hide notes tray" = "Ẩn khay ghi chú"; +"Hide on scroll" = "Ẩn khi cuộn"; +"Hide TestFlight popup" = "Ẩn popup TestFlight"; +"Hide trending searches" = "Ẩn tìm kiếm xu hướng"; +"Hide UI on capture" = "Ẩn UI khi chụp"; +"Hides all suggested users for you to follow, outside your feed" = "Ẩn tất cả người dùng được đề xuất để bạn theo dõi bên ngoài bảng tin"; +"Hides like/comment/share counts on posts and reels" = "Ẩn số lượt thích/bình luận/chia sẻ trên bài viết và reel"; +"Hides the friends map icon in the notes tray" = "Ẩn biểu tượng bản đồ bạn bè trong khay ghi chú"; +"Hides the grid of suggested posts on the explore/search tab" = "Ẩn lưới bài viết được đề xuất trên tab khám phá/tìm kiếm"; +"Hides the meta ai buttons/functionality within the app" = "Ẩn nút/chức năng Meta AI trong ứng dụng"; +"Hides the notes tray in the DM inbox" = "Ẩn khay ghi chú trong hộp thư DM"; +"Hides the suggested broadcast channels in direct messages" = "Ẩn kênh phát sóng được đề xuất trong tin nhắn trực tiếp"; +"Hides the trending searches under the explore search bar" = "Ẩn tìm kiếm xu hướng bên dưới thanh tìm kiếm khám phá"; +"Hold down on the Instagram logo to change the app icon" = "Nhấn giữ logo Instagram để đổi biểu tượng ứng dụng"; +"Lets the photo sticker picker show videos too, not just photos" = "Cho phép bộ chọn sticker ảnh hiển thị cả video, không chỉ ảnh"; +"Liquid glass tab bar" = "Thanh tab kính lỏng"; +"Live" = "Live"; +"Long press on the eyedropper tool in stories to customize the text color more precisely" = "Nhấn giữ công cụ ống nhỏ giọt trong tin để tùy chỉnh màu văn bản chính xác hơn"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "Nhấn giữ bánh xe màu trên sticker nhạc hoặc lời để chọn màu đặc hoặc gradient bất kỳ"; +"Long-press the heart button in a live to hide or show the comments" = "Nhấn giữ nút tim trong live để ẩn hoặc hiện bình luận"; +"Long-press the search tab to open a copied Instagram link" = "Nhấn giữ tab tìm kiếm để mở liên kết Instagram đã sao chép"; +"Master switch. When off, all per-surface toggles below are ignored." = "Công tắc chính. Khi tắt, mọi nút bật/tắt theo từng khu vực bên dưới đều bị bỏ qua."; +"No suggested chats" = "Không có cuộc trò chuyện được đề xuất"; +"No suggested users" = "Không có người dùng được đề xuất"; +"Notes" = "Ghi chú"; +"Open app icon picker" = "Mở bộ chọn biểu tượng ứng dụng"; +"Open link from clipboard" = "Mở liên kết từ khay nhớ tạm"; +"Open links in external browser" = "Mở liên kết trong trình duyệt ngoài"; +"Opens links in Safari instead of Instagram's in-app browser" = "Mở liên kết bằng Safari thay vì trình duyệt trong ứng dụng của Instagram"; +"Privacy" = "Quyền riêng tư"; +"Removes ads across enabled surfaces" = "Xóa quảng cáo trên các khu vực đã bật"; +"Removes igsh, utm_source, and other tracking parameters from shared links" = "Xóa igsh, utm_source và các tham số theo dõi khác khỏi liên kết chia sẻ"; +"Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "Xóa lớp theo dõi của Instagram (l.instagram.com) và tham số UTM/fbclid khỏi URL"; +"Replace domain in shared links" = "Thay tên miền trong liên kết chia sẻ"; +"Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "Thay thời gian tương đối của IG (\"3 ngày trước\") bằng định dạng tùy chỉnh. Chọn nơi áp dụng trong bộ chọn."; +"Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "Viết lại liên kết sao chép/chia sẻ để dùng tên miền hỗ trợ nhúng xem trước trên Discord, Telegram, v.v."; +"Search bars will no longer save your recent searches" = "Thanh tìm kiếm sẽ không còn lưu tìm kiếm gần đây"; +"Selected" = "Đã chọn"; +"Sharing" = "Chia sẻ"; +"Shopping" = "Mua sắm"; +"Skip sensitive content covers" = "Bỏ qua lớp che nội dung nhạy cảm"; +"Solid color" = "Màu đặc"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "Bài đăng được tài trợ trong bảng tin chính, theo ngữ cảnh, video và nối tiếp"; +"Sponsored posts on the explore grid" = "Bài đăng được tài trợ trên lưới khám phá"; +"Sponsored reels in the sundial feed" = "Reels được tài trợ trong bảng tin sundial"; +"Start" = "Bắt đầu"; +"Story ads and sponsored entries in the story tray" = "Quảng cáo tin và mục được tài trợ trong khay tin"; +"Strip tracking from links" = "Xóa theo dõi khỏi liên kết"; +"Strip tracking params" = "Xóa tham số theo dõi"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "Ẩn thông báo \"Đã đến lúc cập nhật Instagram Beta\""; +"Tap to apply" = "Chạm để áp dụng"; +"The selected icon will be saved and shown here the next time you open this page." = "Biểu tượng đã chọn sẽ được lưu và hiển thị tại đây vào lần tiếp theo bạn mở trang này."; +"Toggle live comments" = "Bật/tắt bình luận trực tiếp"; +"Use detailed color picker" = "Dùng bộ chọn màu chi tiết"; +"Used across feed, stories, reels, and DMs." = "Dùng cho bảng tin, tin, reel và DM"; + +////////////////////////////////////////////////////////////////////////////// +// DATE FORMAT // +// Settings → Date format tab // +////////////////////////////////////////////////////////////////////////////// + +"%ld day ago" = "%ld ngày trước"; +"%ld days ago" = "%ld ngày trước"; +"%ld hour ago" = "%ld giờ trước"; +"%ld hours ago" = "%ld giờ trước"; +"%ld minute ago" = "%ld phút trước"; +"%ld minutes ago" = "%ld phút trước"; +"%ld week ago" = "%ld tuần trước"; +"%ld weeks ago" = "%ld tuần trước"; +"%ldd" = "%ldng"; +"%ldh" = "%ldg"; +"%ldm" = "%ldp"; +"%ldw" = "%ldt"; +"Alternate" = "Thay thế"; +"Always ask" = "Luôn hỏi"; +"Balanced" = "Cân bằng"; +"Block all" = "Chặn tất cả"; +"Block selected" = "Chặn đã chọn"; +"Button" = "Nút"; +"Classic" = "Cổ điển"; +"Date format — %@" = "Định dạng ngày — %@"; +"Default" = "Mặc định"; +"Disabled" = "Đã tắt"; +"Download and share" = "Tải xuống và chia sẻ"; +"Download to Photos" = "Tải vào Ảnh"; +"Enabled" = "Đã bật"; +"Expand" = "Mở rộng"; +"Explore" = "Khám phá"; +"Fast" = "Nhanh"; +"Feed" = "Bảng tin"; +"Feed posts" = "Bài đăng trên Feed"; +"High" = "Cao"; +"Inbox" = "Hộp thư"; +"just now" = "vừa xong"; +"Low" = "Thấp"; +"Max" = "Tối đa"; +"Medium" = "Trung bình"; +"Mute/Unmute" = "Tắt/Bật âm thanh"; +"Notes, comments, stories" = "Ghi chú, bình luận, story"; +"now" = "ngay bây giờ"; +"Open menu" = "Mở menu"; +"Pause/Play" = "Tạm dừng/Phát"; +"Profile" = "Hồ sơ"; +"Quality" = "Chất lượng"; +"Reels" = "Reels"; +"Requires restart" = "Cần khởi động lại"; +"Save to Photos" = "Lưu vào Ảnh"; +"Share sheet" = "Bảng chia sẻ"; +"Standard" = "Tiêu chuẩn"; +"Toggle" = "Bật/Tắt"; + +////////////////////////////////////////////////////////////////////////////// +// FEED // +// Settings → Feed tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button" = "Nút hành động"; +"Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "Thêm 'Xem ảnh đại diện' và 'Xem ảnh bìa' vào menu nhấn giữ khay tin"; +"Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Thêm nút hành động RyukGram bên dưới mỗi bài viết bảng tin với các mục tải xuống/chia sẻ/sao chép/mở rộng/đăng lại. Chạm sẽ mở menu theo mặc định; thay đổi hành vi chạm bên dưới."; +"Choose Instagram's default feed or force the Following feed" = "Chọn bảng tin mặc định của Instagram hoặc buộc dùng bảng tin Đang theo dõi"; +"Main feed" = "Bảng tin chính"; +"Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "Kiểm soát thời điểm và cách bảng tin làm mới. Làm mới nền xảy ra khi quay lại ứng dụng sau khoảng 10 phút. Làm mới nút Trang chủ xảy ra khi chạm vào tab Trang chủ khi đã ở trong đó."; +"Default tap action" = "Hành động chạm mặc định"; +"Disable background refresh" = "Tắt làm mới nền"; +"Disable home button refresh" = "Tắt làm mới nút Trang chủ"; +"Disable home button scroll" = "Tắt cuộn nút Trang chủ"; +"Disable video autoplay" = "Tắt tự động phát video"; +"Hide" = "Ẩn"; +"Hide entire feed" = "Ẩn toàn bộ bảng tin"; +"Hide repost button" = "Ẩn nút đăng lại"; +"Hide stories tray" = "Ẩn khay tin"; +"Hide suggested stories" = "Ẩn tin được đề xuất"; +"Hides suggested accounts" = "Ẩn tài khoản được đề xuất"; +"Hides suggested reels" = "Ẩn reel được đề xuất"; +"Hides suggested threads posts" = "Ẩn bài viết Threads được đề xuất"; +"Hides the repost button on feed posts" = "Ẩn nút đăng lại trên bài viết bảng tin"; +"Hides the story tray at the top" = "Ẩn khay tin ở phía trên"; +"Inserts a button row below like/comment/share on each post" = "Chèn hàng nút bên dưới thích/bình luận/chia sẻ trên mỗi bài viết"; +"Long press on media to expand in full-screen viewer" = "Nhấn giữ media để mở rộng trong trình xem toàn màn hình"; +"Start media muted" = "Bắt đầu media tắt tiếng"; +"Expanded videos open with sound off" = "Video mở rộng mở với âm thanh tắt"; +"Enhanced media resolution" = "Độ phân giải media nâng cao"; +"Media saving" = "Lưu media"; +"Spoof device profile so IG serves higher-quality images" = "Giả lập hồ sơ thiết bị để IG cung cấp hình ảnh chất lượng cao hơn"; +"Media" = "Phương tiện"; +"Media zoom" = "Thu phóng media"; +"No suggested for you" = "Không có đề xuất cho bạn"; +"No suggested posts" = "Không có bài viết được đề xuất"; +"No suggested reels" = "Không có reel được đề xuất"; +"No suggested threads" = "Không có Threads được đề xuất"; +"Prevents feed from reloading when returning from background" = "Ngăn bảng tin tải lại khi quay lại từ nền"; +"Prevents videos from playing automatically" = "Ngăn video tự động phát"; +"Refresh" = "Làm mới"; +"Removes all content from your home feed" = "Xóa toàn bộ nội dung khỏi bảng tin trang chủ"; +"Removes suggested accounts from the stories tray" = "Xóa tài khoản được đề xuất khỏi khay tin"; +"Removes suggested posts" = "Xóa bài viết được đề xuất"; +"Scroll to top without refreshing when tapping Home" = "Cuộn lên đầu mà không làm mới khi nhấn Trang chủ"; +"Show action button" = "Hiển thị nút hành động"; +"Show date" = "Hiển thị ngày"; +"Stories tray" = "Khay tin"; +"Tapping Home does nothing when already on feed" = "Nhấn Trang chủ sẽ không làm gì khi đang ở bảng tin"; +"Tray long-press actions" = "Hành động nhấn giữ khay"; +"Composer doesn't accept GIFs" = "Trình soạn không chấp nhận GIF"; +"Copy GIF link" = "Sao chép liên kết GIF"; +"Copy image link" = "Sao chép liên kết hình ảnh"; +"Custom GIF in comments" = "GIF tùy chỉnh trong bình luận"; +"Failed to build GIF model" = "Không thể xây dựng mô hình GIF"; +"GIF link copied" = "Đã sao chép liên kết GIF"; +"Image" = "Hình ảnh"; +"Image link copied" = "Đã sao chép liên kết hình ảnh"; +"Invalid Giphy URL" = "URL Giphy không hợp lệ"; +"Long-press the GIF button to paste any Giphy URL" = "Nhấn giữ nút GIF để dán URL Giphy bất kỳ"; +"Paste Giphy Link" = "Dán liên kết Giphy"; +"Paste a giphy.com URL or media ID" = "Dán URL giphy.com hoặc ID media"; +"Send" = "Gửi"; + +////////////////////////////////////////////////////////////////////////////// +// REELS // +// Settings → Reels tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button above the reel sidebar with view-cover/download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "Thêm nút hành động RyukGram phía trên thanh bên reel với các mục xem ảnh bìa/tải xuống/chia sẻ/sao chép/mở rộng/đăng lại. Chạm sẽ mở menu theo mặc định; thay đổi hành vi chạm bên dưới."; +"Always show progress scrubber" = "Luôn hiển thị thanh tua tiến trình"; +"Auto-scroll reels" = "Tự động cuộn reel"; +"Change what happens when you tap on a reel" = "Thay đổi hành động khi chạm vào reel"; +"Confirm reel refresh" = "Xác nhận làm mới reel"; +"Custom speed" = "Tốc độ tùy chỉnh"; +"Disable auto-unmuting reels" = "Tắt tự động bật tiếng reel"; +"Disable scrolling reels" = "Tắt cuộn reel"; +"Disable tab button refresh" = "Tắt làm mới nút tab"; +"Doom scrolling limit" = "Giới hạn cuộn vô tận"; +"e.g. 1.75" = "ví dụ 1.75"; +"Enter a value between 0.5 and 2.0" = "Nhập giá trị từ 0.5 đến 2.0"; +"Forces the progress bar to appear on every reel" = "Buộc thanh tiến trình xuất hiện trên mọi reel"; +"Hide \"Made with Edits\" badge" = "Ẩn huy hiệu \"Tạo bằng Edits\""; +"Hide friends avatars" = "Ẩn ảnh đại diện bạn bè"; +"Hide reels header" = "Ẩn tiêu đề reel"; +"Hide social context overlay" = "Ẩn lớp phủ ngữ cảnh xã hội"; +"Hides the avatar bubbles next to the Friends tab in reels" = "Ẩn bong bóng ảnh đại diện cạnh tab Bạn bè trong reel"; +"Hides the Edits app promo pill on reels" = "Ẩn pill quảng bá ứng dụng Edits trên reel"; +"Hides the floating overlay showing who reposted or commented on reels" = "Ẩn lớp phủ nổi hiển thị ai đã đăng lại hoặc bình luận trên reel"; +"Hides the repost button on the reels sidebar" = "Ẩn nút đăng lại trên thanh bên reel"; +"Hides the top navigation bar when watching reels" = "Ẩn thanh điều hướng trên cùng khi xem reel"; +"Hiding" = "Ẩn"; +"Hold the 3-dot on any reel to open speed picker" = "Giữ nút 3 chấm trên reel bất kỳ để mở bộ chọn tốc độ"; +"IG default" = "Mặc định IG"; +"IG default: native behavior. RyukGram: re-advances after swiping back." = "Mặc định IG: hành vi gốc. RyukGram: tự chuyển tiếp lại sau khi vuốt quay lại."; +"Limits" = "Giới hạn"; +"Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "Giới hạn số lượng reel có thể cuộn tại một thời điểm và ngăn làm mới"; +"Only loads %@ %@" = "Chỉ tải %@ %@"; +"Places a button above the like/comment/share column on each reel" = "Đặt một nút phía trên cột thích/bình luận/chia sẻ trên mỗi reel"; +"Playback speed" = "Tốc độ phát"; +"Prevent doom scrolling" = "Ngăn cuộn vô tận"; +"Prevents reels from being scrolled to the next video" = "Ngăn reel chuyển sang video tiếp theo khi vuốt"; +"Prevents reels from unmuting when the volume/silent button is pressed" = "Ngăn reel bật tiếng khi nhấn nút âm lượng/im lặng"; +"RyukGram" = "RyukGram"; +"Shows an alert when you trigger a reels refresh" = "Hiển thị cảnh báo khi bạn làm mới reel"; +"Shows buttons to reveal and auto-fill the password on locked reels" = "Hiển thị nút hiện và tự động điền mật khẩu trên reel bị khóa"; +"Swipe a reel left to open the author's profile" = "Vuốt một reel sang trái để mở hồ sơ của tác giả"; +"Swipe left to profile" = "Vuốt sang trái để mở hồ sơ"; +"Tap Controls" = "Điều khiển chạm"; +"Tap to mute on photo reels" = "Chạm để tắt tiếng trên reel ảnh"; +"Tapping the Reels tab while on reels does nothing" = "Chạm tab Reels khi đang ở reel sẽ không làm gì"; +"Unlock password-locked reels" = "Mở khóa reel bị khóa bằng mật khẩu"; +"When pause mode is on, tap on photo reels toggles audio instead of the native pause gesture" = "Khi bật chế độ tạm dừng, chạm vào reel ảnh sẽ bật/tắt âm thanh thay vì thao tác tạm dừng mặc định"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE // +// Settings → Profile tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "Thêm nút lọc & sắp xếp mọi danh sách người theo dõi/đang theo dõi. Đặt lại khi bạn thoát."; +"Adds a view option to the highlight long-press menu to open the cover in full-screen" = "Thêm tùy chọn xem vào menu nhấn giữ highlight để mở ảnh bìa toàn màn hình"; +"Copy note on long press" = "Sao chép ghi chú khi nhấn giữ"; +"Extra stats shown on each post and reel card in profile grids." = "Số liệu bổ sung hiển thị trên mỗi thẻ bài viết và reel trong lưới hồ sơ."; +"Fake follower count" = "Giả số người theo dõi"; +"Fake following count" = "Giả số đang theo dõi"; +"Fake post count" = "Giả số bài viết"; +"Fake profile stats" = "Giả thống kê hồ sơ"; +"Fake verified badge" = "Giả huy hiệu xác minh"; +"Fetch missing counts" = "Tải số đếm còn thiếu"; +"Filter & sort lists" = "Lọc & sắp xếp danh sách"; +"Follow indicator" = "Chỉ báo theo dõi"; +"Follower & following lists" = "Danh sách người theo dõi & đang theo dõi"; +"Follower count" = "Số người theo dõi"; +"Following count" = "Số đang theo dõi"; +"Long press a profile picture to open it in full-screen with zoom, share, and save" = "Nhấn giữ ảnh đại diện để mở toàn màn hình với phóng to, chia sẻ và lưu"; +"Long press the note bubble on a profile to copy the text" = "Nhấn giữ bong bóng ghi chú trên hồ sơ để sao chép văn bản"; +"Long press to download directly (ignored when zoom is on)" = "Nhấn giữ để tải trực tiếp (bị bỏ qua khi bật thu phóng)"; +"Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "Cử chỉ nhấn giữ trên các thành phần hồ sơ — được tách riêng khỏi các nút hành động theo tính năng."; +"Only affects your own profile header. Other users see the real numbers." = "Chỉ ảnh hưởng đến phần đầu hồ sơ của bạn. Người dùng khác sẽ thấy số thật."; +"Override view count" = "Ghi đè số lượt xem"; +"Post count" = "Số bài viết"; +"Profile card details" = "Chi tiết thẻ hồ sơ"; +"Profile stats" = "Thống kê hồ sơ"; +"Render counts in shortened format." = "Hiển thị số đếm ở dạng rút gọn."; +"Save profile picture" = "Lưu ảnh hồ sơ"; +"Short numbers" = "Số rút gọn"; +"Show a checkmark next to your name on your own profile" = "Hiển thị dấu tích cạnh tên trên hồ sơ của bạn"; +"Show full follower count" = "Hiển thị đầy đủ số người theo dõi"; +"Show full post count" = "Hiển thị đầy đủ số bài viết"; +"Show like count" = "Hiển thị số lượt thích"; +"Show upload date" = "Hiển thị ngày đăng"; +"Shows whether the profile user follows you" = "Hiển thị liệu người dùng hồ sơ có theo dõi bạn không"; +"Tap to set" = "Chạm để đặt"; +"Uses Instagram's API. May hit rate limits." = "Dùng API của Instagram. Có thể bị giới hạn tốc độ."; +"View highlight cover" = "Xem ảnh bìa highlight"; +"Zoom profile photo" = "Phóng to ảnh đại diện"; + +////////////////////////////////////////////////////////////////////////////// +// SAVING & DOWNLOADS // +// Settings → Saving tab // +////////////////////////////////////////////////////////////////////////////// + +"Active, queued, and finished downloads" = "Tải xuống đang chạy, chờ và đã xong"; +"Auto-retry attempts" = "Số lần tự động thử lại"; +"Auto-retry failed downloads" = "Tự động thử lại các lượt tải thất bại"; +"Confirm before download" = "Xác nhận trước khi tải xuống"; +"Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "Đã lỗi thời. Nút hành động RyukGram (được cấu hình theo từng tính năng trong Feed/Reels/Stories) là cách mới để tải media. Chỉ bật công tắc chính này nếu bạn thích kiểu nhấn giữ nhiều ngón trực tiếp trên media như cũ."; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "Không tạm dừng tải xuống, mã hóa hoặc quét hồ sơ khi bạn rời ứng dụng"; +"Download queue" = "Hàng đợi tải xuống"; +"Downloads" = "Tải xuống"; +"Downloads with %@ %@" = "Tải xuống với %@ %@"; +"Enable long-press gesture" = "Bật cử chỉ nhấn giữ"; +"Finger count for long-press" = "Số ngón tay để nhấn giữ"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "Số lượt tải chạy cùng lúc — các lượt dư chờ trong hàng đợi và bắt đầu khi có chỗ trống. Lượt tải thất bại tự động thử lại khi lỗi mạng. Mở trình quản lý để theo dõi, hủy hoặc thử lại các lượt tải."; +"Keep running in background" = "Tiếp tục chạy nền"; +"Legacy long-press gesture" = "Cử chỉ nhấn giữ cũ"; +"Long-press hold time" = "Thời gian giữ nhấn"; +"Master toggle for the deprecated gesture workflow (off by default)" = "Công tắc chính cho quy trình cử chỉ đã lỗi thời (tắt theo mặc định)"; +"Max simultaneous downloads" = "Số lượt tải đồng thời tối đa"; +"Open download manager" = "Mở trình quản lý tải xuống"; +"Press finger(s) for %@ %@" = "Nhấn ngón tay trong %@ %@"; +"Retry automatically when a download drops on a network error" = "Tự động thử lại khi một lượt tải bị rớt do lỗi mạng"; +"Route saves into a custom album in Photos instead of the camera roll root" = "Lưu vào album riêng trong Ảnh thay vì thư viện camera"; +"Run up to %@ %@ at once" = "Chạy tối đa %@ %@ cùng lúc"; +"Save action" = "Hành động lưu"; +"Save to dedicated album" = "Lưu vào album riêng"; +"Show a confirmation dialog before starting a download" = "Hiển thị hộp thoại xác nhận trước khi bắt đầu tải xuống"; +"Try %@ more %@ before giving up" = "Thử thêm %@ %@ trước khi bỏ cuộc"; +"What happens after the gesture downloads" = "Điều gì xảy ra sau khi cử chỉ tải xuống"; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "Khi bật \"Lưu vào album riêng\", các lượt tải xuống và lựa chọn \"Lưu vào Ảnh\" từ bảng chia sẻ sẽ được đưa vào một album có tên trong thư viện Ảnh của bạn. Chạm \"Tên album\" để thay đổi."; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu thất bại"; +"%lu of %lu done" = "Hoàn tất %lu trên %lu"; +"%lu saved, %lu failed" = "Đã lưu %lu, %lu thất bại"; +"Active" = "Đang hoạt động"; +"Auto-retry" = "Tự động thử lại"; +"Clear completed" = "Xóa mục đã xong"; +"Completed" = "Đã hoàn tất"; +"Download settings" = "Cài đặt tải xuống"; +"Downloading %lu items" = "Đang tải %lu mục"; +"Downloading…" = "Đang tải…"; +"Encoding %d%%" = "Đang mã hóa %d%%"; +"Encoding…" = "Đang mã hóa…"; +"Extra downloads wait in line and start as slots free up." = "Các lượt tải dư chờ trong hàng đợi và bắt đầu khi có chỗ trống."; +"No downloads yet" = "Chưa có lượt tải nào"; +"Preview" = "Xem trước"; +"Queued" = "Đang chờ"; +"Redownload" = "Tải lại"; +"Retry" = "Thử lại"; +"Retrying…" = "Đang thử lại…"; +"Waiting for connection…" = "Đang chờ kết nối…"; +"Waiting…" = "Đang chờ…"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES // +// Settings → Stories tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button next to the eye button on stories with download/share/copy/expand/repost/view-mentions entries. Tap opens the menu by default; change the tap behavior below." = "Thêm nút hành động RyukGram cạnh nút con mắt trên tin với các mục tải xuống/chia sẻ/sao chép/mở rộng/đăng lại/xem lượt nhắc. Chạm sẽ mở menu theo mặc định; thay đổi hành vi chạm bên dưới."; +"Adds a speaker button to the story overlay to unmute/mute audio. Also available in the 3-dot menu" = "Thêm nút loa vào lớp phủ tin để bật/tắt âm thanh. Cũng có trong menu ba chấm"; +"Advance on story like" = "Chuyển tiếp khi thích tin"; +"Advance on story reply" = "Chuyển tiếp khi trả lời tin"; +"Advance when marking as seen" = "Chuyển tiếp khi đánh dấu đã xem"; +"Audio" = "Âm thanh"; +"Block all: all stories blocked — listed users are exceptions.\nBlock selected: only listed users are blocked — everything else is normal.\nBoth lists are saved independently." = "Chặn tất cả: mọi tin đều bị chặn — người dùng trong danh sách là ngoại lệ.\nChặn đã chọn: chỉ người dùng trong danh sách bị chặn — mọi thứ khác bình thường.\nCả hai danh sách được lưu độc lập."; +"Blocking mode" = "Chế độ chặn"; +"Button = single-tap mark seen. Toggle = tap toggles story read receipts on/off (eye fills blue when on)" = "Nút = chạm một lần để đánh dấu đã xem. Công tắc = chạm để bật/tắt thông báo đã xem tin (mắt chuyển xanh khi bật)"; +"Disable instants creation" = "Tắt tạo instants"; +"Disable story seen receipt" = "Tắt thông báo đã xem tin"; +"Enable story user list" = "Bật danh sách người xem tin"; +"Hides the functionality to create/send instants" = "Ẩn chức năng tạo/gửi instants"; +"Hides the notification for others when you view their story" = "Ẩn thông báo cho người khác khi bạn xem tin của họ"; +"Inserts a button next to the seen/eye button on story overlays" = "Chèn nút cạnh nút đã xem/con mắt trên lớp phủ tin"; +"Keep stories visually seen locally" = "Giữ trạng thái đã xem tin cục bộ"; +"Liking a story automatically advances to the next one after a short delay" = "Thích một tin sẽ tự động chuyển sang tin tiếp theo sau một khoảng ngắn"; +"Manage list" = "Quản lý danh sách"; +"Manage list (%lu)" = "Quản lý danh sách (%lu)"; +"Manual seen button mode" = "Chế độ nút đã xem thủ công"; +"Mark seen on story like" = "Đánh dấu đã xem khi thích tin"; +"Mark seen on story reply" = "Đánh dấu đã xem khi trả lời tin"; +"Marks a story as seen the moment you tap the heart, even with seen blocking on" = "Đánh dấu tin là đã xem ngay khi bạn chạm tim, kể cả khi bật chặn đã xem"; +"Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "Đánh dấu tin là đã xem khi bạn gửi trả lời hoặc phản ứng emoji, kể cả khi bật chặn đã xem"; +"Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "Đánh dấu tin là đã xem cục bộ (vòng xám) trong khi vẫn chặn thông báo đã xem trên máy chủ"; +"Master toggle. When off, the list is ignored" = "Công tắc chính. Khi tắt, danh sách sẽ bị bỏ qua"; +"Playback" = "Phát lại"; +"Search, sort, swipe to remove" = "Tìm kiếm, sắp xếp, vuốt để xóa"; +"Seen receipts" = "Thông báo đã xem"; +"Sending a reply or emoji reaction automatically advances to the next story" = "Gửi trả lời hoặc phản ứng emoji sẽ tự động chuyển sang tin tiếp theo"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "Thêm mục 'Xem lượt nhắc' vào menu nút hành động và menu ba chấm trên tin"; +"Mentions overlay button" = "Nút lớp phủ lượt nhắc"; +"Mentions count badge" = "Huy hiệu số lượt nhắc"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "Thêm nút cạnh nút hành động/con mắt trên lớp phủ tin. Chỉ xuất hiện khi tin hiện tại có lượt nhắc hoặc bài viết/reel được chia sẻ"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "Hiển thị số lượng tài khoản được nhắc duy nhất dưới dạng huy hiệu đỏ trên nút lớp phủ"; +"Hide stories midcards" = "Ẩn thẻ giữa trong tin"; +"Removes the Trending and Music promo cards from the stories tray" = "Xóa thẻ quảng bá Xu hướng và Âm nhạc khỏi khay tin"; +"Stickers" = "Sticker"; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "Xem trước kết quả thăm dò/quiz/thanh trượt trước khi tương tác — bạn vẫn có thể chạm để bình chọn bình thường. Buộc cũ sẽ thêm lại sticker Quiz và Reveal vào trình soạn tin."; +"Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "Xem trước kết quả thăm dò/quiz/thanh trượt trên reel trước khi tương tác — bạn vẫn có thể chạm để bình chọn bình thường."; +"Force legacy stickers in tray" = "Buộc sticker cũ trong khay"; +"Adds Quiz and Reveal stickers back to the picker" = "Thêm lại sticker Quiz và Reveal vào bộ chọn"; +"Bypass Reveal sticker" = "Bỏ qua sticker Reveal"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "Bỏ qua bước DM-để-hiển-thị trên tin có sticker Reveal"; +"Show quiz answer" = "Hiển thị đáp án quiz"; +"Circle the correct option on quiz stickers, or the leading option on polls" = "Khoanh tùy chọn đúng trên sticker quiz hoặc tùy chọn dẫn đầu trên bình chọn"; +"Show poll vote counts" = "Hiển thị số phiếu bình chọn"; +"Show vote tallies on poll options and slider count/average before you vote" = "Hiển thị số phiếu và số lượng/trung bình thanh trượt trước khi bạn bỏ phiếu"; +"Stop story auto-advance" = "Dừng tự động chuyển tin"; +"Stories" = "Tin"; +"Stories won't auto-skip to the next one when the timer ends. Tap to advance manually" = "Tin sẽ không tự chuyển sang cái tiếp theo khi hết thời gian. Chạm để chuyển thủ công"; +"Story audio toggle" = "Nút bật/tắt âm thanh tin"; +"Story user list" = "Danh sách người xem tin"; +"Tapping the eye button to mark a story as seen advances to the next story automatically" = "Chạm nút con mắt để đánh dấu đã xem sẽ tự động chuyển sang tin tiếp theo"; +"View story mentions" = "Xem lượt nhắc trong tin"; +"Which stories get seen-receipt blocking" = "Tin nào bị chặn thông báo đã xem"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — READ RECEIPTS // +// Settings → Read receipts tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to DM threads to mark messages as seen" = "Thêm nút vào cuộc trò chuyện DM để đánh dấu tin nhắn là đã xem"; +"Auto mark seen on interact" = "Tự động đánh dấu đã xem khi tương tác"; +"Auto mark seen on typing" = "Tự động đánh dấu đã xem khi nhập"; +"Control when messages are marked as seen" = "Kiểm soát thời điểm tin nhắn được đánh dấu đã xem"; +"How the seen button behaves" = "Cách nút đã xem hoạt động"; +"Manually mark messages as seen" = "Đánh dấu tin nhắn là đã xem thủ công"; +"Marks messages as seen when you send any message" = "Đánh dấu tin nhắn là đã xem khi bạn gửi bất kỳ tin nhắn nào"; +"Marks messages as seen when you start typing" = "Đánh dấu tin nhắn là đã xem khi bạn bắt đầu nhập"; +"Read receipt mode" = "Chế độ xác nhận đã đọc"; +"Read receipts" = "Xác nhận đã đọc"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — KEEP DELETED // +// Settings → Keep deleted messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Activity" = "Hoạt động"; +"Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "Thêm tùy chọn 'Tải xuống' vào menu nhấn giữ của tin nhắn thoại để lưu dưới dạng âm thanh M4A"; +"Allows typing and sending DMs longer than Instagram's limit" = "Cho phép nhập và gửi DM dài hơn giới hạn của Instagram"; +"Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "Thêm tùy chọn 'Gửi tệp' vào menu dấu cộng trong DM. Loại tệp được hỗ trợ có thể bị Instagram giới hạn"; +"Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "Thêm tùy chọn 'Tệp âm thanh' vào menu dấu cộng trong DM để gửi tệp âm thanh dưới dạng tin nhắn thoại"; +"Adds copy text, download GIF/audio to the note long-press menu" = "Thêm sao chép văn bản, tải GIF/âm thanh vào menu nhấn giữ ghi chú"; +"Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "Chặn tất cả: mọi cuộc trò chuyện đều bị chặn — các cuộc trò chuyện trong danh sách là ngoại lệ.\nChặn đã chọn: chỉ các cuộc trò chuyện trong danh sách bị chặn — mọi thứ khác bình thường.\nCả hai danh sách được lưu độc lập. Nhấn giữ cuộc trò chuyện trong hộp thư để thêm hoặc xóa."; +"Block keep-deleted for excluded chats" = "Chặn giữ tin đã xóa cho cuộc trò chuyện bị loại trừ"; +"Block keep-deleted for unlisted chats" = "Chặn giữ tin đã xóa cho cuộc trò chuyện không có trong danh sách"; +"Bypass DM character limit" = "Bỏ qua giới hạn ký tự DM"; +"Chat list" = "Danh sách trò chuyện"; +"Confirmation dialog before clearing preserved messages" = "Hộp thoại xác nhận trước khi xóa tin nhắn đã lưu giữ"; +"Copies note text directly on long press without opening the menu" = "Sao chép trực tiếp văn bản ghi chú khi nhấn giữ mà không mở menu"; +"Copy text on hold" = "Sao chép văn bản khi giữ"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "Thêm nút cọ vẽ và phím tắt nhấn giữ để chọn màu nền và văn bản tùy chỉnh"; +"Custom note themes" = "Giao diện ghi chú tùy chỉnh"; +"Disable vanish mode swipe" = "Tắt vuốt chế độ biến mất"; +"Disable typing status" = "Tắt trạng thái đang nhập"; +"Disable view-once limitations" = "Tắt giới hạn xem một lần"; +"Download voice messages" = "Tải tin nhắn thoại"; +"Enable chat list" = "Bật danh sách trò chuyện"; +"Enable note theming" = "Bật giao diện ghi chú"; +"Enables the notes theme picker" = "Bật bộ chọn giao diện ghi chú"; +"Files" = "Tệp"; +"Full last active date" = "Ngày hoạt động cuối đầy đủ"; +"Hide reels blend button" = "Ẩn nút trộn reel"; +"Hide send to group chat" = "Ẩn gửi tới nhóm trò chuyện"; +"Pin recipients on long-press" = "Ghim người nhận khi nhấn giữ"; +"Long-press in the share sheet to pin a chat/user to the top" = "Nhấn giữ trong bảng chia sẻ để ghim cuộc trò chuyện/người dùng lên trên cùng"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "Nhấn giữ một người nhận để ghim hoặc bỏ ghim. Người nhận đã ghim hiển thị ở trên cùng."; +"Recipient pinned" = "Đã ghim người nhận"; +"Recipient unpinned" = "Đã bỏ ghim người nhận"; +"Couldn't resolve recipient id" = "Không thể phân giải ID người nhận"; +"Hide video call button" = "Ẩn nút gọi video"; +"Hide voice call button" = "Ẩn nút gọi thoại"; +"Hides the blend button in DMs" = "Ẩn nút blend trong DM"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "Xóa hàng tạo/gửi tới nhóm trò chuyện khi chia sẻ tới nhiều người nhận"; +"Hides typing indicator from others" = "Ẩn trạng thái đang nhập khỏi người khác"; +"Indicate unsent messages" = "Hiển thị tin nhắn đã thu hồi"; +"Keep deleted messages" = "Giữ tin nhắn đã xóa"; +"Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "Biến tin nhắn xem một lần hoạt động như tin nhắn hình ảnh bình thường (có thể lặp/tạm dừng)"; +"Note actions" = "Hành động ghi chú"; +"Preserves messages that others unsend" = "Giữ lại tin nhắn người khác đã thu hồi"; +"Prevents accidental swipe-up activation of vanish mode" = "Ngăn vô tình vuốt lên kích hoạt chế độ biến mất"; +"Quick list button in chats" = "Nút danh sách nhanh trong trò chuyện"; +"Removes the audio call button from DM thread header" = "Xóa nút gọi thoại khỏi đầu đoạn chat DM"; +"Removes the video call button from DM thread header" = "Xóa nút gọi video khỏi đầu đoạn chat DM"; +"Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "Phát lại tin nhắn hình ảnh mà không hết hạn. Bật trong menu nút con mắt hoặc dùng nút riêng khi nút con mắt bị tắt"; +"Search, sort, swipe to remove or toggle keep-deleted" = "Tìm kiếm, sắp xếp, vuốt để xóa hoặc bật giữ mục đã xóa"; +"Send audio as file" = "Gửi âm thanh dưới dạng tệp"; +"Send files (experimental)" = "Gửi tệp (thử nghiệm)"; +"Show full date instead of \"Active 2h ago\"" = "Hiển thị ngày đầy đủ thay vì \"Hoạt động 2 giờ trước\""; +"Shows a button in DM threads to add/remove chats from the list. Long-press for more options" = "Hiển thị nút trong đoạn chat DM để thêm/xóa chat khỏi danh sách. Nhấn giữ để xem thêm tùy chọn"; +"Shows a notification pill when a message is unsent" = "Hiển thị pill thông báo khi tin nhắn bị thu hồi"; +"Shows an \"Unsent\" label on preserved messages" = "Hiển thị nhãn \"Đã thu hồi\" trên tin nhắn được giữ lại"; +"Unlimited replay of visual messages" = "Phát lại không giới hạn tin nhắn hình ảnh"; +"Unsent message notification" = "Thông báo tin nhắn đã thu hồi"; +"Voice messages" = "Tin nhắn thoại"; +"Warn before clearing on refresh" = "Cảnh báo trước khi xóa khi làm mới"; +"Which chats get read-receipt blocking" = "Cuộc trò chuyện nào bị chặn thông báo đã xem"; +"⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ Kéo để làm mới trong tab DM sẽ xóa toàn bộ tin nhắn đã lưu giữ. Bật cảnh báo bên dưới để hiển thị hộp thoại xác nhận."; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "Đã xóa %@%lu"; +"%lu messages from %lu users" = "%lu tin nhắn từ %lu người dùng"; +"%lu selected" = "Đã chọn %lu"; +"Absolute date + time" = "Ngày + giờ tuyệt đối"; +"Adjust the filters or clear the search to see more." = "Điều chỉnh bộ lọc hoặc xóa tìm kiếm để xem thêm."; +"All time" = "Mọi lúc"; +"Browse, filter and search recorded messages" = "Duyệt, lọc và tìm kiếm tin nhắn đã ghi"; +"Captures unsent messages with their text or media" = "Lưu lại tin nhắn đã thu hồi cùng văn bản hoặc media"; +"Clear deleted-message log?" = "Xóa nhật ký tin nhắn đã xóa?"; +"Clear from this user" = "Xóa từ người dùng này"; +"Clear log" = "Xóa nhật ký"; +"Clear log for this account" = "Xóa nhật ký cho tài khoản này"; +"Clear log for this user?" = "Xóa nhật ký của người dùng này?"; +"Clear media files" = "Xóa tệp media"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "Xóa media giữ lại các bản ghi (văn bản, người gửi, thời gian). Xóa nhật ký sẽ xóa mọi thứ cho tài khoản này."; +"Close" = "Đóng"; +"Content unavailable" = "Nội dung không khả dụng"; +"Copied" = "Đã sao chép"; +"Copy URL" = "Sao chép URL"; +"Date range" = "Khoảng thời gian"; +"Deleted messages" = "Tin nhắn đã xóa"; +"Deleted messages log" = "Nhật ký tin nhắn đã xóa"; +"Deleted: %@\n" = "Đã xóa: %@\n"; +"Edit %lu" = "Chỉnh sửa %lu"; +"Edit history" = "Lịch sử chỉnh sửa"; +"Edited" = "Đã chỉnh sửa"; +"Empty" = "Trống"; +"Enable deleted messages log" = "Bật nhật ký tin nhắn đã xóa"; +"Enable Settings → Messages → Deleted messages log to start recording." = "Bật Cài đặt → Tin nhắn → Nhật ký tin nhắn đã xóa để bắt đầu ghi."; +"GIF" = "GIF"; +"Hashtag" = "Hashtag"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "Loại: %@\n"; +"Last 30 days" = "30 ngày qua"; +"Last 7 days" = "7 ngày qua"; +"Link" = "Liên kết"; +"Live location" = "Vị trí trực tiếp"; +"Location" = "Vị trí"; +"Logging is off" = "Ghi nhật ký đang tắt"; +"Media on disk" = "Media trên ổ đĩa"; +"Most messages" = "Nhiều tin nhắn nhất"; +"Most recent" = "Mới nhất"; +"No deleted messages yet" = "Chưa có tin nhắn đã xóa"; +"No matches" = "Không có kết quả khớp"; +"Nothing to save" = "Không có gì để lưu"; +"Oldest first" = "Cũ nhất trước"; +"Open log" = "Mở nhật ký"; +"Open profile" = "Mở hồ sơ"; +"Original" = "Gốc"; +"Play" = "Phát"; +"Post" = "Bài viết"; +"Records every message someone unsends, grouped by sender" = "Ghi lại mọi tin nhắn người khác thu hồi, nhóm theo người gửi"; +"Reel" = "Reel"; +"Relative (1m / 3h / 3d ago)" = "Tương đối (1p / 3g / 3 ngày trước)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "Xóa mọi tin nhắn đã xóa được lưu giữ và media đã chụp cho tài khoản hiện tại. Không thể hoàn tác."; +"Removes every preserved deleted message and its captured media for this account." = "Xóa mọi tin nhắn đã xóa được lưu giữ và media đã chụp cho tài khoản này."; +"Removes every preserved deleted message from this sender." = "Xóa mọi tin nhắn đã xóa được lưu giữ từ người gửi này."; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "Xóa mọi ảnh, video và đoạn thoại đã lưu. Bản ghi vẫn giữ văn bản và thông tin người gửi."; +"Search messages" = "Tìm kiếm tin nhắn"; +"Search senders or messages" = "Tìm kiếm người gửi hoặc tin nhắn"; +"Select" = "Chọn"; +"Show edit history" = "Hiện lịch sử chỉnh sửa"; +"Source URL recorded but media not stored.\n" = "Đã ghi URL nguồn nhưng media không được lưu.\n"; +"Sticker" = "Nhãn dán"; +"Tap to open in Instagram" = "Chạm để mở trong Instagram"; +"Tap to open in Maps" = "Chạm để mở trong Maps"; +"Tap to play" = "Chạm để phát"; +"Tap to play · %@" = "Chạm để phát · %@"; +"Text" = "Văn bản"; +"This account" = "Tài khoản này"; +"Unknown" = "Không xác định"; +"Video" = "Video"; +"View" = "Xem"; +"Voice" = "Thoại"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "Khi bật, tin nhắn đã xóa và media của chúng sẽ được lưu trên thiết bị này. Tắt và xóa nhật ký để xóa lịch sử."; +"When someone unsends a message, it will appear here grouped by sender." = "Khi ai đó thu hồi tin nhắn, nó sẽ xuất hiện ở đây được nhóm theo người gửi."; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES // +// Settings → Messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Custom chat background" = "Hình nền trò chuyện tùy chỉnh"; +"Incoming calls stay silent — no ring, no screen, no notification" = "Cuộc gọi đến luôn im lặng — không chuông, không màn hình, không thông báo"; +"Messages" = "Tin nhắn"; +"Silence incoming calls" = "Tắt tiếng cuộc gọi đến"; +"Threads" = "Threads"; +"Use your own images as chat backgrounds" = "Dùng ảnh của riêng bạn làm hình nền trò chuyện"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "Thêm nút thư viện vào camera instants để bạn có thể gửi ảnh từ album"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "Thêm nút hành động RyukGram vào tiêu đề trình xem instants với các mục mở rộng, lưu, chia sẻ và lưu hàng loạt"; +"All loaded instants" = "Tất cả instants đã tải"; +"Bypasses the Instants screenshot block" = "Bỏ qua chặn chụp màn hình Instants"; +"Could not locate the instant on screen" = "Không thể định vị instant trên màn hình"; +"Current instant" = "Instant hiện tại"; +"In-app Gallery" = "Thư viện trong ứng dụng"; +"Instant" = "Instant"; +"Instants" = "Instants"; +"Instants action button" = "Nút hành động Instants"; +"No instants currently loaded" = "Hiện không có instants nào được tải"; +"No media available to save" = "Không có media nào để lưu"; +"Photos library" = "Thư viện Ảnh"; +"Pick from" = "Chọn từ"; +"Queued %lu instants" = "Đã xếp hàng %lu instants"; +"Save all to Gallery" = "Lưu tất cả vào Thư viện"; +"Save all to Photos" = "Lưu tất cả vào Ảnh"; +"Save to Gallery" = "Lưu vào Thư viện"; +"Send from gallery" = "Gửi từ thư viện"; +"Tweaks for the QuickSnap / Instants camera surface." = "Tinh chỉnh cho giao diện camera QuickSnap / Instants."; +"Use" = "Dùng"; + +////////////////////////////////////////////////////////////////////////////// +// NAVIGATION // +// Settings → Navigation tab // +////////////////////////////////////////////////////////////////////////////// + +"Also hide the bottom tab bar — only the inbox is visible" = "Cũng ẩn thanh tab dưới cùng — chỉ hiển thị hộp thư"; +"Hide create tab" = "Ẩn tab tạo"; +"Hide explore tab" = "Ẩn tab khám phá"; +"Hide feed tab" = "Ẩn tab bảng tin"; +"Hide messages tab" = "Ẩn tab tin nhắn"; +"Hide reels tab" = "Ẩn tab reel"; +"Hide tab bar" = "Ẩn thanh tab"; +"Hides every tab except DM inbox + profile and forces launch into the inbox. Settings shortcut moves to long-press on the inbox tab." = "Ẩn mọi tab ngoại trừ hộp thư DM + hồ sơ và buộc khởi chạy vào hộp thư. Phím tắt cài đặt được chuyển sang nhấn giữ trên tab hộp thư."; +"Hides the create tab on the bottom navigation bar" = "Ẩn tab tạo trên thanh điều hướng dưới"; +"Hides the direct messages tab on the bottom navigation bar" = "Ẩn tab tin nhắn trực tiếp trên thanh điều hướng dưới"; +"Hides the explore/search tab on the bottom navigation bar" = "Ẩn tab khám phá/tìm kiếm trên thanh điều hướng dưới"; +"Hides the feed/home tab on the bottom navigation bar" = "Ẩn tab bảng tin/trang chủ trên thanh điều hướng dưới"; +"Hides the reels tab on the bottom navigation bar" = "Ẩn tab reel trên thanh điều hướng dưới"; +"Hiding tabs" = "Ẩn tab"; +"Icon order" = "Thứ tự biểu tượng"; +"Launch tab" = "Tab khởi chạy"; +"Lets you swipe to switch between navigation bar tabs" = "Cho phép vuốt để chuyển giữa các tab thanh điều hướng"; +"Messages only" = "Chỉ tin nhắn"; +"Messages-only mode" = "Chế độ chỉ tin nhắn"; +"Navigation" = "Điều hướng"; +"Swipe between tabs" = "Vuốt giữa các tab"; +"Tab the app opens to. Ignored when Messages-only is on" = "Tab ứng dụng mở vào. Bị bỏ qua khi bật chỉ Tin nhắn"; +"The order of the icons on the bottom navigation bar" = "Thứ tự biểu tượng trên thanh điều hướng dưới"; +"Turn IG into a DM-only client" = "Biến IG thành ứng dụng chỉ nhắn tin"; + +////////////////////////////////////////////////////////////////////////////// +// CONFIRM ACTIONS // +// Settings → Confirm actions tab // +////////////////////////////////////////////////////////////////////////////// + +"All" = "Tất cả"; +"Calls" = "Cuộc gọi"; +"Comments & posts" = "Bình luận & bài đăng"; +"Confirm actions" = "Xác nhận hành động"; +"Confirm changing theme" = "Xác nhận đổi giao diện"; +"Confirm follow" = "Xác nhận theo dõi"; +"Confirm follow requests" = "Xác nhận yêu cầu theo dõi"; +"Confirm Instants capture" = "Xác nhận chụp Instants"; +"Confirm Instants emoji reaction" = "Xác nhận phản ứng emoji với Instant"; +"Confirm like: Posts" = "Xác nhận thích: Bài viết"; +"Confirm like: Reels" = "Xác nhận thích: Reel"; +"Confirm note emoji reaction" = "Xác nhận phản ứng emoji với ghi chú"; +"Confirm note like" = "Xác nhận thích ghi chú"; +"Confirm posting comment" = "Xác nhận đăng bình luận"; +"Confirm repost" = "Xác nhận đăng lại"; +"Confirm send to group chat" = "Xác nhận gửi tới nhóm trò chuyện"; +"Confirm sticker interaction (highlights)" = "Xác nhận tương tác sticker (highlight)"; +"Confirm sticker interaction (stories)" = "Xác nhận tương tác sticker (tin)"; +"Confirm story emoji reaction" = "Xác nhận phản ứng emoji với tin"; +"Confirm story like" = "Xác nhận thích tin"; +"Confirm switching Instant" = "Xác nhận chuyển Instant"; +"Confirm unfollow" = "Xác nhận bỏ theo dõi"; +"Confirm vanish mode" = "Xác nhận chế độ biến mất"; +"Confirm video call" = "Xác nhận cuộc gọi video"; +"Confirm voice call" = "Xác nhận cuộc gọi thoại"; +"Confirm voice messages" = "Xác nhận tin nhắn thoại"; +"Follows" = "Theo dõi"; +"Likes" = "Lượt thích"; +"Messaging" = "Nhắn tin"; +"Reaction stickers only" = "Chỉ sticker phản ứng"; +"Reactions" = "Cảm xúc"; +"Send to group chat?" = "Gửi tới nhóm trò chuyện?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "Hiển thị cảnh báo trước khi tạo/gửi tới nhóm trò chuyện từ bảng chia sẻ"; +"Shows an alert before sending an emoji reaction on a note" = "Hiển thị cảnh báo trước khi gửi phản ứng emoji trên ghi chú"; +"Shows an alert before sending an emoji reaction on a story" = "Hiển thị cảnh báo trước khi gửi phản ứng emoji trên tin"; +"Shows an alert before sending an emoji reaction on an Instant" = "Hiển thị cảnh báo trước khi gửi phản ứng emoji trên Instant"; +"Shows an alert before taking a photo with the Instants camera" = "Hiển thị cảnh báo trước khi chụp ảnh bằng camera Instants"; +"Shows an alert before tapping to switch to the next/previous Instant" = "Hiển thị cảnh báo trước khi chạm để chuyển sang Instant kế tiếp/trước đó"; +"Shows an alert to confirm before sending a voice message" = "Hiển thị cảnh báo xác nhận trước khi gửi tin nhắn thoại"; +"Shows an alert to confirm before toggling vanish mode" = "Hiển thị cảnh báo xác nhận trước khi bật/tắt chế độ biến mất"; +"Shows an alert when you accept/decline a follow request" = "Hiển thị cảnh báo khi bạn chấp nhận/từ chối yêu cầu theo dõi"; +"Shows an alert when you change a chat theme to confirm" = "Hiển thị cảnh báo xác nhận khi đổi giao diện chat"; +"Shows an alert when you click the follow button to confirm the follow" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút theo dõi"; +"Shows an alert when you click the like button on notes to confirm the like" = "Hiển thị cảnh báo khi bạn nhấn nút thích trên ghi chú để xác nhận"; +"Shows an alert when you click the like button on posts to confirm the like" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút thích trên bài viết"; +"Shows an alert when you click the like button on reels to confirm the like" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút thích trên reel"; +"Shows an alert when you click the like button on stories to confirm the like" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút thích trên tin"; +"Shows an alert when you click the post comment button to confirm" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút đăng bình luận"; +"Shows an alert when you click the repost button to confirm before reposting" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút đăng lại trước khi đăng lại"; +"Shows an alert when you click the unfollow button to confirm" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút bỏ theo dõi"; +"Shows an alert when you click the video call button to confirm before calling" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút gọi video trước khi gọi"; +"Shows an alert when you click the voice call button to confirm before calling" = "Hiển thị cảnh báo xác nhận khi bạn nhấn nút gọi thoại trước khi gọi"; +"Shows an alert when you tap a sticker inside a highlight" = "Hiển thị cảnh báo khi bạn chạm sticker trong highlight"; +"Shows an alert when you tap a sticker on someone's story" = "Hiển thị cảnh báo khi bạn chạm sticker trên tin của người khác"; +"Stories & highlights" = "Tin & tin nổi bật"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld giờ"; +"%ld locked" = "%ld đã khoá"; +"%ld min" = "%ld phút"; +"%ldh idle" = "nhàn rỗi %ld giờ"; +"%ldm idle" = "nhàn rỗi %ld phút"; +"%lds" = "%ldgi"; +"%lds idle" = "nhàn rỗi %lds"; +"%lu hidden" = "%lu đã ẩn"; +"4 digits" = "4 chữ số"; +"6 digits" = "6 chữ số"; +"Add hidden chat" = "Thêm chat đã ẩn"; +"Add locked chat" = "Thêm chat đã khoá"; +"Allow Instants screenshots" = "Cho phép chụp Instants"; +"Always ask when opening again" = "Luôn hỏi khi mở lại"; +"Ask again after Instagram returns" = "Hỏi lại sau khi Instagram quay lại"; +"Auto-relock after idle" = "Tự khoá lại sau khi nhàn rỗi"; +"Balanced default" = "Mặc định cân bằng"; +"Best for sensitive sections" = "Tốt nhất cho các mục nhạy cảm"; +"Biometric" = "Sinh trắc học"; +"Change passcode" = "Đổi mật khẩu"; +"Chat hidden" = "Đã ẩn chat"; +"Chat locked" = "Đã khoá chat"; +"Chat unlocked" = "Đã mở khoá chat"; +"Choose a code you'll remember." = "Chọn mã bạn sẽ nhớ."; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "Chọn thời gian mục này vẫn mở khóa khi không hoạt động. Không bao giờ giữ mở khóa cho đến khi Instagram đóng hoặc chạy nền."; +"Confirm current passcode" = "Xác nhận mật khẩu hiện tại"; +"Confirm passcode" = "Xác nhận mật khẩu"; +"Could not save passcode" = "Không thể lưu mật khẩu"; +"Create passcode" = "Tạo mật khẩu"; +"Derivation failed" = "Tạo khóa thất bại"; +"DM inbox" = "Hộp thư DM"; +"Don't share unlock" = "Không dùng chung mở khóa"; +"Each target has its own enable, timeout, and re-lock configuration." = "Mỗi mục tiêu có cấu hình bật, hết giờ và khóa lại riêng."; +"Enable lock" = "Bật khóa"; +"Enter passcode" = "Nhập mật khẩu"; +"Enter value" = "Nhập giá trị"; +"Enter your current passcode to change it" = "Nhập mật khẩu hiện tại để thay đổi"; +"Enter your current passcode to reset it" = "Nhập mật mã hiện tại để đặt lại"; +"Enter your passcode to continue" = "Nhập mật khẩu để tiếp tục"; +"every use" = "mỗi lần dùng"; +"Every use" = "Mỗi lần dùng"; +"Hidden chats" = "Chat đã ẩn"; +"Hide chat" = "Ẩn chat"; +"Hide message preview" = "Ẩn xem trước tin nhắn"; +"Hide this chat?" = "Ẩn chat này?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "Ẩn giao diện RyukGram khỏi ảnh chụp/bản ghi và bỏ qua cảnh báo chụp màn hình của Instagram cho từng tính năng."; +"Idle timeout" = "Hết thời gian nhàn rỗi"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "Giữ mục tiêu này khóa riêng"; +"Less frequent prompts" = "Hỏi ít thường xuyên hơn"; +"Lock" = "Khoá"; +"Lock chat" = "Khoá chat"; +"Lock every time" = "Khoá mỗi lần"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "Khóa mỗi lần ưu tiên hơn thời gian chờ không hoạt động. Không dùng chung mở khóa giữ mục tiêu này tách biệt."; +"Lock targets" = "Mục tiêu khoá"; +"Lock the tweak" = "Khoá tweak"; +"Lock this chat" = "Khoá chat này"; +"Lock this chat?" = "Khoá chat này?"; +"Lock with passcode" = "Khoá bằng mật khẩu"; +"Locked chats" = "Chat đã khoá"; +"Long-press a chat to lock it individually" = "Giữ lâu một chat để khoá riêng nó"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "Giữ lâu một chat DM → Ẩn chat để thêm vào đây. Chat đã ẩn sẽ bị lọc khỏi hộp thư cho đến khi bạn xoá khỏi danh sách này."; +"Long-press a DM to add" = "Giữ lâu một DM để thêm"; +"Longest idle window" = "Khoảng chờ không hoạt động dài nhất"; +"Manage locked chats" = "Quản lý chat đã khoá"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "Công tắc chính. Tắt để vô hiệu hoá mọi mục tiêu khoá mà không mất cấu hình từng mục tiêu."; +"Never" = "Không bao giờ"; +"No passcode set" = "Chưa đặt mật khẩu"; +"Nothing here yet." = "Chưa có gì ở đây."; +"Off" = "Tắt"; +"On" = "Bật"; +"On — %@" = "Bật — %@"; +"On — %@ + %ld more" = "Bật — %@ + thêm %ld"; +"On — no targets enabled" = "Bật — chưa bật mục tiêu nào"; +"Passcode" = "Mật khẩu"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "Mật khẩu + sinh trắc học. Khoá cửa sổ cài đặt tweak, bộ sưu tập, nhật ký tin nhắn đã xoá, từng chat và toàn bộ ứng dụng."; +"Passcode changed" = "Đã đổi mật khẩu"; +"Passcode reset" = "Đã đặt lại mật khẩu"; +"Passcode set" = "Đã đặt mật khẩu"; +"Passcode too short" = "Mật mã quá ngắn"; +"Passcodes did not match — try again" = "Mật khẩu không khớp — thử lại"; +"Per-chat locks" = "Khoá theo từng chat"; +"Prompt before Instagram opens" = "Hỏi trước khi mở Instagram"; +"Prompt before Profile Analyzer opens" = "Hỏi trước khi mở Phân tích hồ sơ"; +"Prompt before the deleted-messages log opens" = "Hỏi trước khi mở nhật ký tin nhắn đã xoá"; +"Prompt before the gallery opens" = "Hỏi trước khi mở bộ sưu tập"; +"Prompt before tweak settings open" = "Hỏi trước khi mở cài đặt tweak"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "Hỏi mỗi khi vào hộp thư DM, kể cả mở thẳng vào tin nhắn"; +"Re-enter the same passcode" = "Nhập lại cùng mật khẩu"; +"Re-lock on background" = "Khoá lại khi vào nền"; +"re-lock on bg" = "khoá lại khi nền"; +"Recently hidden" = "Đã ẩn gần đây"; +"Recently locked" = "Đã khoá gần đây"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "Ẩn các nút RyukGram khỏi ảnh chụp, bản ghi màn hình và phản chiếu"; +"Remove screenshot alert" = "Xoá cảnh báo chụp màn hình"; +"Replace inbox preview with • • •" = "Thay bản xem trước hộp thư bằng • • •"; +"Require passcode for this section" = "Yêu cầu mật mã cho mục này"; +"Requires your current passcode" = "Yêu cầu mật mã hiện tại của bạn"; +"Reset passcode" = "Đặt lại mật khẩu"; +"Reset passcode?" = "Đặt lại mật khẩu?"; +"Screenshots & capture" = "Chụp & quay màn hình"; +"Security & Privacy" = "Bảo mật & Quyền riêng tư"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "Đặt mật khẩu để khoá Cài đặt, Bộ sưu tập, nhật ký tin nhắn đã xoá, từng chat, hộp thư DM, Phân tích hồ sơ hoặc chính Instagram."; +"Set passcode" = "Đặt mật khẩu"; +"Short idle window" = "Khoảng chờ không hoạt động ngắn"; +"Stay unlocked until app close or background" = "Giữ mở khóa cho đến khi đóng ứng dụng hoặc chạy nền"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "Chặn thông báo \"X đã chụp màn hình\" của IG trên tin, tin nhắn và media biến mất"; +"Tap Unlock" = "Chạm Mở khoá"; +"Tap Unlock or enter your passcode" = "Chạm Mở khoá hoặc nhập mật khẩu"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "Thao tác này xoá mật khẩu, tắt mọi mục tiêu khoá và mở khoá toàn bộ chat. Bộ sưu tập và dữ liệu tin nhắn đã xoá không bị ảnh hưởng."; +"Thread %@" = "Cuộc trò chuyện %@"; +"Tweak settings" = "Cài đặt tweak"; +"Unlock" = "Mở khoá"; +"Unlock %@" = "Mở khoá %@"; +"Unlock chat" = "Mở khoá chat"; +"Unlock Instagram" = "Mở khoá Instagram"; +"Unlock this chat" = "Mở khoá chat này"; +"Use %@" = "Dùng %@"; +"Username (looks up the DM thread) or raw thread ID" = "Tên người dùng (tra cứu chat DM) hoặc ID chat thô"; +"Username or thread ID" = "Tên người dùng hoặc ID chat"; +"Wrong passcode" = "Sai mật khẩu"; +"Wrong passcode • %ld attempts" = "Sai mật mã • %ld lần thử"; + +////////////////////////////////////////////////////////////////////////////// +// BACKUP & RESTORE // +// Settings → Backup & Restore tab // +////////////////////////////////////////////////////////////////////////////// + +"%lu account(s)" = "%lu tài khoản"; +"%lu account(s) · %lu image(s) · %@" = "%lu tài khoản · %lu ảnh · %@"; +"%lu file(s) · %@" = "%lu tệp · %@"; +"%lu preferences" = "%lu tùy chọn"; +"(none)" = "(không có)"; +"Apply backup?" = "Áp dụng bản sao lưu?"; +"Applying backup…" = "Đang áp dụng bản sao lưu…"; +"archive error" = "lỗi lưu trữ"; +"Archived snapshots" = "Ảnh chụp đã lưu trữ"; +"Backup & Restore" = "Sao lưu & Khôi phục"; +"Backup exported" = "Đã xuất bản sao lưu"; +"Backup failed" = "Sao lưu thất bại"; +"Backup has no importable sections." = "Bản sao lưu không có mục nào để nhập."; +"Chat & story filters" = "Bộ lọc trò chuyện & tin"; +"Chat backgrounds" = "Hình nền trò chuyện"; +"Clear selected data" = "Xóa dữ liệu đã chọn"; +"Corrupt entry path." = "Đường dẫn mục bị hỏng."; +"Could not decompress archive." = "Không thể giải nén tệp lưu trữ."; +"Could not open archive." = "Không thể mở tệp lưu trữ."; +"Could not open staging file." = "Không thể mở tệp tạm."; +"Could not read the backup archive." = "Không thể đọc tệp sao lưu."; +"Could not write archive." = "Không thể ghi tệp lưu trữ."; +"Could not write backup file." = "Không thể ghi tệp sao lưu."; +"Could not write extracted file." = "Không thể ghi tệp đã giải nén."; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "Dữ liệu hiện có của các mục đã chọn sẽ bị thay thế. Có thể cần khởi động lại để mọi thứ có hiệu lực."; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "Xuất hoặc nhập dữ liệu RyukGram — cài đặt, bộ lọc theo từng tài khoản, cuộc trò chuyện ẩn & đã khóa, Profile Analyzer, thư viện, hình nền trò chuyện và tin nhắn đã xóa. Chọn bất kỳ tổ hợp nào ở mỗi trang. Cài đặt được giữ dưới dạng tệp JSON thuần; gói có kèm media được xuất dưới dạng .ryukbak nén."; +"Hidden & locked chats" = "Cuộc trò chuyện ẩn & đã khóa"; +"Import" = "Nhập"; +"Inspect the full manifest" = "Xem toàn bộ manifest"; +"Load a .json or .ryukbak backup" = "Tải bản sao lưu .json hoặc .ryukbak"; +"Not a RyukGram backup archive." = "Không phải tệp sao lưu RyukGram."; +"PK %@" = "PK %@"; +"Preparing backup…" = "Đang chuẩn bị bản sao lưu…"; +"Reading backup…" = "Đang đọc bản sao lưu…"; +"Save settings or a full backup" = "Lưu cài đặt hoặc bản sao lưu đầy đủ"; +"Tick what to apply. Rows not in this backup are hidden." = "Chọn nội dung cần áp dụng. Các hàng không có trong bản sao lưu này sẽ bị ẩn."; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "Chọn nội dung cần đưa vào. Chạm một hàng để xem chi tiết. Thêm thư viện, hình nền trò chuyện hoặc tin nhắn đã xóa sẽ tạo gói .ryukbak nén."; +"Truncated entry data." = "Dữ liệu mục bị cắt cụt."; +"Truncated entry length." = "Độ dài mục bị cắt cụt."; +"Truncated entry path." = "Đường dẫn mục bị cắt cụt."; +"Unsafe entry path." = "Đường dẫn mục không an toàn."; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED // +// Settings → Advanced tab // +////////////////////////////////////////////////////////////////////////////// + +"Advanced" = "Nâng cao"; +"Auto-clear cache" = "Tự động xóa bộ nhớ đệm"; +"Automatically opens settings when the app launches" = "Tự động mở cài đặt khi ứng dụng khởi chạy"; +"Cache" = "Bộ nhớ đệm"; +"Cache cleared" = "Đã xóa bộ nhớ đệm"; +"Calculating cache size…" = "Đang tính kích thước bộ nhớ đệm…"; +"Clear" = "Xóa"; +"Clear cache" = "Xóa bộ nhớ đệm"; +"Clear cache (%@)" = "Xóa bộ nhớ đệm (%@)"; +"Clearing cache…" = "Đang xóa bộ nhớ đệm…"; +"Clearing still scans on demand." = "Việc xóa vẫn quét theo yêu cầu."; +"Daily" = "Hàng ngày"; +"Disable safe mode" = "Tắt chế độ an toàn"; +"Enable tweak settings quick-access" = "Bật truy cập nhanh cài đặt tweak"; +"Fix duplicate notifications" = "Sửa thông báo trùng lặp"; +"Free %@ of Instagram cache." = "Giải phóng %@ bộ nhớ đệm Instagram."; +"Freed %@" = "Đã giải phóng %@"; +"Hold on the home tab to open RyukGram settings" = "Nhấn giữ tab trang chủ để mở cài đặt RyukGram"; +"Monthly" = "Hàng tháng"; +"Nothing to clear" = "Không có gì để xóa"; +"Off skips the size scan when Advanced opens." = "Tắt sẽ bỏ qua quét kích thước khi mở Nâng cao."; +"Pause playback when opening settings" = "Tạm dừng phát khi mở cài đặt"; +"Always show what's new" = "Luôn hiển thị tính năng mới"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "Giữ chấm xanh trên mọi tính năng mới thay vì xóa sau khi xem"; +"Preserve messages database" = "Giữ cơ sở dữ liệu tin nhắn"; +"Pauses any playing video/audio when settings opens" = "Tạm dừng mọi video/âm thanh đang phát khi mở cài đặt"; +"Prevents Instagram from resetting settings after crashes (at your own risk)" = "Ngăn Instagram đặt lại cài đặt sau khi gặp sự cố (tự chịu rủi ro)"; +"Prevents two banners for the same message when IG is in the foreground" = "Ngăn hai biểu ngữ cho cùng một tin nhắn khi IG đang chạy nền trước"; +"Remove Instagram's cached images, videos, and temporary files." = "Xóa ảnh, video và tệp tạm đã lưu trong bộ nhớ đệm của Instagram."; +"Reset onboarding state" = "Đặt lại trạng thái hướng dẫn"; +"Run a silent cache clear on launch when the interval has elapsed." = "Tự động xóa bộ nhớ đệm âm thầm khi khởi chạy nếu đã đến thời gian."; +"Show cache size" = "Hiển thị kích thước bộ nhớ đệm"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "Bỏ qua cơ sở dữ liệu tin nhắn khi xóa — giữ DM, bản nháp và tin nhắn đã lưu."; +"Show tweak settings on app launch" = "Hiển thị cài đặt tweak khi khởi chạy ứng dụng"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "Loại bỏ thông báo thứ hai mà IG đưa vào hàng đợi trong ứng dụng khi tiện ích thông báo cũng đang gửi nó."; +"Weekly" = "Hàng tuần"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED EXPERIMENTAL // +// Settings → Advanced → Advanced experimental features // +////////////////////////////////////////////////////////////////////////////// + +"Actions" = "Hành động"; +"Advanced experimental features" = "Tính năng thử nghiệm nâng cao"; +"All experimental toggles will be turned off. Instagram will restart." = "Tất cả công tắc thử nghiệm sẽ bị tắt. Instagram sẽ khởi động lại."; +"Direct Notes — Audio reply" = "Ghi chú trực tiếp — Trả lời âm thanh"; +"Direct Notes — Avatar reply" = "Ghi chú trực tiếp — Trả lời avatar"; +"Direct Notes — Friend Map" = "Ghi chú trực tiếp — Bản đồ bạn bè"; +"Direct Notes — GIFs & stickers reply" = "Ghi chú trực tiếp — Trả lời GIF & sticker"; +"Direct Notes — Photo reply" = "Ghi chú trực tiếp — Trả lời ảnh"; +"Disabled after repeated crashes." = "Đã tắt sau nhiều lần gặp sự cố."; +"Enables GIF/sticker replies" = "Bật trả lời bằng GIF/sticker"; +"Enables photo replies" = "Bật trả lời bằng ảnh"; +"Enables the audio-note reply type" = "Bật kiểu trả lời ghi chú âm thanh"; +"Enables the avatar reply type" = "Bật kiểu trả lời avatar"; +"Experimental flags reset" = "Đã đặt lại cờ thử nghiệm"; +"Flip what you want on, then tap Apply to restart. Some flags may not work on every account or IG version. Flags auto-reset if IG crashes on launch 3 times." = "Bật những gì bạn muốn, sau đó chạm Áp dụng để khởi động lại. Một số cờ có thể không hoạt động trên mọi tài khoản hoặc phiên bản IG. Cờ sẽ tự đặt lại nếu IG gặp sự cố khi khởi chạy 3 lần."; +"Forces Prism-gated experiments on" = "Buộc bật thử nghiệm bị khóa bởi Prism"; +"Forces the Homecoming home surface / nav on" = "Buộc bật giao diện / điều hướng Homecoming"; +"Forces the QuickSnap / Instants surface on in feed, inbox, stories, and notes tray" = "Buộc bật giao diện QuickSnap / Instants trong bảng tin, hộp thư, tin và khay ghi chú"; +"Got it" = "Đã hiểu"; +"Heads up" = "Lưu ý"; +"Hidden Instagram experiments" = "Thử nghiệm Instagram ẩn"; +"Hidden Instagram experiments (in Advanced)" = "Thử nghiệm Instagram ẩn (trong Nâng cao)"; +"Homecoming" = "Homecoming"; +"Notes & QuickSnap" = "Ghi chú & QuickSnap"; +"Prism design system" = "Hệ thống thiết kế Prism"; +"QuickSnap (Instants)" = "QuickSnap (Instants)"; +"Reset all experimental flags" = "Đặt lại tất cả cờ thử nghiệm"; +"Reset experimental flags?" = "Đặt lại cờ thử nghiệm?"; +"Restart Instagram to apply changes" = "Khởi động lại Instagram để áp dụng thay đổi"; +"Shows the friend map entry in Direct Notes" = "Hiển thị mục bản đồ bạn bè trong Ghi chú trực tiếp"; +"Surfaces" = "Giao diện"; +"These toggles flip hidden Instagram experiments on. Some features may not work on every account or IG version. If IG keeps crashing on launch, the flags auto-reset after 3 failed starts." = "Các công tắc này bật thử nghiệm ẩn của Instagram. Một số tính năng có thể không hoạt động trên mọi tài khoản hoặc phiên bản IG. Nếu IG liên tục gặp sự cố khi khởi chạy, các cờ sẽ tự đặt lại sau 3 lần khởi động thất bại."; +"Toggle hidden Instagram experiments. Some may not work on every account or IG version." = "Bật/tắt thử nghiệm ẩn của Instagram. Một số có thể không hoạt động trên mọi tài khoản hoặc phiên bản IG."; +"Turn every experimental toggle off" = "Tắt mọi tùy chọn thử nghiệm"; + +////////////////////////////////////////////////////////////////////////////// +// DEBUG // +// Settings → Debug tab // +////////////////////////////////////////////////////////////////////////////// + +"Button Cell" = "Ô nút"; +"Change the value on the right" = "Thay đổi giá trị bên phải"; +"Could not delete: %@" = "Không thể xóa: %@"; +"Debug" = "Gỡ lỗi"; +"Delete an imported override and fall back to the shipped strings" = "Xóa ghi đè đã nhập và quay về chuỗi mặc định"; +"Deleted %@ override. Restart to apply." = "Đã xóa ghi đè %@. Khởi động lại để áp dụng."; +"Enable FLEX gesture" = "Bật cử chỉ FLEX"; +"Export strings" = "Xuất chuỗi"; +"Hold 5 fingers on the screen to open FLEX" = "Giữ 5 ngón tay trên màn hình để mở FLEX"; +"I have %@%@" = "Tôi có %@%@"; +"Import a .strings file for a language" = "Nhập tệp .strings cho một ngôn ngữ"; +"Import a .strings file to update a translation. Pick a language, select the file, restart." = "Nhập tệp .strings để cập nhật bản dịch. Chọn ngôn ngữ, chọn tệp, khởi động lại."; +"Link Cell" = "Ô liên kết"; +"Localization" = "Bản địa hóa"; +"Menu Cell" = "Ô menu"; +"Navigation Cell" = "Ô điều hướng"; +"No imported localization files to reset." = "Không có tệp bản địa hóa đã nhập để đặt lại."; +"No overrides" = "Không có ghi đè"; +"Open FLEX on app focus" = "Mở FLEX khi ứng dụng được chọn"; +"Open FLEX on app launch" = "Mở FLEX khi khởi chạy ứng dụng"; +"Opens FLEX when the app is focused" = "Mở FLEX khi ứng dụng được chọn"; +"Opens FLEX when the app launches" = "Mở FLEX khi ứng dụng khởi chạy"; +"Pick a language to delete the imported file" = "Chọn ngôn ngữ để xóa tệp đã nhập"; +"Pick a language to export" = "Chọn ngôn ngữ để xuất"; +"Reset localization" = "Đặt lại bản địa hóa"; +"Pick a language and share its .strings file" = "Chọn ngôn ngữ để chia sẻ tệp .strings của nó"; +"Static Cell" = "Ô tĩnh"; +"Stepper cell" = "Ô bước"; +"Switch Cell" = "Ô công tắc"; +"Switch Cell (Restart)" = "Ô công tắc (Khởi động lại)"; +"Tap the switch" = "Chạm công tắc"; +"These features rely on hidden Instagram flags and may not work on all accounts or versions." = "Các tính năng này phụ thuộc vào cờ ẩn của Instagram và có thể không hoạt động trên mọi tài khoản hoặc phiên bản."; +"Update localization file" = "Cập nhật tệp bản địa hóa"; +"Using icon" = "Đang dùng biểu tượng"; +"Using image" = "Đang dùng ảnh"; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOADS & MEDIA ACTIONS // +// Action button menus, download/share/copy toasts, quality picker pills. // +////////////////////////////////////////////////////////////////////////////// + +"%@ settings" = "Cài đặt %@"; +"%lu items" = "%lu mục"; +"Cancelled" = "Đã hủy"; +"Carousel" = "Băng chuyền"; +"Carousel · %lu items" = "Băng chuyền · %lu mục"; +"Copied %lu URLs" = "Đã sao chép %lu URL"; +"Copied caption" = "Đã sao chép chú thích"; +"Copied download URL" = "Đã sao chép URL tải xuống"; +"Copied quality info" = "Đã sao chép thông tin chất lượng"; +"Copied video URL" = "Đã sao chép URL video"; +"Copy all URLs" = "Sao chép tất cả URL"; +"Copy caption" = "Sao chép chú thích"; +"Copy download URL" = "Sao chép URL tải xuống"; +"Could not extract any URLs" = "Không thể trích xuất URL nào"; +"Could not extract audio URL" = "Không thể trích xuất URL âm thanh"; +"Could not extract media URL" = "Không thể trích xuất URL media"; +"Could not extract photo URL" = "Không thể trích xuất URL ảnh"; +"Could not extract video URL" = "Không thể trích xuất URL video"; +"Done" = "Xong"; +"Download all stories and share?" = "Tải tất cả tin và chia sẻ?"; +"Download all to Photos" = "Tải tất cả vào Ảnh"; +"Download and share all" = "Tải xuống và chia sẻ tất cả"; +"Download failed" = "Tải xuống thất bại"; +"Downloaded %lu items" = "Đã tải %lu mục"; +"Downloading audio…" = "Đang tải âm thanh…"; +"Failed to save" = "Lưu thất bại"; +"File" = "Tệp"; +"HD" = "HD"; +"HD download complete" = "Tải HD hoàn tất"; +"HD video" = "Video HD"; +"Mute audio" = "Tắt âm thanh"; +"No caption on this post" = "Không có chú thích trong bài viết này"; +"No carousel children" = "Không có mục con carousel"; +"No cover image" = "Không có ảnh bìa"; +"No media" = "Không có media"; +"No media to expand" = "Không có media để mở rộng"; +"No media to show" = "Không có media để hiển thị"; +"No media URL" = "Không có URL media"; +"No URLs" = "Không có URL"; +"No URLs found" = "Không tìm thấy URL"; +"No video URL" = "Không có URL video"; +"Not a carousel" = "Không phải carousel"; +"Nothing to share" = "Không có gì để chia sẻ"; +"Opening creator…" = "Đang mở người tạo..."; +"Photo library access denied" = "Quyền truy cập thư viện ảnh bị từ chối"; +"Photos access denied" = "Quyền truy cập Ảnh bị từ chối"; +"Preparing repost…" = "Đang chuẩn bị đăng lại..."; +"Raw image" = "Ảnh thô"; +"Repost" = "Đăng lại"; +"Repost unavailable" = "Không thể đăng lại"; +"Save failed" = "Lưu thất bại"; +"Saved %lu items" = "Đã lưu %lu mục"; +"Saved to Photos" = "Đã lưu vào Ảnh"; +"Saved to RyukGram" = "Đã lưu vào RyukGram"; +"Saving to Photos" = "Đang lưu vào Ảnh"; +"Saving…" = "Đang lưu..."; +"Unmute audio" = "Bật âm thanh"; +"Video · %@" = "Video · %@"; +"View cover" = "Xem ảnh bìa"; +"View mentions" = "Xem lượt nhắc"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES & MESSAGES (FEATURES) // +// Buttons, menu entries, toasts and alerts shown while watching stories or // +// inside DM threads. // +////////////////////////////////////////////////////////////////////////////// + +" %lu votes · avg %.0f%% " = " %lu lượt bình chọn · trung bình %.0f%% "; +"%@ can't be converted" = "%@ không thể chuyển đổi"; +"%@ unsent a message" = "%@ đã thu hồi một tin nhắn"; +"%@ unsent a message from %@" = "%@ đã thu hồi một tin nhắn từ %@"; +"A message was unsent" = "Một tin nhắn đã được thu hồi"; +"Add" = "Thêm"; +"Add to block list" = "Thêm vào danh sách chặn"; +"Added to block list" = "Đã thêm vào danh sách chặn"; +"Added to exclude list" = "Đã thêm vào danh sách loại trừ"; +"Audio not loaded yet. Play the message first and try again." = "Âm thanh chưa được tải. Hãy phát tin nhắn trước rồi thử lại."; +"Audio sent" = "Đã gửi âm thanh"; +"Audio URL not available" = "URL âm thanh không khả dụng"; +"Audio/Video from Files" = "Âm thanh/Video từ Tệp"; +"Blocked" = "Đã chặn"; +"Cancel" = "Hủy"; +"Clear preserved messages?" = "Xóa tin nhắn đã lưu giữ?"; +"Converting…" = "Đang chuyển đổi..."; +"Copy link" = "Sao chép liên kết"; +"Copy text" = "Sao chép văn bản"; +"Could not copy selected video" = "Không thể sao chép video đã chọn"; +"Could not find media" = "Không thể tìm thấy media"; +"Could not find story media" = "Không thể tìm thấy media tin"; +"Could not get audio data. Try again after refreshing the chat." = "Không thể lấy dữ liệu âm thanh. Hãy thử lại sau khi làm mới cuộc trò chuyện."; +"Disable read receipts" = "Tắt xác nhận đã đọc"; +"Disappearing media" = "Media biến mất"; +"Download audio" = "Tải âm thanh"; +"Enable read receipts" = "Bật xác nhận đã đọc"; +"Error: %@" = "Lỗi: %@"; +"Exclude chat" = "Loại trừ cuộc trò chuyện"; +"Exclude from seen" = "Loại trừ khỏi đã xem"; +"Exclude story seen" = "Loại trừ đã xem tin"; +"Excluded" = "Đã loại trừ"; +"Extracting audio…" = "Đang trích xuất âm thanh..."; +"FFmpeg conversion failed" = "Chuyển đổi FFmpeg thất bại"; +"File sending not supported" = "Không hỗ trợ gửi tệp"; +"Follow" = "Theo dõi"; +"Following" = "Đang theo dõi"; +"Format not supported without FFmpegKit" = "Không hỗ trợ định dạng nếu thiếu FFmpegKit"; +"Inserts a button on disappearing media overlays" = "Chèn nút trên lớp phủ media biến mất"; +"Inserts a speaker button to mute/unmute disappearing media" = "Chèn nút loa để bật/tắt âm thanh media biến mất"; +"Inserts an eye button to mark the current disappearing media as viewed" = "Chèn nút con mắt để đánh dấu media biến mất hiện tại là đã xem"; +"Link copied" = "Đã sao chép liên kết"; +"Mark as viewed" = "Đánh dấu là đã xem"; +"Mark messages as seen" = "Đánh dấu tin nhắn là đã xem"; +"Mark seen" = "Đánh dấu đã xem"; +"Marked as viewed" = "Đã đánh dấu là đã xem"; +"Marked messages as seen" = "Đã đánh dấu tin nhắn là đã xem"; +"Mentions" = "Lượt nhắc"; +"Message from %@ was unsent" = "Tin nhắn từ %@ đã bị thu hồi"; +"Message sender not found" = "Không tìm thấy người gửi tin nhắn"; +"Messages settings" = "Cài đặt tin nhắn"; +"Mute story audio" = "Tắt âm thanh tin"; +"no audio track could be read" = "không đọc được bản âm thanh"; +"No audio URL found. Try again after refreshing the chat." = "Không tìm thấy URL âm thanh. Hãy thử lại sau khi làm mới cuộc trò chuyện."; +"No mentions in this story" = "Không có lượt nhắc trong tin này"; +"No thread key" = "Không có khóa thread"; +"No video selected" = "Chưa chọn video"; +"No voice send method found" = "Không tìm thấy phương thức gửi thoại"; +"Note has no downloadable content" = "Ghi chú không có nội dung tải xuống được"; +"Note text copied" = "Đã sao chép văn bản ghi chú"; +"Open GitHub" = "Mở GitHub"; +"Pick audio or video" = "Chọn âm thanh hoặc video"; +"Read receipts disabled" = "Đã tắt xác nhận đã đọc"; +"Read receipts enabled" = "Đã bật xác nhận đã đọc"; +"Read receipts will be blocked for this chat." = "Xác nhận đã đọc sẽ bị chặn cho cuộc trò chuyện này."; +"Read receipts will no longer be blocked for this chat." = "Xác nhận đã đọc sẽ không còn bị chặn cho cuộc trò chuyện này."; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "Làm mới tab DM sẽ xóa %lu tin nhắn đã thu hồi được lưu giữ. Không thể hoàn tác."; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "Làm mới tab DM sẽ xóa %lu tin nhắn đã thu hồi được lưu giữ. Không thể hoàn tác."; +"Remove" = "Xóa"; +"Remove from block list" = "Xóa khỏi danh sách chặn"; +"Remove from exclude list" = "Xóa khỏi danh sách loại trừ"; +"Removed" = "Đã xóa"; +"Removed from list" = "Đã xóa khỏi danh sách"; +"Save GIF" = "Lưu GIF"; +"Selection too short (min 0.5s)" = "Đoạn chọn quá ngắn (tối thiểu 0.5 giây)"; +"Send anyway" = "Vẫn gửi"; +"Send Audio" = "Gửi âm thanh"; +"Send failed: %@" = "Gửi thất bại: %@"; +"Send File" = "Gửi tệp"; +"Send service not found" = "Không tìm thấy dịch vụ gửi"; +"Show audio toggle" = "Hiển thị nút bật/tắt âm thanh"; +"Show mark-as-viewed button" = "Hiển thị nút đánh dấu đã xem"; +"Story read receipts disabled" = "Đã tắt xác nhận đã xem tin"; +"Story read receipts enabled" = "Đã bật xác nhận đã xem tin"; +"This chat will resume normal read-receipt behavior." = "Cuộc trò chuyện này sẽ trở lại hành vi xác nhận đã đọc bình thường."; +"This file" = "Tệp này"; +"Total: %@" = "Tổng: %@"; +"Un-exclude chat" = "Bỏ loại trừ cuộc trò chuyện"; +"Un-exclude story seen" = "Bỏ loại trừ đã xem tin"; +"Un-excluded" = "Đã bỏ loại trừ"; +"Unblocked" = "Đã bỏ chặn"; +"Unlimited replay enabled" = "Đã bật phát lại không giới hạn"; +"Unmute story audio" = "Bật âm thanh tin"; +"Unsent" = "Đã thu hồi"; +"Upload Audio" = "Tải âm thanh lên"; +"VC not found" = "Không tìm thấy VC"; +"Video from Library" = "Video từ Thư viện"; +"Visual messages will expire" = "Tin nhắn hình ảnh sẽ hết hạn"; +"Visual messages: expiring" = "Tin nhắn hình ảnh: sẽ hết hạn"; +"Visual messages: unlimited replay" = "Tin nhắn hình ảnh: phát lại không giới hạn"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "Thêm hình nền"; +"Add Chat Background" = "Thêm hình nền trò chuyện"; +"Adds your own image backgrounds to Instagram chats" = "Thêm hình nền của riêng bạn vào các cuộc trò chuyện Instagram"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "Sau khi bật, mở một cuộc trò chuyện bất kỳ, chạm nút chủ đề, rồi chạm biểu tượng ảnh ở góc trên bên phải."; +"Blur" = "Làm mờ"; +"Browse chats" = "Duyệt cuộc trò chuyện"; +"Browse chats (%ld)" = "Duyệt cuộc trò chuyện (%ld)"; +"Change Background" = "Đổi hình nền"; +"Change default" = "Đổi mặc định"; +"Chat Backgrounds" = "Hình nền trò chuyện"; +"Choose an image used when no chat override exists" = "Chọn ảnh dùng khi không có thiết lập riêng cho cuộc trò chuyện"; +"Choose Image" = "Chọn ảnh"; +"Clear default" = "Xóa mặc định"; +"Couldn't import image" = "Không thể nhập ảnh"; +"Custom Chat Background" = "Hình nền trò chuyện tùy chỉnh"; +"Default background" = "Hình nền mặc định"; +"Delete library images, default background, and chat overrides" = "Xóa ảnh trong thư viện, hình nền mặc định và thiết lập riêng của cuộc trò chuyện"; +"Dim in dark mode" = "Làm tối ở chế độ tối"; +"Edit image settings" = "Chỉnh cài đặt ảnh"; +"Enable custom backgrounds" = "Bật hình nền tùy chỉnh"; +"Enter a username, chat name, or thread ID." = "Nhập tên người dùng, tên cuộc trò chuyện hoặc ID thread."; +"Group" = "Nhóm"; +"Image Settings" = "Cài đặt ảnh"; +"Library" = "Thư viện"; +"Library, default, and per-chat overrides will be deleted." = "Thư viện, mặc định và các thiết lập riêng theo cuộc trò chuyện sẽ bị xóa."; +"No Custom" = "Không tùy chỉnh"; +"Opacity" = "Độ mờ"; +"Photo Library" = "Thư viện ảnh"; +"Pick default" = "Chọn mặc định"; +"Pinch + drag to position" = "Chụm + kéo để định vị"; +"Quit and reopen Instagram for the change to take effect." = "Thoát và mở lại Instagram để thay đổi có hiệu lực."; +"Recently set" = "Đặt gần đây"; +"Remove the global fallback background" = "Xóa hình nền dự phòng toàn cục"; +"Replace the default background image" = "Thay ảnh nền mặc định"; +"Reset all backgrounds" = "Đặt lại tất cả hình nền"; +"Reset all backgrounds?" = "Đặt lại tất cả hình nền?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "Đặt lại đưa độ mờ về 1.0, làm mờ về 0, làm tối về 0."; +"RyukGram Gallery" = "Thư viện RyukGram"; +"Search username, name, or thread ID" = "Tìm tên người dùng, tên hoặc ID thread"; +"Set as default" = "Đặt làm mặc định"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "Chạm dấu cộng để thêm. Chạm một hình nền để chỉnh sửa, đặt làm mặc định hoặc xóa."; +"This Chat Background" = "Hình nền cuộc trò chuyện này"; +"Thread ID" = "ID thread"; +"Used only when a chat does not have its own custom background." = "Chỉ dùng khi một cuộc trò chuyện không có hình nền tùy chỉnh riêng."; +"View and manage chats with custom backgrounds" = "Xem và quản lý các cuộc trò chuyện có hình nền tùy chỉnh"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL FEATURES // +// Strings inside per-feature overlays: fake location, color picker, notes // +// customization, profile copy, etc. // +////////////////////////////////////////////////////////////////////////////// + +"Add location" = "Thêm vị trí"; +"Add preset" = "Thêm cài đặt sẵn"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "Ảnh hưởng đến mọi thứ ở trên. Khi tắt, giao diện và ghi đè bề mặt của RyukGram chỉ áp dụng khi iOS ở chế độ tối — không đụng đến chế độ sáng."; +"Apply & restart" = "Áp dụng & khởi động lại"; +"Background" = "Nền"; +"Behavior" = "Hành vi"; +"Change location" = "Đổi vị trí"; +"Clipboard is not an Instagram URL" = "Bảng tạm không phải URL Instagram"; +"Comments hidden" = "Đã ẩn bình luận"; +"Comments shown" = "Đã hiện bình luận"; +"Copied text to clipboard" = "Đã sao chép văn bản vào bảng tạm"; +"Copy" = "Sao chép"; +"Copy bio" = "Sao chép tiểu sử"; +"Copy name" = "Sao chép tên"; +"Could not find cover image" = "Không thể tìm thấy ảnh bìa"; +"Current: %@" = "Hiện tại: %@"; +"Dark" = "Tối"; +"Disable" = "Tắt"; +"Download GIF" = "Tải GIF"; +"Dropped pin" = "Đã ghim vị trí"; +"Emoji" = "Emoji"; +"Enable" = "Bật"; +"Enable Location Services for Instagram in Settings to use your current location." = "Bật Dịch vụ định vị cho Instagram trong Cài đặt để sử dụng vị trí hiện tại của bạn."; +"Enter emoji" = "Nhập emoji"; +"Fake location" = "Vị trí giả"; +"Force theme" = "Buộc giao diện"; +"Keyboard theme" = "Giao diện bàn phím"; +"Light" = "Sáng"; +"Location access denied" = "Quyền truy cập vị trí bị từ chối"; +"Location Services off" = "Dịch vụ định vị đã tắt"; +"Name" = "Tên"; +"Nothing to copy" = "Không có gì để sao chép"; +"Off, Light, Dark, or OLED" = "Tắt, Sáng, Tối, hoặc OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "Giao diện chat OLED"; +"Open Settings" = "Mở Cài đặt"; +"Optional per-surface overrides. Each one is independent of the theme above." = "Tùy chọn ghi đè theo từng giao diện. Mỗi cái độc lập với giao diện ở trên."; +"Override iOS appearance regardless of system mode" = "Ghi đè giao diện iOS bất kể chế độ hệ thống"; +"Override the keyboard appearance when typing" = "Ghi đè giao diện bàn phím khi nhập"; +"Pick location" = "Chọn vị trí"; +"Pure black DM thread + incoming bubbles" = "Đoạn chat DM + bong bóng nhận màu đen tuyền"; +"Reset theme" = "Đặt lại giao diện"; +"Restart Instagram to apply your theme changes" = "Khởi động lại Instagram để áp dụng thay đổi giao diện"; +"Save" = "Lưu"; +"Save preset" = "Lưu cài đặt sẵn"; +"Saved locations" = "Vị trí đã lưu"; +"Select color" = "Chọn màu"; +"Set location" = "Đặt vị trí"; +"The theme RyukGram applies to Instagram." = "Giao diện mà RyukGram áp dụng cho Instagram."; +"Theme" = "Giao diện"; +"Turn every theme option off and restart" = "Tắt mọi tùy chọn giao diện và khởi động lại"; +"Turn Location Services on in Settings → Privacy to use your current location." = "Bật Dịch vụ định vị trong Cài đặt → Quyền riêng tư để sử dụng vị trí hiện tại của bạn."; +"Type an emoji to use as the note bubble icon." = "Nhập một emoji để dùng làm biểu tượng bong bóng ghi chú."; +"View profile picture" = "Xem ảnh đại diện"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE ANALYZER // +// Settings → Profile Analyzer // +////////////////////////////////////////////////////////////////////////////// + +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu tài khoản? %ld tài khoản đầu tiên sẽ được xử lý để tránh giới hạn tốc độ."; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu tài khoản? Thao tác này chạy tuần tự với khoảng nghỉ ngắn giữa mỗi lần."; +"%@ followers · %@ following" = "%@ người theo dõi · %@ đang theo dõi"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "%d ngày trước"; +"%dh ago" = "%d giờ trước"; +"%dm ago" = "%d phút trước"; +"%lu accounts followed" = "Đã theo dõi %lu tài khoản"; +"%lu accounts unfollowed" = "Đã bỏ theo dõi %lu tài khoản"; +"%lu followers · %lu following" = "%lu người theo dõi · %lu đang theo dõi"; +"%lu of %lu" = "%lu trên %lu"; +"%lu saved · comparing against %@" = "Đã lưu %lu · so sánh với %@"; +"(empty)" = "(trống)"; +"(no analyzer data)" = "(không có dữ liệu phân tích)"; +"a saved snapshot" = "một ảnh chụp đã lưu"; +"About Profile Analyzer" = "Giới thiệu về Phân tích hồ sơ"; +"All preferences (%lu)" = "Tất cả tùy chọn (%lu)"; +"Analysis complete" = "Phân tích hoàn tất"; +"Analysis failed" = "Phân tích thất bại"; +"Another analysis is already running" = "Một phân tích khác đang chạy"; +"Available after your next scan" = "Có sẵn sau lần quét tiếp theo"; +"Batch follow" = "Theo dõi hàng loạt"; +"Batch follow finished" = "Đã hoàn tất theo dõi hàng loạt"; +"Batch unfollow" = "Bỏ theo dõi hàng loạt"; +"Batch unfollow finished" = "Đã hoàn tất bỏ theo dõi hàng loạt"; +"Categories" = "Danh mục"; +"Clear visited profiles" = "Xóa hồ sơ đã ghé"; +"Compare next scan against" = "So sánh lần quét tới với"; +"Comparing against %@" = "Đang so sánh với %@"; +"Continue" = "Tiếp tục"; +"Couldn't fetch profile information" = "Không thể lấy thông tin hồ sơ"; +"Delete %lu snapshots? This can't be undone." = "Xóa %lu ảnh chụp? Không thể hoàn tác."; +"Delete (%lu)" = "Xóa (%lu)"; +"Delete snapshots" = "Xóa ảnh chụp"; +"Delete this snapshot? This can't be undone." = "Xóa ảnh chụp này? Không thể hoàn tác."; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "Mỗi lần quét lưu một bản sao đầy đủ người theo dõi và đang theo dõi của bạn để bạn so sánh sau này. Mọi thứ đều ở trên thiết bị này."; +"Export" = "Xuất"; +"Fetching followers (%lu/%ld)…" = "Đang lấy người theo dõi (%lu/%ld)…"; +"Fetching following (%lu/%ld)…" = "Đang lấy đang theo dõi (%lu/%ld)…"; +"Fetching profile info…" = "Đang lấy thông tin hồ sơ…"; +"File is not a valid RyukGram backup." = "Tệp không phải bản xuất RyukGram hợp lệ."; +"Filter" = "Lọc"; +"Filter · %lu" = "Lọc · %lu"; +"First scan: %@" = "Lần quét đầu tiên: %@"; +"First scan: we collect your followers and following lists and save them locally." = "Lần quét đầu tiên: chúng tôi thu thập danh sách người theo dõi và đang theo dõi của bạn rồi lưu cục bộ."; +"Follow %lu" = "Theo dõi %lu"; +"Follower count exceeds %ld — analysis disabled to avoid rate limits." = "Số người theo dõi vượt quá %ld — đã tắt phân tích để tránh giới hạn tốc độ."; +"Followers" = "Người theo dõi"; +"Following… %lu / %lu" = "Đang theo dõi… %lu / %lu"; +"Gained since last scan" = "Tăng từ lần quét trước"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "Lưu ý: tính năng này đang ở giai đoạn beta và sử dụng API riêng tư của Instagram. Chạy liên tiếp hoặc ngay sau hoạt động theo dõi/bỏ theo dõi nhiều có thể kích hoạt giới hạn tốc độ ngắn hạn. Hãy sử dụng hạn chế và tự chịu rủi ro."; +"Import complete" = "Đã nhập hoàn tất"; +"Include" = "Bao gồm"; +"Keep newest" = "Giữ mới nhất"; +"Keep newest snapshots" = "Giữ ảnh chụp mới nhất"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "Tài khoản lớn bị chặn: phân tích bị vô hiệu hóa trên 13.000 người theo dõi để tránh Instagram giới hạn tốc độ toàn bộ ứng dụng."; +"Last scan: %@" = "Lần quét cuối: %@"; +"Logs every profile you open. Stays on-device." = "Ghi lại mọi hồ sơ bạn mở. Chỉ lưu trên thiết bị."; +"Lost followers" = "Người theo dõi đã mất"; +"Most visited" = "Ghé nhiều nhất"; +"Mutual followers" = "Người theo dõi chung"; +"Name: %@ → %@" = "Tên: %@ → %@"; +"New followers" = "Người theo dõi mới"; +"No active Instagram session found" = "Không tìm thấy phiên Instagram đang hoạt động"; +"No results" = "Không có kết quả"; +"No scan yet" = "Chưa quét"; +"Not following you back" = "Không theo dõi lại bạn"; +"Not verified only" = "Chỉ chưa xác minh"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "Không có gì được tải lên — mọi thứ đều ở trên thiết bị này và có thể xóa bằng biểu tượng thùng rác."; +"Nothing was applied." = "Không có gì được áp dụng."; +"OK" = "OK"; +"Older snapshots beyond the limit are removed automatically" = "Ảnh chụp cũ vượt quá giới hạn sẽ tự động bị xóa"; +"Older snapshots beyond this limit are deleted on the next scan." = "Ảnh chụp cũ vượt quá giới hạn này sẽ bị xóa ở lần quét tiếp theo."; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "Chọn nội dung cần xóa. Ảnh chụp xóa các khác biệt quét và mọi ảnh chụp đã ghi; hồ sơ đã xem xóa lịch sử truy cập."; +"Posts" = "Bài viết"; +"Preferences" = "Tùy chọn"; +"Previous scan" = "Lần quét trước"; +"Private account" = "Tài khoản riêng tư"; +"Private only" = "Chỉ riêng tư"; +"Profile Analyzer" = "Phân tích hồ sơ"; +"Profile Analyzer data" = "Dữ liệu Phân tích hồ sơ"; +"Profile picture changed" = "Ảnh hồ sơ đã thay đổi"; +"Profile updates" = "Cập nhật hồ sơ"; +"Profiles you've opened recently" = "Hồ sơ bạn đã mở gần đây"; +"Raw" = "Thô"; +"Raw JSON" = "JSON thô"; +"Record snapshots" = "Ghi ảnh chụp"; +"Recording" = "Đang ghi"; +"Request failed" = "Yêu cầu thất bại"; +"Reset analyzer data" = "Đặt lại dữ liệu phân tích"; +"Reset complete" = "Đã đặt lại hoàn tất"; +"Reset everything" = "Đặt lại mọi thứ"; +"Reset selected data?" = "Đặt lại dữ liệu đã chọn?"; +"Reset snapshots" = "Đặt lại ảnh chụp"; +"Rolling — always your last run" = "Cuốn chiếu — luôn là lần chạy gần nhất của bạn"; +"Run analysis" = "Chạy phân tích"; +"Run your first analysis" = "Chạy phân tích đầu tiên"; +"Save a dated entry on every scan" = "Lưu một mục có ngày tháng cho mỗi lần quét"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "Từ lần quét thứ hai trở đi: mỗi lần quét sẽ so sánh với lần trước để hiển thị người theo dõi tăng/giảm, lượt theo dõi/bỏ theo dõi của bạn và cập nhật hồ sơ."; +"Settings" = "Cài đặt"; +"Since last scan" = "Kể từ lần quét trước"; +"Snapshot" = "Ảnh chụp"; +"Snapshots" = "Ảnh chụp"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "Ảnh chụp cho phép bạn lưu trữ mỗi lần quét và chọn lần nào để các lần quét mới so sánh với. Theo dõi truy cập ghi lại mọi hồ sơ bạn mở để bạn xem lại tại đây."; +"Sort" = "Sắp xếp"; +"Starting…" = "Đang khởi động…"; +"They follow you, you don't follow back" = "Họ theo dõi bạn, bạn chưa theo dõi lại"; +"This can't be undone." = "Không thể hoàn tác."; +"Ticked data will be cleared. Tap a row to see what's stored." = "Dữ liệu đã chọn sẽ bị xóa. Chạm vào bất kỳ hàng nào để xem nội dung đã lưu."; +"Today" = "Hôm nay"; +"Too many followers" = "Quá nhiều người theo dõi"; +"Too many followers to analyze" = "Quá nhiều người theo dõi để phân tích"; +"Track visited profiles" = "Theo dõi hồ sơ đã ghé"; +"Tracking" = "Theo dõi"; +"Tracking off — enable below to log visits" = "Theo dõi đã tắt — bật bên dưới để ghi lượt ghé"; +"Unfollow" = "Bỏ theo dõi"; +"Unfollow %lu" = "Bỏ theo dõi %lu"; +"Unfollow @%@?" = "Bỏ theo dõi @%@?"; +"Unfollowed you since last scan" = "Đã bỏ theo dõi bạn từ lần quét trước"; +"Unfollowing… %lu / %lu" = "Đang bỏ theo dõi… %lu / %lu"; +"Unlimited" = "Không giới hạn"; +"Username A → Z" = "Tên người dùng A → Z"; +"Username Z → A" = "Tên người dùng Z → A"; +"Username, name or picture changes" = "Thay đổi tên người dùng, tên hoặc ảnh"; +"Username: @%@ → @%@" = "Tên người dùng: @%@ → @%@"; +"Using %@ across %lu snapshots." = "Đang dùng %@ trên %lu ảnh chụp."; +"Verified only" = "Chỉ đã xác minh"; +"Visited" = "Đã ghé"; +"Visited profiles" = "Hồ sơ đã ghé"; +"We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "Chúng tôi từ chối chạy khi số lượng người theo dõi vượt quá %ld để tránh giới hạn tốc độ của Instagram."; +"You both follow each other" = "Hai bạn theo dõi lẫn nhau"; +"You don't follow back" = "Bạn không theo dõi lại"; +"You follow them, they don't follow back" = "Bạn theo dõi họ, họ không theo dõi lại"; +"You started following" = "Bạn đã bắt đầu theo dõi"; +"You unfollowed" = "Bạn đã bỏ theo dõi"; +"your previous scan" = "lần quét trước của bạn"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "“Lần quét trước” luôn đo lường so với lần chạy gần nhất của bạn. Chọn một ảnh chụp đã lưu để so sánh với một thời điểm cố định thay vào đó."; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ Dung lượng đang lớn dần — hãy giảm giới hạn hoặc xóa ảnh chụp cũ để giải phóng dung lượng."; + +////////////////////////////////////////////////////////////////////////////// +// SETTINGS VIEWS & DIALOGS // +// Excluded-lists managers, backup/restore flows, in-picker labels. // +////////////////////////////////////////////////////////////////////////////// + +"Absolute format" = "Định dạng tuyệt đối"; +"Add chat" = "Thêm cuộc trò chuyện"; +"Add custom domain" = "Thêm tên miền tùy chỉnh"; +"Add to list?" = "Thêm vào danh sách?"; +"Add user" = "Thêm người dùng"; +"Apply" = "Áp dụng"; +"Apply to" = "Áp dụng cho"; +"Chats" = "Cuộc trò chuyện"; +"Colored" = "Có màu"; +"Could not read file." = "Không thể đọc tệp."; +"Could not resolve user ID" = "Không thể phân giải ID người dùng"; +"Current location" = "Vị trí hiện tại"; +"Custom" = "Tùy chỉnh"; +"Delete" = "Xóa"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "Mỗi giao diện trong IG sử dụng bộ định dạng NSDate khác nhau. Bật những giao diện bạn muốn áp dụng định dạng này."; +"Enable fake location" = "Bật vị trí giả"; +"Excluded chats" = "Cuộc trò chuyện bị loại trừ"; +"Excluded users" = "Người dùng bị loại trừ"; +"Follow default" = "Theo dõi mặc định"; +"Force OFF (allow unsends)" = "Buộc TẮT (cho phép thu hồi)"; +"Force ON (preserve unsends)" = "Buộc BẬT (giữ tin đã thu hồi)"; +"Include seconds when the format already shows time." = "Bao gồm giây khi định dạng đã hiển thị giờ."; +"Included chats" = "Cuộc trò chuyện được bao gồm"; +"Included users" = "Người dùng được bao gồm"; +"KD: default" = "KD: mặc định"; +"KD: ON" = "KD: BẬT"; +"Keep-deleted" = "Giữ đã xóa"; +"Keep-deleted override" = "Ghi đè giữ đã xóa"; +"Name (A–Z)" = "Tên (A–Z)"; +"No DM thread found with @%@" = "Không tìm thấy cuộc trò chuyện DM với @%@"; +"Presets" = "Cài đặt sẵn"; +"Recently added" = "Mới thêm gần đây"; +"Relative time" = "Thời gian tương đối"; +"Relative within" = "Tương đối trong"; +"Remove from list" = "Xóa khỏi danh sách"; +"Reset" = "Đặt lại"; +"Search" = "Tìm kiếm"; +"Search address or place" = "Tìm địa chỉ hoặc địa điểm"; +"Search by name or username" = "Tìm theo tên hoặc tên người dùng"; +"Search by username or name" = "Tìm theo tên người dùng hoặc tên"; +"Select location on map" = "Chọn vị trí trên bản đồ"; +"Set current location" = "Đặt vị trí hiện tại"; +"Set keep-deleted override" = "Đặt ghi đè giữ đã xóa"; +"Show map button" = "Hiển thị nút bản đồ"; +"Show relative time for dates younger than this many days. 0 disables it." = "Hiển thị thời gian tương đối cho ngày trẻ hơn số ngày này. 0 sẽ tắt."; +"Show seconds" = "Hiển thị giây"; +"Sort by" = "Sắp xếp theo"; +"Thread" = "Cuộc trò chuyện"; +"Time" = "Giờ"; +"Use this location" = "Dùng vị trí này"; +"User '%@' not found" = "Không tìm thấy người dùng '%@'"; +"Username (A–Z)" = "Tên người dùng (A–Z)"; +"Within %ld days" = "Trong %ld ngày"; +"Within 1 day" = "Trong 1 ngày"; + +////////////////////////////////////////////////////////////////////////////// +// REELS (FEATURES) // +// Strings from Reels. // +////////////////////////////////////////////////////////////////////////////// + +"No password found" = "Không tìm thấy mật khẩu"; +"No text field found" = "Không tìm thấy trường văn bản"; +"Refresh Reels?" = "Làm mới Reels?"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE (FEATURES) // +// Strings from Profile. // +////////////////////////////////////////////////////////////////////////////// + +"%lu accounts" = "%lu tài khoản"; +"%lu loaded" = "Đã tải %lu"; +"%lu loaded · all loaded" = "Đã tải %lu · đã tải hết"; +"Doesn't follow you" = "Không theo dõi bạn"; +"Everyone is already loaded." = "Đã tải hết mọi người."; +"Filter & sort" = "Lọc & sắp xếp"; +"Follows me" = "Theo dõi tôi"; +"Follows me first" = "Theo dõi tôi trước"; +"Follows you" = "Theo dõi bạn"; +"Hides everyone who doesn't match all picked filters." = "Ẩn tất cả những người không khớp mọi bộ lọc đã chọn."; +"Jump to bottom" = "Nhảy xuống cuối"; +"Jump to top" = "Nhảy lên đầu"; +"List" = "Danh sách"; +"List fully loaded" = "Đã tải hết danh sách"; +"Load more" = "Tải thêm"; +"Loaded more" = "Đã tải thêm"; +"Mutuals" = "Theo dõi lẫn nhau"; +"Mutuals first" = "Theo dõi lẫn nhau trước"; +"Note copied" = "Đã sao chép ghi chú"; +"People I follow" = "Người tôi theo dõi"; +"People I follow first" = "Người tôi theo dõi trước"; +"Reverse order" = "Đảo thứ tự"; +"Show only" = "Chỉ hiện"; +"Verified" = "Đã xác minh"; +"Verified first" = "Đã xác minh trước"; + +////////////////////////////////////////////////////////////////////////////// +// MISC // +// Anything that didn't fit a named section. Usually short labels. // +////////////////////////////////////////////////////////////////////////////// + +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(chưa đặt)"; +"720p • progressive • fastest" = "720p • progressive • nhanh nhất"; +"Add language" = "Thêm ngôn ngữ"; +"Album name" = "Tên album"; +"Are you sure?" = "Bạn có chắc không?"; +"Bundle" = "Bundle"; +"Copy audio URL" = "Sao chép URL âm thanh"; +"Copy quality info" = "Sao chép thông tin chất lượng"; +"Copy video URL" = "Sao chép URL video"; +"Could not access reel media" = "Không thể truy cập media reel"; +"Could not access reel photo" = "Không thể truy cập ảnh reel"; +"Could not write file." = "Không thể ghi tệp."; +"Download all and share?" = "Tải tất cả và chia sẻ?"; +"Download Quality" = "Chất lượng tải xuống"; +"Downloading %d%%" = "Đang tải %d%%"; +"e.g. 1000000" = "ví dụ: 1000000"; +"Localization file not found" = "Không tìm thấy tệp bản địa hóa"; +"Enter the language code (e.g. fr, de, ja)" = "Nhập mã ngôn ngữ (vd: fr, de, ja)"; +"Error" = "Lỗi"; +"Extras" = "Bổ sung"; +"FFmpegKit Debug" = "Gỡ lỗi FFmpegKit"; +"File is empty or not a valid .strings file." = "Tệp trống hoặc không phải tệp .strings hợp lệ."; +"KD: OFF" = "KD: TẮT"; +"Keep-deleted: OFF" = " • Giữ đã xóa: TẮT"; +"Keep-deleted: ON" = " • Giữ đã xóa: BẬT"; +"Later" = "Để sau"; +"Loading" = "Đang tải"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "Tên album Ảnh mà RyukGram lưu vào. Để trống để khôi phục mặc định."; +"Next" = "Tiếp"; +"No results found." = "Không tìm thấy kết quả."; +"No!" = "Không!"; +"Pick a language to update, or add a new one" = "Chọn ngôn ngữ để cập nhật, hoặc thêm ngôn ngữ mới"; +"Preset" = "Cài đặt sẵn"; +"Restart" = "Khởi động lại"; +"Restart now" = "Khởi động lại ngay"; +"Restart required" = "Cần khởi động lại"; +"Saved preset \"%@\"" = "Đã lưu cài đặt sẵn \"%@\""; +"selected" = "đã chọn"; +"Shared icon, or override per button" = "Biểu tượng chung, hoặc ghi đè theo từng nút"; +"Speed" = "Tốc độ"; +"Unset" = "Bỏ đặt"; +"Update localization" = "Cập nhật bản địa hóa"; +"Updated %@ (%ld keys). Restart to apply." = "Đã cập nhật %@ (%ld khóa). Khởi động lại để áp dụng."; +"Use default" = "Dùng mặc định"; +"Username or PK" = "Tên người dùng hoặc PK"; +"Username or raw user PK" = "Tên người dùng hoặc PK người dùng thô"; +"Yes" = "Có"; +"You must restart the app to apply this change" = "Bạn phải khởi động lại ứng dụng để áp dụng thay đổi này"; + +////////////////////////////////////////////////////////////////////////////// +// ABOUT / CREDITS // +// Strings from the About / Credits footer of Settings. // +////////////////////////////////////////////////////////////////////////////// + +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub, Telegram, Ủng hộ"; +"About" = "Giới thiệu"; +"Arabic translation" = "Bản dịch tiếng Ả Rập"; +"Chinese (Traditional and Simplified) translation" = "Bản dịch tiếng Trung (phồn thể và giản thể)"; +"Credits" = "Ghi công"; +"Developers" = "Nhà phát triển"; +"Donate to SoCuul" = "Ủng hộ SoCuul"; +"installed" = "đã cài đặt"; +"Korean translation" = "Bản dịch tiếng Hàn"; +"Portuguese (Brazil) translation" = "Bản dịch tiếng Bồ Đào Nha (Brazil)"; +"Turkish translation" = "Bản dịch tiếng Thổ Nhĩ Kỳ"; +"Vietnamese translation" = "Bản dịch tiếng Việt"; +"French translation" = "Bản dịch tiếng Pháp"; +"Code contributions" = "Đóng góp mã"; +"Following feed mode (from InstaSane)" = "Chế độ bảng tin Đang theo dõi (từ InstaSane)"; +"latest" = "mới nhất"; +"Links" = "Liên kết"; +"No releases" = "Không có bản phát hành"; +"Original SCInsta developer" = "Nhà phát triển SCInsta gốc"; +"Release notes" = "Ghi chú phát hành"; +"Releases" = "Bản phát hành"; +"Report an issue" = "Báo cáo sự cố"; +"Russian translation" = "Bản dịch tiếng Nga"; +"RyukGram developer" = "Nhà phát triển RyukGram"; +"Join Telegram channel" = "Tham gia kênh Telegram"; +"Source code" = "Mã nguồn"; +"View on GitHub" = "Xem trên GitHub"; +"Spanish translation" = "Bản dịch tiếng Tây Ban Nha"; +"Support the original SCInsta developer" = "Ủng hộ nhà phát triển SCInsta gốc"; +"Inspirations" = "Nguồn cảm hứng"; +"Inspirations, contributors, translators" = "Cảm hứng, người đóng góp, dịch giả"; +"Code and research" = "Mã và nghiên cứu"; +"Translators" = "Dịch giả"; +"Original BHInstagram developer" = "Nhà phát triển BHInstagram gốc"; +"OLED theme inspiration" = "Cảm hứng giao diện OLED"; +"Donate to Ryuk" = "Ủng hộ Ryuk"; +"Support RyukGram development" = "Ủng hộ phát triển RyukGram"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram là một nhánh được làm lại đáng kể từ SCInsta — việc ủng hộ nhà phát triển gốc rất được trân trọng."; +"Browse changes from previous releases" = "Duyệt các thay đổi từ bản phát hành trước"; +"Code inspiration" = "Cảm hứng mã"; +"zxPluginsInject sideload compatibility shim" = "Lớp tương thích sideload zxPluginsInject"; +"Telegram channel" = "Kênh Telegram"; +"Testing and feature suggestions" = "Thử nghiệm và đề xuất tính năng"; +"Version" = "Phiên bản"; +"Version, credits, and links" = "Phiên bản, ghi công và liên kết"; +"What's new in RyukGram" = "Có gì mới trong RyukGram"; + +////////////////////////////////////////////////////////////////////////////// +// HD DOWNLOADS // +// Enhanced / HD downloads settings (DASH + FFmpegKit encoding). // +////////////////////////////////////////////////////////////////////////////// + +"720p • progressive • silent" = "720p • progressive • im lặng"; +"Audio only" = "Chỉ âm thanh"; +"Audio ready" = "Âm thanh sẵn sàng"; +"Download video at the highest available quality" = "Tải video ở chất lượng cao nhất hiện có"; +"Downloads HD video via DASH streams and encodes to H.264. Requires FFmpegKit." = "Tải video HD qua luồng DASH và mã hóa sang H.264. Yêu cầu FFmpegKit."; +"Encoding speed" = "Tốc độ mã hóa"; +"Enhanced downloads" = "Tải xuống nâng cao"; +"Faster = lower quality" = "Nhanh hơn = chất lượng thấp hơn"; +"FFmpeg not available" = "FFmpeg không khả dụng"; +"FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit không khả dụng. Hãy cài IPA sideload hoặc biến thể .deb _ffmpeg để bật."; +"No audio track found" = "Không tìm thấy bản âm thanh"; +"Photo" = "Ảnh"; +"Photo quality" = "Chất lượng ảnh"; +"silent" = "im lặng"; +"Use highest resolution available" = "Dùng độ phân giải cao nhất hiện có"; +"Video quality" = "Chất lượng video"; +"Which quality to download" = "Chọn chất lượng để tải xuống"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "'%@' không có trong bản FFmpegKit này — dùng h264 phần cứng thay thế."; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-bit 4:2:0. Chậm hơn ~2 lần, chuyển màu mượt hơn."; +"10-bit colour. Slower, smoother gradients. Software only." = "Màu 10-bit. Chậm hơn, chuyển màu mượt hơn. Chỉ phần mềm."; +"1080p30 baseline." = "Cơ bản 1080p30."; +"4K30 baseline." = "Cơ bản 4K30."; +"8-bit 4:2:0. Universal default." = "8-bit 4:2:0. Mặc định phổ thông."; +"8-bit 4:2:2 chroma. Niche playback." = "Chroma 8-bit 4:2:2. Phát lại chuyên biệt."; +"8-bit 4:2:2 chroma. Software only." = "Chroma 8-bit 4:2:2. Chỉ phần mềm."; +"8-bit 4:4:4 chroma. Software only." = "Chroma 8-bit 4:4:4. Chỉ phần mềm."; +"8-bit 4:4:4 full chroma. Niche playback." = "Chroma đầy đủ 8-bit 4:4:4. Phát lại chuyên biệt."; +"8-bit. Best for modern devices." = "8-bit. Tốt nhất cho thiết bị hiện đại."; +"Advanced encoding" = "Mã hóa nâng cao"; +"Advanced encoding settings" = "Cài đặt mã hóa nâng cao"; +"Archival quality." = "Chất lượng lưu trữ."; +"Audio bitrate" = "Bitrate âm thanh"; +"Audio channels" = "Kênh âm thanh"; +"Audio codec" = "Codec âm thanh"; +"Audio conversion failed" = "Chuyển đổi âm thanh thất bại"; +"Audio sample rate" = "Tần số lấy mẫu âm thanh"; +"Balanced. libx264 default." = "Cân bằng. Mặc định libx264."; +"Best practical quality per bit." = "Chất lượng thực tế tốt nhất trên mỗi bit."; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "Bitrate, kênh và tần số lấy mẫu chỉ áp dụng khi codec là AAC (mã hóa lại)."; +"Cartoons / anime." = "Hoạt hình / anime."; +"Cinematic. Smaller files." = "Điện ảnh. Tệp nhỏ hơn."; +"Codec" = "Codec"; +"Container" = "Định dạng chứa"; +"Copy (passthrough)" = "Sao chép (truyền thẳng)"; +"CRF quality" = "Chất lượng CRF"; +"Downloading video…" = "Đang tải video…"; +"Easier to play back on weak devices." = "Dễ phát lại hơn trên thiết bị yếu."; +"Encoder unavailable" = "Bộ mã hóa không khả dụng"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "Ví dụ: 8M, 12M, 25M, 4500k. Để trống để tự động."; +"Failed to download video" = "Tải video thất bại"; +"Fast, fixed-bitrate, GPU-accelerated." = "Nhanh, bitrate cố định, tăng tốc GPU."; +"Fastest, worst compression." = "Nhanh nhất, nén kém nhất."; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "Faststart chuyển chỉ mục MP4 lên đầu để phát lại bắt đầu trước khi tệp được nạp đệm đầy đủ. Xóa siêu dữ liệu loại bỏ các thẻ nguồn (ngày tạo, trình xử lý, bộ mã hóa) khỏi tệp."; +"FFmpeg documentation" = "Tài liệu FFmpeg"; +"FFmpeg mux failed" = "FFmpeg ghép luồng thất bại"; +"Frame rate" = "Tốc độ khung hình"; +"H.264 level" = "Cấp độ H.264"; +"H.264 profile" = "Hồ sơ H.264"; +"Hardware (VideoToolbox)" = "Phần cứng (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "Phần cứng (VideoToolbox) chỉ hỗ trợ yuv420p — '%@' đã bị bỏ qua. Chuyển sang Phần mềm (libx264) để dùng."; +"Keep original audio. Fast." = "Giữ âm thanh gốc. Nhanh."; +"Keep the source frame rate." = "Giữ tốc độ khung hình nguồn."; +"Let the encoder pick." = "Để bộ mã hóa tự chọn."; +"Live-action video." = "Video người thật."; +"Lossless. Huge files." = "Không mất dữ liệu. Tệp rất lớn."; +"Low-latency streaming." = "Truyền phát độ trễ thấp."; +"Manual ffmpeg controls in place of Encoding speed." = "Điều khiển ffmpeg thủ công thay cho Tốc độ mã hóa."; +"Marginal gain, huge time cost." = "Cải thiện không đáng kể, tốn rất nhiều thời gian."; +"Max resolution" = "Độ phân giải tối đa"; +"Mono" = "Mono"; +"No tuning. Default." = "Không tinh chỉnh. Mặc định."; +"None" = "Không có"; +"Pixel format" = "Định dạng điểm ảnh"; +"Pixel format ignored" = "Đã bỏ qua định dạng điểm ảnh"; +"Preserve film grain." = "Giữ hạt phim."; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "Preset và Tune chỉ áp dụng cho Phần mềm (libx264). Ghép hồ sơ với định dạng điểm ảnh: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Không khớp sẽ tự hạ cấp thầm lặng. Phần cứng luôn dùng yuv420p."; +"Re-encode. Use when source is opus or unsupported." = "Mã hóa lại. Dùng khi nguồn là opus hoặc không được hỗ trợ."; +"Reset advanced encoding" = "Đặt lại mã hóa nâng cao"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "Đặt bitrate video chuyển Phần mềm sang bitrate cố định và bỏ qua CRF. Để trống để dùng CRF. Phần cứng dùng bitrate."; +"Slideshow-like content." = "Nội dung kiểu trình chiếu."; +"Slower, better compression per bit." = "Chậm hơn, nén tốt hơn trên mỗi bit."; +"Smaller, visible artefacts." = "Nhỏ hơn, có hiện tượng nhiễu thấy được."; +"Software (libx264)" = "Phần mềm (libx264)"; +"Standard 8-bit." = "8-bit tiêu chuẩn."; +"Stereo" = "Stereo"; +"Streaming default." = "Mặc định truyền phát."; +"Strip metadata" = "Xóa siêu dữ liệu"; +"Top of AAC." = "Cao nhất của AAC."; +"Tune" = "Điều chỉnh"; +"Unknown error" = "Lỗi không xác định"; +"Very high quality." = "Chất lượng rất cao."; +"Video bitrate" = "Bitrate video"; +"Video codec" = "Codec video"; +"Visually lossless. RyukGram default." = "Không mất dữ liệu về thị giác. Mặc định RyukGram."; +"Widest compatibility, no B-frames." = "Tương thích rộng nhất, không có B-frame."; +"Worst quality." = "Chất lượng kém nhất."; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "Cử chỉ nhấn giữ"; +"Inserts a button in the profile navigation header" = "Chèn nút trong tiêu đề điều hướng hồ sơ"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "Thêm nút hành động RyukGram vào tiêu đề hồ sơ với các mục sao chép, xem ảnh, chia sẻ, lưu và thông tin hồ sơ. Chạm mở menu theo mặc định; thay đổi hành vi chạm trong menu Cấu hình."; +"Configure menu" = "Cấu hình menu"; +"Reorder, enable/disable, set default tap, show date" = "Sắp xếp lại, bật/tắt, đặt chạm mặc định, hiển thị ngày"; +"Reorder, enable/disable, set default tap" = "Sắp xếp lại, bật/tắt, đặt chạm mặc định"; +"RyukGram profile actions" = "Hành động hồ sơ RyukGram"; +"Reorder sections" = "Sắp xếp lại các phần"; +"Drag the ≡ handle to reorder sections." = "Kéo tay nắm ≡ để sắp xếp lại các phần."; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "Kéo tay nắm ≡ để sắp xếp lại. Tắt một hàng để ẩn nó khỏi menu. Đánh dấu một phần là menu phụ để thu gọn các hành động sau một mục duy nhất."; +"Show as submenu" = "Hiển thị dưới dạng menu phụ"; +"Collapse this section's actions behind a single entry" = "Thu gọn hành động của phần này sau một mục duy nhất"; +"Configure: %@" = "Cấu hình: %@"; +"What happens on a single tap. Long-press always opens the full menu." = "Điều xảy ra khi chạm một lần. Nhấn giữ luôn mở menu đầy đủ."; +"Reset to defaults" = "Đặt lại về mặc định"; +"This will restore the default sections, order, and toggles for this menu." = "Thao tác này sẽ khôi phục các phần, thứ tự và công tắc mặc định cho menu này."; +"Audio & visibility" = "Âm thanh & hiển thị"; +"DM disappearing media" = "Media biến mất trong DM"; +"Bulk download" = "Tải hàng loạt"; +"Feed settings" = "Cài đặt bảng tin"; +"Reels settings" = "Cài đặt reel"; +"Profile settings" = "Cài đặt hồ sơ"; +"Stories settings" = "Cài đặt tin"; +"Copy ID" = "Sao chép ID"; +"Copy Info" = "Sao chép thông tin"; +"Copy all info" = "Sao chép tất cả thông tin"; +"Copy media URL" = "Sao chép URL media"; +"Copy profile link" = "Sao chép liên kết hồ sơ"; +"Copy username" = "Sao chép tên người dùng"; +"Download" = "Tải xuống"; +"Download to Gallery" = "Tải vào Thư viện"; +"Download all to Gallery" = "Tải tất cả vào Thư viện"; +"Exclude/include user" = "Loại trừ/bao gồm người dùng"; +"Mute / unmute audio" = "Tắt / bật âm thanh"; +"Save picture to Gallery" = "Lưu ảnh vào Thư viện"; +"Share picture" = "Chia sẻ ảnh"; +"View picture" = "Xem ảnh"; +"Bio" = "Tiểu sử"; +"ID" = "ID"; +"Info" = "Thông tin"; +"Profile info" = "thông tin hồ sơ"; +"Profile link" = "Liên kết hồ sơ"; +"Picture not found" = "Không tìm thấy ảnh"; +"Private profile" = "Hồ sơ riêng tư"; +"Profile unavailable" = "Hồ sơ không khả dụng"; +"Public profile" = "Hồ sơ công khai"; +"Username" = "Tên người dùng"; +"Followers: %@" = "Người theo dõi: %@"; +"Following: %@" = "Đang theo dõi: %@"; +"Copied %@" = "Đã sao chép %@"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(không xác định)"; +"All files deleted" = "Đã xóa tất cả tệp"; +"Browsing" = "Duyệt"; +"By source" = "Theo nguồn"; +"By type" = "Theo loại"; +"By user" = "Theo người dùng"; +"Clear filters" = "Xóa bộ lọc"; +"Comment" = "Bình luận"; +"Create" = "Tạo"; +"Create & Move" = "Tạo & Di chuyển"; +"Delete %@?" = "Xóa %@?"; +"Delete all files" = "Xóa tất cả tệp"; +"Delete all images" = "Xóa tất cả hình ảnh"; +"Delete all videos" = "Xóa tất cả video"; +"Delete by user" = "Xóa theo người dùng"; +"Delete DM media" = "Xóa media DM"; +"Delete feed posts" = "Xóa bài viết bảng tin"; +"Delete files" = "Xóa tệp"; +"Delete Folder" = "Xóa thư mục"; +"Delete from Gallery?" = "Xóa khỏi Thư viện?"; +"Delete profile pictures" = "Xóa ảnh hồ sơ"; +"Delete reels" = "Xóa reel"; +"Delete selected" = "Xóa đã chọn"; +"Delete Selected Files?" = "Xóa tệp đã chọn?"; +"Delete stories" = "Xóa tin"; +"Delete thumbnails" = "Xóa ảnh thu nhỏ"; +"Deleted from Gallery" = "Đã xóa khỏi Thư viện"; +"Deleted selected files" = "Đã xóa tệp đã chọn"; +"Deselect All" = "Bỏ chọn tất cả"; +"DM media deleted" = "Đã xóa media DM"; +"DMs" = "DM"; +"Each user appears as a folder next to your real folders." = "Mỗi người dùng xuất hiện dưới dạng thư mục bên cạnh các thư mục thực của bạn."; +"Each user gets a labelled section in the grid/list." = "Mỗi người dùng có một phần được dán nhãn trong lưới/danh sách."; +"Enable gallery" = "Bật thư viện"; +"Failed" = "Thất bại"; +"Failed to delete" = "Xóa thất bại"; +"Favorite" = "Yêu thích"; +"Favorite selected" = "Yêu thích đã chọn"; +"Favorites only" = "Chỉ yêu thích"; +"Feed posts deleted" = "Đã xóa bài viết bảng tin"; +"Files deleted" = "Đã xóa tệp"; +"Flat list. No grouping." = "Danh sách phẳng. Không nhóm."; +"Folder name" = "Tên thư mục"; +"Folders" = "Thư mục"; +"From RyukGram Gallery" = "Âm thanh từ Thư viện RyukGram"; +"Gallery" = "Thư viện"; +"Gallery only" = "Chỉ Thư viện"; +"Gallery save mode" = "Chế độ lưu thư viện"; +"Gallery Settings" = "Cài đặt Thư viện"; +"GIFs" = "GIF"; +"Grid view" = "Chế độ xem lưới"; +"Group by user" = "Nhóm theo người dùng"; +"Hold DM tab to open gallery" = "Giữ tab DM để mở thư viện"; +"Images" = "Hình ảnh"; +"Images deleted" = "Đã xóa hình ảnh"; +"Images first" = "Hình ảnh trước"; +"item" = "mục"; +"items" = "mục"; +"Largest first" = "Lớn nhất trước"; +"List view" = "Chế độ xem danh sách"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "Nhấn giữ nút hộp thư trên thanh tab dưới để mở thư viện RyukGram"; +"Manage" = "Quản lý"; +"More" = "Thêm"; +"Move selected" = "Di chuyển đã chọn"; +"Move to Folder" = "Di chuyển đến thư mục"; +"Name A-Z" = "Tên A-Z"; +"Name Z-A" = "Tên Z-A"; +"New Folder" = "Thư mục mới"; +"New folder…" = "Thư mục mới…"; +"Newest first" = "Mới nhất trước"; +"No files in Gallery" = "Không có tệp trong Thư viện"; +"No files to delete" = "Không có tệp để xóa"; +"No matching files" = "Không có tệp khớp"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "Thư viện media trên thiết bị được tải qua RyukGram. Chế độ lưu chọn nơi 'Tải vào Ảnh' thực sự ghi."; +"Open" = "Mở"; +"Open Original Post" = "Mở bài viết gốc"; +"Options" = "Tùy chọn"; +"Other" = "Khác"; +"Photos + Gallery" = "Ảnh + Thư viện"; +"Photos only" = "Chỉ Ảnh"; +"Profile pictures deleted" = "Đã xóa ảnh hồ sơ"; +"Reels deleted" = "Đã xóa reel"; +"Rename" = "Đổi tên"; +"Rename Folder" = "Đổi tên thư mục"; +"Root" = "Gốc"; +"Save media from the preview screen\nto see it here." = "Lưu media từ màn hình xem trước\nđể xem nó ở đây."; +"Saved %lu items to Gallery" = "Đã lưu %lu mục vào Thư viện"; +"Saved to Gallery" = "Đã lưu vào Thư viện"; +"Saving to Gallery" = "Đang lưu vào Thư viện..."; +"Search users" = "Tìm người dùng"; +"Sections" = "Phần"; +"Select All" = "Chọn tất cả"; +"Share" = "Chia sẻ"; +"Share selected" = "Chia sẻ đã chọn"; +"Show favorites at top" = "Hiển thị mục yêu thích trên cùng"; +"Show gallery entries in download menus and unlock the gallery button" = "Hiển thị mục thư viện trong menu tải xuống và mở khóa nút thư viện"; +"Smallest first" = "Nhỏ nhất trước"; +"Source" = "Nguồn"; +"Source user" = "Người dùng nguồn"; +"Storage" = "Lưu trữ"; +"Stories deleted" = "Đã xóa tin"; +"Story" = "Tin"; +"The original content may no longer exist." = "Nội dung gốc có thể không còn tồn tại."; +"This folder contains %ld file(s). They will be moved to the parent folder." = "Thư mục này chứa %ld tệp. Chúng sẽ được di chuyển sang thư mục cha."; +"This folder is empty." = "Thư mục này trống."; +"This will permanently remove %ld file%@ from the gallery." = "Thao tác này sẽ xóa vĩnh viễn %ld tệp%@ khỏi thư viện."; +"This will permanently remove %ld file(s)." = "Thao tác này sẽ xóa vĩnh viễn %ld tệp."; +"This will permanently remove this file from the gallery." = "Thao tác này sẽ xóa vĩnh viễn tệp này khỏi thư viện."; +"Thumb" = "Thu nhỏ"; +"Thumbnails deleted" = "Đã xóa ảnh thu nhỏ"; +"to Gallery" = "vào Thư viện"; +"Total files" = "Tổng số tệp"; +"Total size" = "Tổng dung lượng"; +"Type" = "Loại"; +"Unable to open original post" = "Không thể mở bài viết gốc"; +"Unable to open profile" = "Không thể mở hồ sơ"; +"Unfavorite" = "Bỏ yêu thích"; +"Unknown user" = "Người dùng không xác định"; +"User files deleted" = "Đã xóa tệp người dùng"; +"Videos" = "Video"; +"Videos deleted" = "Đã xóa video"; +"Videos first" = "Video trước"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "Khi bật, mục yêu thích được ghim phía trên các tệp khác trong ngữ cảnh sắp xếp và thư mục hiện tại."; +"Where 'Download to Photos' actually writes when gallery is on" = "Nơi 'Tải vào Ảnh' thực sự ghi khi bật thư viện"; +"Yesterday" = "Hôm qua"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "Nút phím tắt trang chủ"; +"Show the extra button on the home top bar" = "Cấu hình nút phụ trên thanh trên cùng của trang chủ"; +"Auto" = "Tự động"; +"Icon" = "Biểu tượng"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "Kéo tay nắm ≡ để sắp xếp lại. Tắt một hàng để ẩn đích đến đó. Khi chỉ bật một hành động, chạm sẽ kích hoạt nó; khi có hai hoặc nhiều hơn, chạm sẽ mở menu."; +"Changelog" = "Nhật ký thay đổi"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "Thêm nút lối tắt bên cạnh nút tạo bài đăng + trên thanh trên cùng của trang chủ."; +"All buttons" = "Tất cả nút"; +"Choose icon, reorder actions, and enable menu items" = "Chọn biểu tượng, sắp xếp lại thao tác và bật các mục trong menu"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "Chọn biểu tượng hiển thị trên thanh trên cùng của trang chủ. Tự động dùng biểu tượng thao tác đã chọn khi chỉ bật một thao tác."; +"Configure button" = "Cấu hình nút"; +"Global Action Icons" = "Biểu tượng thao tác toàn cục"; +"Interface" = "Giao diện"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "Ghi đè biểu tượng cho một nút cụ thể. Các nút để ở Mặc định sẽ theo biểu tượng chung ở trên."; +"Per button" = "Theo từng nút"; +"Show home shortcut button" = "Hiện nút lối tắt trang chủ"; +"Tab bar" = "Thanh tab"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "Thông báo trong ứng dụng phổ quát. Chọn kiểu, vị trí, định tuyến theo từng hành động (pill tùy chỉnh / IG gốc / tắt)."; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "Thông báo"; +"Appearance" = "Giao diện"; +"Routing" = "Định tuyến"; +"Style" = "Kiểu"; +"Position" = "Vị trí"; +"Stack size" = "Kích thước chồng"; +"Duration" = "Thời lượng"; +"Default surface" = "Bề mặt mặc định"; +"Enable notifications" = "Bật thông báo"; +"Haptic feedback" = "Phản hồi rung"; +"Preview pill" = "Xem trước pill"; +"Preview download pill" = "Xem trước pill tải xuống"; +"Preview loading pill" = "Xem trước pill đang tải"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "Công tắc chính. Khi tắt, không có pill RyukGram hay toast IG gốc nào được phát ra."; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "Thông báo trong ứng dụng phổ quát. Mọi phản hồi của RyukGram (tải xuống, sao chép, lỗi, thông báo thành công) đều đi qua đây."; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Tối giản: làm mờ phẳng. Sắc màu: nhuộm theo tông. Phát sáng: viền sáng có màu. Đảo: viên nang dynamic island."; +"Top slides down, bottom slides up." = "Trên trượt xuống, dưới trượt lên."; +"How many pills can show at once before queueing." = "Số pill có thể hiển thị cùng lúc trước khi xếp hàng."; +"Multiplies how long toasts stay on screen." = "Nhân thời gian toast hiển thị trên màn hình."; +"Vibration on success/error pills." = "Rung trên pill thành công/lỗi."; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "Đối với hành động kiểu toast, bạn có thể chọn giữa pill của chúng tôi và toast dưới gốc của IG. Ghi đè theo từng hành động ở bên dưới."; +"What to use when an action doesn't have its own override." = "Dùng gì khi một hành động không có ghi đè riêng."; +"Tap to cycle: info → success → warning → error" = "Chạm để xoay vòng: thông tin → thành công → cảnh báo → lỗi"; +"Tap to cycle between success and failure" = "Chạm để xoay vòng giữa thành công và thất bại"; +"Progress UI — pill or off only." = "Giao diện tiến trình — chỉ pill hoặc tắt."; +"Minimal" = "Tối giản"; +"Colorful" = "Sắc màu"; +"Glow" = "Phát sáng"; +"Island" = "Đảo"; +"Top" = "Trên"; +"Bottom" = "Dưới"; +"Custom pill" = "Pill tùy chỉnh"; +"IG native toast" = "Toast IG gốc"; +"Short" = "Ngắn"; +"Normal" = "Bình thường"; +"Long" = "Dài"; +"Very long" = "Rất dài"; +"Downloads & saving" = "Tải xuống & lưu"; +"Copy to clipboard" = "Sao chép vào bảng tạm"; +"Read receipts & seen" = "Xác nhận đã đọc & đã xem"; +"Block, exclude & pin" = "Chặn, loại trừ & ghim"; +"Stories & messages" = "Tin & tin nhắn"; +"Voice & audio" = "Thoại & âm thanh"; +"Errors" = "Lỗi"; +"Download progress" = "Tiến trình tải xuống"; +"Bulk download progress" = "Tiến trình tải hàng loạt"; +"Copied post / reel URL" = "Đã sao chép URL bài viết / reel"; +"Copied comment text" = "Đã sao chép văn bản bình luận"; +"Copied note text" = "Đã sao chép văn bản ghi chú"; +"Copied profile info" = "Đã sao chép thông tin hồ sơ"; +"Copied audio URL" = "Đã sao chép URL âm thanh"; +"Copied quality picker URL" = "Đã sao chép URL bộ chọn chất lượng"; +"Copied unlocked password" = "Đã sao chép mật khẩu đã mở khóa"; +"Copied description text" = "Đã sao chép văn bản mô tả"; +"DM seen / read receipts" = "Xác nhận đã xem / đã đọc DM"; +"Story seen / read receipts" = "Xác nhận đã xem / đã đọc tin"; +"User blocked / unblocked" = "Đã chặn / bỏ chặn người dùng"; +"Chat added / removed from exclude" = "Đã thêm / xóa cuộc trò chuyện khỏi loại trừ"; +"Story user added / removed from exclude" = "Đã thêm / xóa người dùng tin khỏi loại trừ"; +"Share-sheet recipient pinned" = "Đã ghim người nhận bảng chia sẻ"; +"Unsent message detected" = "Đã phát hiện tin nhắn thu hồi"; +"Live comments toggled" = "Đã bật/tắt bình luận trực tiếp"; +"Custom GIF sent" = "Đã gửi GIF tùy chỉnh"; +"Voice DM sent" = "Đã gửi DM thoại"; +"Audio extraction status" = "Trạng thái trích xuất âm thanh"; +"Profile Analyzer complete" = "Đã hoàn tất phân tích hồ sơ"; +"Media extraction failed" = "Trích xuất media thất bại"; +"Permission denied" = "Quyền bị từ chối"; +"Validation error" = "Lỗi xác thực"; +"Network / API error" = "Lỗi mạng / API"; +"Action error fallback" = "Phương án dự phòng lỗi hành động"; +"Invalid clipboard link" = "Liên kết bảng tạm không hợp lệ"; +"Experimental flag warning" = "Cảnh báo cờ thử nghiệm"; +"Settings action confirmed" = "Đã xác nhận hành động cài đặt"; +"Cache clearing progress" = "Tiến trình xóa bộ nhớ đệm"; +"Other / uncategorized" = "Khác / chưa phân loại"; +"Comment copied" = "Đã sao chép bình luận"; +"FFmpeg log copied" = "Đã sao chép nhật ký FFmpeg"; +"GIF inserted" = "Đã chèn GIF"; +"Story marked as seen" = "Đã đánh dấu tin là đã xem"; +"Saved" = "Đã lưu"; +"Tap to retry" = "Chạm để thử lại"; +"Looks great" = "Trông tuyệt vời"; +"Something broke" = "Có gì đó hỏng"; +"Just so you know" = "Chỉ để bạn biết"; +"Success preview" = "Xem trước thành công"; +"Error preview" = "Xem trước lỗi"; +"Warning preview" = "Xem trước cảnh báo"; +"Info preview" = "Xem trước thông tin"; +"Preview download…" = "Xem trước tải xuống…"; +"Colors" = "Màu sắc"; +"+ Add new language" = "+ Thêm ngôn ngữ mới"; +"Each chat can override this in the list" = "Mỗi cuộc trò chuyện có thể ghi đè điều này trong danh sách"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "Khi bật, các yêu cầu vị trí của Instagram sẽ trả về vị trí giả bạn đã chọn. Nút bản đồ thêm phím tắt nhanh trong Bản đồ bạn bè."; +"Tap a preset to make it active. Swipe left to delete." = "Chạm vào một cài đặt sẵn để kích hoạt. Vuốt sang trái để xóa."; +"Override Instagram location reads." = "Ghi đè đọc vị trí của Instagram."; +"Show the quick button in Friends Map." = "Hiển thị nút nhanh trong Bản đồ bạn bè."; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "Chọn cách viết ngày tuyệt đối. “Mặc định” giữ nguyên định dạng của IG."; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "Ngày trẻ hơn ngưỡng hiển thị dưới dạng thời gian tương đối. Ngày cũ hơn quay về định dạng tuyệt đối. “Kết hợp với ngày” hiển thị cả hai — “05/01/2026 (2g)” hoặc “2g – 05/01/2026”."; +"Compact style" = "Kiểu rút gọn"; +"Example: “1h” instead of “1 hour ago”" = "Ví dụ: “1g” thay vì “1 giờ trước”"; +"Example: “Jan 5, 2026 (2h)”" = "Ví dụ: “05/01/2026 (2g)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "API âm thanh iOS không thể xử lý tệp này%@%@\n\nBạn có thể thử gửi nó tới Instagram nguyên trạng, hoặc mở issue hỗ trợ."; +"Combine with date" = "Kết hợp với ngày"; +"Absolute then relative" = "Tuyệt đối rồi tương đối"; +"Relative – absolute" = "Tương đối – tuyệt đối"; +"Relative when young, absolute when older." = "Tương đối nếu mới, tuyệt đối nếu cũ."; +"Example: “2h – Jan 5, 2026”" = "Ví dụ: “2g – 05/01/2026”"; diff --git a/src/Localization/Resources/zh-Hans.lproj/Localizable.strings b/src/Localization/Resources/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000..e6c6db6 --- /dev/null +++ b/src/Localization/Resources/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,2202 @@ +/* + * RyukGram — Localizable.strings (English source of truth) + * ------------------------------------------------------------------------- + * + * Every user-facing string in RyukGram goes through the macro + * SCILocalized(@"English text here") + * in the Objective-C source. The argument is BOTH the lookup key and the + * English fallback, so if a translation is missing the user still sees + * clean English — nothing ever breaks. + * + * + * HOW TO ADD A NEW LANGUAGE + * ------------------------------------------------------------------------- + * + * 1. Copy this file into a new folder named after the language code: + * src/Localization/Resources/.lproj/Localizable.strings + * e.g. ar.lproj (Arabic) + * es.lproj (Spanish) + * fr.lproj (French) + * 2. Translate the RIGHT-hand side of every `"key" = "value";` line. + * Do NOT touch the left-hand side — that is the lookup key and must + * stay identical to the English version, otherwise the app will never + * find your translation. + * 3. Keep every format specifier (%@, %lu, %d, %lld, %1$@, …) exactly + * as-is, in the same order. If you need to reorder them, switch to + * positional specifiers (%1$@ %2$lu). + * 4. Keep embedded quotes escaped with a backslash: \" — and newlines + * as \n. + * 5. Open a pull request at https://github.com/faroukbmiled/RyukGram/pulls + * so we can ship the language in the next release. + * + * + * HOW TO ADD A NEW STRING IN CODE + * ------------------------------------------------------------------------- + * + * Just wrap the English text with SCILocalized(...) in the .m / .x / .xm + * file — the helper resolves to the English text automatically when no + * translation exists. Then add the same English text as BOTH the key and + * the value inside the matching section below, e.g. + * + * "Download all items" = "Download all items"; + * + * Translators copy that line into their own .lproj and translate only the + * right-hand side. + * + * + * FILE FORMAT NOTES + * ------------------------------------------------------------------------- + * + * - UTF-8, LF line endings. + * - Slash-star block comments and double-slash line comments both work. + * - DO NOT nest one slash-star block comment inside another — the + * parser will close the outer block at the first inner close marker + * and every lookup in the file will silently fail. + * - Keys and values are both quoted; every line ends with a semicolon. + */ + +////////////////////////////////////////////////////////////////////////////// +// CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // +// Shown on the root Settings screen: title, search bar, the globe language // +// menu, and the one-time welcome alert. These use dotted keys (settings.*) // +// and are hand-authored rather than extracted from English source. // +////////////////////////////////////////////////////////////////////////////// + +"settings.firstrun.message" = "未来:在个人页面右上角的三条线上长按,即可重新开启 RyukGram 设定。"; +"settings.firstrun.ok" = "我了解了!"; +"settings.firstrun.title" = "RyukGram 设定资讯"; +"settings.language.english_only" = "RyukGram 目前仅内建英文。其他语言已接好接线等待翻译 — 请依 README 的简短指南协助翻译。"; +"settings.language.help_translate" = "协助翻译"; +"settings.language.system" = "系统预设"; +"settings.language.title" = "语言"; +"settings.language.restart.message" = "设置已更新。请重启 Instagram,让应用其他位置的菜单、按钮和提示也使用新语言。"; +"settings.language.restart.title" = "重启以全局应用"; +"settings.language.available" = "可用"; +"settings.results.many" = "%lu 笔结果"; +"settings.results.one" = "%lu 笔结果"; +"settings.search.placeholder" = "搜寻设定"; +"settings.title" = "RyukGram 设定"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL // +// Settings → General tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button icon" = "操作按钮图标"; +"Adds a copy option to the comment long-press menu" = "在留言长按选单中新增复制选项"; +"Adds a download button next to share/save on the reels audio page" = "在 Reels 音频页的分享/收藏旁新增下载按钮"; +"Adds download, copy and expand options to GIF and image comments" = "为 GIF 与图片评论新增下载、复制与展开选项"; +"Allow video in photo sticker" = "照片贴纸允许视频"; +"Alternate icons are not supported" = "不支持备用图标"; +"Anonymous live viewing" = "匿名观看直播"; +"App Icon" = "应用图标"; +"Audio page" = "音频页"; +"Auto-reveals sensitive media" = "自动显示敏感内容"; +"Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "封锁观众数心跳,让直播主看不到你 — 你也看不到观众数"; +"Browser" = "浏览器"; +"Change the app icon from the bundled icons" = "从内置图标中更换应用图标"; +"Choose Icon" = "选择图标"; +"Choose which surfaces hide ads" = "选择在哪些界面隐藏广告"; +"Comments" = "留言"; +"Commerce carousels in comments and shoppable CTAs on reels" = "评论中的购物轮播和 Reels 上的购物行动号召"; +"Copy comment text" = "复制留言文字"; +"Copy description" = "复制描述"; +"Copy description text fields by long-pressing on them" = "长按描述文字栏位即可复制"; +"Custom music sticker color" = "自定义音乐贴纸颜色"; +"Date format" = "日期格式"; +"Disable app haptics" = "关闭应用触觉反馈"; +"Disables haptics/vibrations within the app" = "关闭应用内的触觉/震动反馈"; +"Do not save recent searches" = "不储存最近搜寻纪录"; +"Download GIF & image comments" = "下载 GIF 与图片评论"; +"Download image" = "下载图片"; +"Embed domain" = "嵌入网域"; +"Embed domain: %@" = "嵌入网域:%@"; +"Enable liquid glass buttons" = "启用液态玻璃按钮"; +"Enable liquid glass surfaces" = "启用液态玻璃介面"; +"Enable teen app icons" = "启用青少年应用程式图示"; +"Enables experimental liquid glass buttons" = "启用实验性液态玻璃按钮"; +"Enables liquid glass tab bar, floating navigation, and other UI elements" = "启用液态玻璃标签列、浮动导航及其他介面元素"; +"End" = "结束"; +"Experimental features" = "实验性功能"; +"Explore & search" = "探索和搜索"; +"Failed to change icon" = "更换图标失败"; +"Fixed" = "固定"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "固定可防止缩小。隐藏可在向下滚动时让其消失"; +"Focus/distractions" = "专注/分心"; +"General" = "一般"; +"Gradient color" = "渐变色"; +"Hide ads" = "隐藏广告"; +"Hide explore posts grid" = "隐藏探索贴文网格"; +"Hide friends map" = "隐藏好友地图"; +"Hide Meta AI" = "隐藏 Meta AI"; +"Hide metrics" = "隐藏指标"; +"Hide notes tray" = "隐藏笔记托盘"; +"Hide on scroll" = "滚动时隐藏"; +"Hide TestFlight popup" = "隐藏 TestFlight 弹窗"; +"Hide trending searches" = "隐藏热门搜寻"; +"Hide UI on capture" = "录影/截图时隐藏 UI"; +"Hides all suggested users for you to follow, outside your feed" = "隐藏所有建议追踪的用户,位于动态墙外"; +"Hides like/comment/share counts on posts and reels" = "隐藏贴文和短片的喜欢/留言/分享数"; +"Hides the friends map icon in the notes tray" = "隐藏笔记托盘中的朋友地图图示"; +"Hides the grid of suggested posts on the explore/search tab" = "隐藏探索/搜寻分页中的建议贴文网格"; +"Hides the meta ai buttons/functionality within the app" = "隐藏应用程式内的 Meta AI 按钮/功能"; +"Hides the notes tray in the DM inbox" = "隐藏私讯收件匣中的笔记托盘"; +"Hides the suggested broadcast channels in direct messages" = "隐藏私讯中的建议广播频道"; +"Hides the trending searches under the explore search bar" = "隐藏探索搜寻列下方的热门搜寻"; +"Hold down on the Instagram logo to change the app icon" = "长按 Instagram 标志以更换应用程式图示"; +"Lets the photo sticker picker show videos too, not just photos" = "让照片贴纸选择器也显示视频,而不仅仅是照片"; +"Liquid glass tab bar" = "液态玻璃标签栏"; +"Live" = "直播"; +"Long press on the eyedropper tool in stories to customize the text color more precisely" = "在限时动态中长按吸管工具以更精确自订文字颜色"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "长按音乐或歌词贴纸上的色轮,即可选择任意纯色或渐变色"; +"Long-press the heart button in a live to hide or show the comments" = "在直播中长按爱心按钮以隐藏或显示留言"; +"Long-press the search tab to open a copied Instagram link" = "长按搜寻分页以开启复制的 Instagram 连结"; +"Master switch. When off, all per-surface toggles below are ignored." = "总开关。关闭时,下方所有按界面的开关都将被忽略。"; +"No suggested chats" = "无建议聊天"; +"No suggested users" = "无建议用户"; +"Notes" = "笔记"; +"Open app icon picker" = "开启应用程式图示选择器"; +"Open link from clipboard" = "从剪贴簿开启连结"; +"Open links in external browser" = "在外部浏览器开启连结"; +"Opens links in Safari instead of Instagram's in-app browser" = "在 Safari 而非 Instagram 内建浏览器开启连结"; +"Privacy" = "隐私"; +"Removes ads across enabled surfaces" = "在已启用的界面中移除广告"; +"Removes igsh, utm_source, and other tracking parameters from shared links" = "移除分享连结中的 igsh、utm_source 及其他追踪参数"; +"Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "移除 Instagram 追踪包装器(l.instagram.com)及 URL 中的 UTM/fbclid 参数"; +"Replace domain in shared links" = "替换分享连结中的网域"; +"Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "将 IG 的相对时间戳记(\"3d ago\")替换为自订格式。可在选择器中切换套用范围。"; +"Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "重写复制/分享的连结,使用适合 Discord、Telegram 等预览的嵌入友好网域"; +"Search bars will no longer save your recent searches" = "搜寻列将不再储存您的近期搜寻纪录"; +"Selected" = "已选择"; +"Sharing" = "分享"; +"Shopping" = "购物"; +"Skip sensitive content covers" = "略过敏感内容遮罩"; +"Solid color" = "纯色"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "主流、情境、视频和延伸信息流中的赞助帖子"; +"Sponsored posts on the explore grid" = "探索网格中的赞助帖子"; +"Sponsored reels in the sundial feed" = "Sundial 信息流中的赞助 Reels"; +"Start" = "起始"; +"Story ads and sponsored entries in the story tray" = "快拍栏中的快拍广告和赞助条目"; +"Strip tracking from links" = "移除连结中的追踪"; +"Strip tracking params" = "移除追踪参数"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "抑制\"It's time to update Instagram Beta\"提示"; +"Tap to apply" = "点按以应用"; +"The selected icon will be saved and shown here the next time you open this page." = "所选图标将被保存,并在下次打开此页面时显示在此处。"; +"Toggle live comments" = "切换直播留言"; +"Use detailed color picker" = "使用详细色彩选择器"; +"Used across feed, stories, reels, and DMs." = "用于动态、快拍、Reels 和私信"; + +////////////////////////////////////////////////////////////////////////////// +// DATE FORMAT // +// Settings → Date format tab // +////////////////////////////////////////////////////////////////////////////// + +"%ld day ago" = "%ld 天前"; +"%ld days ago" = "%ld 天前"; +"%ld hour ago" = "%ld 小时前"; +"%ld hours ago" = "%ld 小时前"; +"%ld minute ago" = "%ld 分钟前"; +"%ld minutes ago" = "%ld 分钟前"; +"%ld week ago" = "%ld 周前"; +"%ld weeks ago" = "%ld 周前"; +"%ldd" = "%ld天"; +"%ldh" = "%ld小时"; +"%ldm" = "%ld分"; +"%ldw" = "%ld周"; +"Alternate" = "替代"; +"Always ask" = "总是询问"; +"Balanced" = "平衡"; +"Block all" = "全部封锁"; +"Block selected" = "封锁选取项目"; +"Button" = "按钮"; +"Classic" = "经典"; +"Date format — %@" = "日期格式 — %@"; +"Default" = "预设"; +"Disabled" = "停用"; +"Download and share" = "下载并分享"; +"Download to Photos" = "下载至相簿"; +"Enabled" = "启用"; +"Expand" = "展开"; +"Explore" = "探索"; +"Fast" = "快速"; +"Feed" = "动态消息"; +"Feed posts" = "动态帖子"; +"High" = "高"; +"Inbox" = "收件箱"; +"just now" = "刚刚"; +"Low" = "低"; +"Max" = "最大"; +"Medium" = "中等"; +"Mute/Unmute" = "静音/取消静音"; +"Notes, comments, stories" = "笔记、评论、快拍"; +"now" = "刚刚"; +"Open menu" = "打开选单"; +"Pause/Play" = "暂停/播放"; +"Profile" = "个人档案"; +"Quality" = "画质"; +"Reels" = "短片"; +"Requires restart" = "需要重新启动"; +"Save to Photos" = "储存到相簿"; +"Share sheet" = "分享表单"; +"Standard" = "标准"; +"Toggle" = "切换"; + +////////////////////////////////////////////////////////////////////////////// +// FEED // +// Settings → Feed tab // +////////////////////////////////////////////////////////////////////////////// + +"Action button" = "动作按钮"; +"Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "在限时动态长按选单中新增「查看大头贴」和「查看封面」"; +"Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "在每则动态消息贴文下方新增 RyukGram 动作按钮,包含下载/分享/复制/展开/转贴选项。预设点击会开启选单;可于下方更改点击行为。"; +"Choose Instagram's default feed or force the Following feed" = "选择 Instagram 的默认动态或强制使用「正在关注」动态"; +"Main feed" = "主动态"; +"Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "控制动态消息的刷新时间与方式。背景刷新会在约 10 分钟后返回应用时执行。首页按钮刷新会在已在首页标签时点击该标签执行。"; +"Default tap action" = "预设点击动作"; +"Disable background refresh" = "停用背景刷新"; +"Disable home button refresh" = "停用首页按钮刷新"; +"Disable home button scroll" = "停用首页按钮滚动"; +"Disable video autoplay" = "停用影片自动播放"; +"Hide" = "隐藏"; +"Hide entire feed" = "隐藏整个动态消息"; +"Hide repost button" = "隐藏转贴按钮"; +"Hide stories tray" = "隐藏限时动态列"; +"Hide suggested stories" = "隐藏建议的限时动态"; +"Hides suggested accounts" = "隐藏建议帐号"; +"Hides suggested reels" = "隐藏建议短片"; +"Hides suggested threads posts" = "隐藏建议的 Threads 贴文"; +"Hides the repost button on feed posts" = "隐藏动态消息贴文上的转贴按钮"; +"Hides the story tray at the top" = "隐藏顶部限时动态列"; +"Inserts a button row below like/comment/share on each post" = "在每则贴文的赞/留言/分享下方插入按钮列"; +"Long press on media to expand in full-screen viewer" = "长按媒体以在全萤幕检视器中展开"; +"Start media muted" = "媒体静音启动"; +"Expanded videos open with sound off" = "展开的视频以静音方式打开"; +"Enhanced media resolution" = "增强媒体分辨率"; +"Media saving" = "媒体保存"; +"Spoof device profile so IG serves higher-quality images" = "伪装设备配置使 IG 提供更高质量的图像"; +"Media" = "媒体"; +"Media zoom" = "媒体缩放"; +"No suggested for you" = "没有为您推荐"; +"No suggested posts" = "没有推荐的贴文"; +"No suggested reels" = "没有推荐的短片"; +"No suggested threads" = "没有推荐的串列"; +"Prevents feed from reloading when returning from background" = "防止从背景返回时重新载入动态消息"; +"Prevents videos from playing automatically" = "防止影片自动播放"; +"Refresh" = "重新整理"; +"Removes all content from your home feed" = "移除主页动态中的所有内容"; +"Removes suggested accounts from the stories tray" = "从限时动态列移除推荐帐号"; +"Removes suggested posts" = "移除推荐贴文"; +"Scroll to top without refreshing when tapping Home" = "点击首页时卷动至顶端但不重新整理"; +"Show action button" = "显示操作按钮"; +"Show date" = "显示日期"; +"Stories tray" = "限时动态列"; +"Tapping Home does nothing when already on feed" = "已在动态页时点击首页不执行任何操作"; +"Tray long-press actions" = "限时动态列长按操作"; +"Composer doesn't accept GIFs" = "评论编辑器不接受 GIF"; +"Copy GIF link" = "复制 GIF 链接"; +"Copy image link" = "复制图片链接"; +"Custom GIF in comments" = "评论中自定义 GIF"; +"Failed to build GIF model" = "无法建立 GIF 模型"; +"GIF link copied" = "已复制 GIF 链接"; +"Image" = "图片"; +"Image link copied" = "已复制图片链接"; +"Invalid Giphy URL" = "无效的 Giphy 链接"; +"Long-press the GIF button to paste any Giphy URL" = "长按 GIF 按钮粘贴任意 Giphy 链接"; +"Paste Giphy Link" = "粘贴 Giphy 链接"; +"Paste a giphy.com URL or media ID" = "粘贴 giphy.com 网址或媒体 ID"; +"Send" = "发送"; + +////////////////////////////////////////////////////////////////////////////// +// REELS // +// Settings → Reels tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button above the reel sidebar with view-cover/download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "在短片侧边栏上方新增 RyukGram 操作按钮,包含观看封面/下载/分享/复制/展开/转贴项目。预设点击开启选单;可在下方更改点击行为。"; +"Always show progress scrubber" = "始终显示进度条"; +"Auto-scroll reels" = "自动卷动短片"; +"Change what happens when you tap on a reel" = "更改点击短片时的动作"; +"Confirm reel refresh" = "确认短片重新整理"; +"Custom speed" = "自定义速度"; +"Disable auto-unmuting reels" = "停用短片自动取消静音"; +"Disable scrolling reels" = "停用短片卷动"; +"Disable tab button refresh" = "停用分页按钮重新整理"; +"Doom scrolling limit" = "限制无止尽卷动"; +"e.g. 1.75" = "例如 1.75"; +"Enter a value between 0.5 and 2.0" = "请输入 0.5 到 2.0 之间的值"; +"Forces the progress bar to appear on every reel" = "强制在每个短片上显示进度条"; +"Hide \"Made with Edits\" badge" = "隐藏\"Made with Edits\"徽章"; +"Hide friends avatars" = "隐藏好友头像"; +"Hide reels header" = "隐藏短片标题列"; +"Hide social context overlay" = "隐藏社交内容浮动覆盖层"; +"Hides the avatar bubbles next to the Friends tab in reels" = "隐藏 Reels 中好友标签旁的头像气泡"; +"Hides the Edits app promo pill on reels" = "在 Reels 中隐藏 Edits 应用推广胶囊"; +"Hides the floating overlay showing who reposted or commented on reels" = "隐藏 Reels 上显示谁转发或评论的浮动覆盖层"; +"Hides the repost button on the reels sidebar" = "隐藏短片侧边栏的转贴按钮"; +"Hides the top navigation bar when watching reels" = "观看短片时隐藏顶部导览列"; +"Hiding" = "隐藏"; +"Hold the 3-dot on any reel to open speed picker" = "长按任意 Reel 上的三点图标以打开速度选择器"; +"IG default" = "IG 预设"; +"IG default: native behavior. RyukGram: re-advances after swiping back." = "IG 预设:原生行为。RyukGram:在向后滑动后会重新前进。"; +"Limits" = "限制"; +"Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "限制同时可卷动的短片数量,并防止重新整理"; +"Only loads %@ %@" = "只载入 %@ %@"; +"Places a button above the like/comment/share column on each reel" = "在每个短片的按赞/留言/分享栏上方放置一个按钮"; +"Playback speed" = "播放速度"; +"Prevent doom scrolling" = "防止无止尽卷动"; +"Prevents reels from being scrolled to the next video" = "防止短片卷动至下一支影片"; +"Prevents reels from unmuting when the volume/silent button is pressed" = "按下音量/静音按钮时防止短片取消静音"; +"RyukGram" = "RyukGram"; +"Shows an alert when you trigger a reels refresh" = "触发短片重新整理时显示警告"; +"Shows buttons to reveal and auto-fill the password on locked reels" = "显示按钮以揭露并自动填入锁定短片的密码"; +"Swipe a reel left to open the author's profile" = "向左滑动短片以打开作者主页"; +"Swipe left to profile" = "向左滑动打开主页"; +"Tap Controls" = "点击控制"; +"Tap to mute on photo reels" = "点击图片短片以静音"; +"Tapping the Reels tab while on reels does nothing" = "在短片页面点击短片标签无反应"; +"Unlock password-locked reels" = "解锁密码保护的短片"; +"When pause mode is on, tap on photo reels toggles audio instead of the native pause gesture" = "启用暂停模式时,点击图片短片会切换音讯,而非原生的暂停手势"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE // +// Settings → Profile tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "为任意粉丝/关注列表添加筛选和排序按钮。离开时重置。"; +"Adds a view option to the highlight long-press menu to open the cover in full-screen" = "在精选长按选单新增检视选项,可全萤幕开启封面"; +"Copy note on long press" = "长按复制备注"; +"Extra stats shown on each post and reel card in profile grids." = "在资料网格中每张帖子和 Reel 卡片上显示的额外统计。"; +"Fake follower count" = "伪造粉丝数"; +"Fake following count" = "伪造追踪数"; +"Fake post count" = "伪造贴文数"; +"Fake profile stats" = "伪造个人档案数据"; +"Fake verified badge" = "伪造认证徽章"; +"Fetch missing counts" = "获取缺失的计数"; +"Filter & sort lists" = "筛选和排序列表"; +"Follow indicator" = "追踪指示器"; +"Follower & following lists" = "粉丝和关注列表"; +"Follower count" = "粉丝数"; +"Following count" = "追踪数"; +"Long press a profile picture to open it in full-screen with zoom, share, and save" = "长按个人档案图片可全萤幕开启,并支援缩放、分享与储存"; +"Long press the note bubble on a profile to copy the text" = "长按个人档案上的备注气泡以复制文字"; +"Long press to download directly (ignored when zoom is on)" = "长按直接下载(启用缩放时忽略)"; +"Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "个人档案元素的长按手势 — 与每项功能的操作按钮分开维护。"; +"Only affects your own profile header. Other users see the real numbers." = "仅影响你自己的个人档案页首。其他用户看到的是真实数字。"; +"Override view count" = "覆盖观看次数"; +"Post count" = "贴文数"; +"Profile card details" = "资料卡详情"; +"Profile stats" = "个人资料统计"; +"Render counts in shortened format." = "以缩写形式显示数字。"; +"Save profile picture" = "储存个人档案图片"; +"Short numbers" = "缩写数字"; +"Show a checkmark next to your name on your own profile" = "在你自己的个人档案名称旁显示打勾符号"; +"Show full follower count" = "显示完整粉丝数"; +"Show full post count" = "显示完整帖子数"; +"Show like count" = "显示点赞数"; +"Show upload date" = "显示发布日期"; +"Shows whether the profile user follows you" = "显示该用户是否追踪你"; +"Tap to set" = "点击以设定"; +"Uses Instagram's API. May hit rate limits." = "使用 Instagram API,可能触发速率限制。"; +"View highlight cover" = "检视精选封面"; +"Zoom profile photo" = "缩放个人档案照片"; + +////////////////////////////////////////////////////////////////////////////// +// SAVING & DOWNLOADS // +// Settings → Saving tab // +////////////////////////////////////////////////////////////////////////////// + +"Active, queued, and finished downloads" = "进行中、排队中和已完成的下载"; +"Auto-retry attempts" = "自动重试次数"; +"Auto-retry failed downloads" = "自动重试失败的下载"; +"Confirm before download" = "下载前确认"; +"Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "已弃用。RyukGram 动作按钮(在动态/短片/限时动态中依功能设定)是下载媒体的新方式。仅当你偏好旧版多指长按直接下载媒体时,才启用此主开关。"; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "离开应用时不暂停下载、编码或主页扫描"; +"Download queue" = "下载队列"; +"Downloads" = "下载"; +"Downloads with %@ %@" = "下载 %@ %@"; +"Enable long-press gesture" = "启用长按手势"; +"Finger count for long-press" = "长按所需手指数"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "同时运行多少个下载 — 多余的会排队,并在有空位时开始。下载在网络错误时会自动重试。打开管理器可查看、取消或重试下载。"; +"Keep running in background" = "在后台保持运行"; +"Legacy long-press gesture" = "旧版长按手势"; +"Long-press hold time" = "长按持续时间"; +"Master toggle for the deprecated gesture workflow (off by default)" = "已弃用手势流程的主开关(预设关闭)"; +"Max simultaneous downloads" = "最大同时下载数"; +"Open download manager" = "打开下载管理器"; +"Press finger(s) for %@ %@" = "按压 %@ %@ 手指"; +"Retry automatically when a download drops on a network error" = "下载因网络错误中断时自动重试"; +"Route saves into a custom album in Photos instead of the camera roll root" = "将储存路径导向专用相簿,而非相机胶卷根目录"; +"Run up to %@ %@ at once" = "最多同时运行 %@ 个%@"; +"Save action" = "储存动作"; +"Save to dedicated album" = "保存到专用相册"; +"Show a confirmation dialog before starting a download" = "开始下载前显示确认对话框"; +"Try %@ more %@ before giving up" = "放弃前再尝试 %@ 次%@"; +"What happens after the gesture downloads" = "手势下载后的动作"; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "开启 \"保存到专用相册\" 后,下载和分享菜单中的 \"存储到照片\" 操作会被归入你照片图库中的一个命名相册。点按 \"相册名称\" 可更改它。"; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu 个失败"; +"%lu of %lu done" = "已完成 %lu / %lu"; +"%lu saved, %lu failed" = "已保存 %lu 个,%lu 个失败"; +"Active" = "进行中"; +"Auto-retry" = "自动重试"; +"Clear completed" = "清除已完成"; +"Completed" = "已完成"; +"Download settings" = "下载设置"; +"Downloading %lu items" = "正在下载 %lu 个项目"; +"Downloading…" = "正在下载…"; +"Encoding %d%%" = "编码中 %d%%"; +"Encoding…" = "正在编码…"; +"Extra downloads wait in line and start as slots free up." = "多余的下载会排队,并在有空位时开始。"; +"No downloads yet" = "暂无下载"; +"Preview" = "预览"; +"Queued" = "排队中"; +"Redownload" = "重新下载"; +"Retry" = "重试"; +"Retrying…" = "正在重试…"; +"Waiting for connection…" = "正在等待连接…"; +"Waiting…" = "正在等待…"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES // +// Settings → Stories tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a RyukGram action button next to the eye button on stories with download/share/copy/expand/repost/view-mentions entries. Tap opens the menu by default; change the tap behavior below." = "在限时动态的观看按钮旁新增 RyukGram 动作按钮,包含下载/分享/复制/展开/转发/查看提及等选项。预设点击开启选单;可在下方更改点击行为。"; +"Adds a speaker button to the story overlay to unmute/mute audio. Also available in the 3-dot menu" = "在限时动态覆盖层新增喇叭按钮,可静音/取消静音音讯。此功能亦可在三点选单中使用"; +"Advance on story like" = "按赞后自动切换限时动态"; +"Advance on story reply" = "回复后自动切换限时动态"; +"Advance when marking as seen" = "标记为已看后自动切换限时动态"; +"Audio" = "音讯"; +"Block all: all stories blocked — listed users are exceptions.\nBlock selected: only listed users are blocked — everything else is normal.\nBoth lists are saved independently." = "全部封锁:封锁所有限时动态 — 列表用户为例外。\n选择封锁:仅封锁列表用户 — 其他正常。\n两个列表独立储存。"; +"Blocking mode" = "封锁模式"; +"Button = single-tap mark seen. Toggle = tap toggles story read receipts on/off (eye fills blue when on)" = "按钮 = 单击标记已查看。切换 = 点击切换故事已读回条开/关(开启时眼睛填满蓝色)"; +"Disable instants creation" = "停用即时创建"; +"Disable story seen receipt" = "停用故事已读回条"; +"Enable story user list" = "启用故事用户列表"; +"Hides the functionality to create/send instants" = "隐藏创建/发送即时讯息的功能"; +"Hides the notification for others when you view their story" = "隐藏你查看他人故事时的通知"; +"Inserts a button next to the seen/eye button on story overlays" = "在故事覆盖层的已查看/眼睛按钮旁插入一个按钮"; +"Keep stories visually seen locally" = "在本机保留限时动态为已观看"; +"Liking a story automatically advances to the next one after a short delay" = "喜欢故事后短暂延迟自动跳到下一则"; +"Manage list" = "管理列表"; +"Manage list (%lu)" = "管理列表 (%lu)"; +"Manual seen button mode" = "手动已查看按钮模式"; +"Mark seen on story like" = "喜欢故事时标记为已查看"; +"Mark seen on story reply" = "回复故事时标记为已查看"; +"Marks a story as seen the moment you tap the heart, even with seen blocking on" = "点击爱心时即标记故事为已查看,即使启用已查看封锁"; +"Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "发送回复或表情反应时标记故事为已查看,即使启用已查看封锁"; +"Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "在本机标记限时动态为已观看(灰圈),同时仍封锁伺服器端的已读回条"; +"Master toggle. When off, the list is ignored" = "主开关。关闭时忽略列表"; +"Playback" = "播放"; +"Search, sort, swipe to remove" = "搜寻、排序、滑动移除"; +"Seen receipts" = "已读回条"; +"Sending a reply or emoji reaction automatically advances to the next story" = "发送回复或表情反应后自动跳到下一则故事"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "在操作按钮菜单和限时动态三点菜单中新增「查看提及」选项"; +"Mentions overlay button" = "提及浮层按钮"; +"Mentions count badge" = "提及数量徽章"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "在限时动态浮层的操作/眼睛按钮旁新增一个按钮。仅当当前限时动态包含提及或分享的帖子/短视频时显示"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "在叠加按钮上以红色徽章显示被提及账户的数量"; +"Hide stories midcards" = "隐藏故事中插卡"; +"Removes the Trending and Music promo cards from the stories tray" = "从故事栏中移除热门和音乐推广卡"; +"Stickers" = "贴图"; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "在互动前预览投票/测验/滑块结果 — 仍可正常点击投票。“强制显示旧版”会将测验与揭晓贴纸加回快拍编辑器。"; +"Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "在 Reels 互动前预览投票/测验/滑杆结果 — 仍可照常点击投票。"; +"Force legacy stickers in tray" = "强制显示旧版贴纸"; +"Adds Quiz and Reveal stickers back to the picker" = "将测验与揭晓贴纸加回选择器"; +"Bypass Reveal sticker" = "略过揭晓贴纸"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "略过向作者发送消息才能揭晓的步骤,直接观看含揭晓贴纸的快拍"; +"Show quiz answer" = "显示测验答案"; +"Circle the correct option on quiz stickers, or the leading option on polls" = "圈选测验贴图中的正确选项,或投票中得票最多的选项"; +"Show poll vote counts" = "显示投票计数"; +"Show vote tallies on poll options and slider count/average before you vote" = "在投票前显示投票选项的票数以及滑杆的平均/计数"; +"Stop story auto-advance" = "停止故事自动跳转"; +"Stories" = "故事"; +"Stories won't auto-skip to the next one when the timer ends. Tap to advance manually" = "故事计时结束时不会自动跳到下一则。点击手动前进"; +"Story audio toggle" = "故事音讯切换"; +"Story user list" = "故事用户列表"; +"Tapping the eye button to mark a story as seen advances to the next story automatically" = "点击眼睛按钮标记故事为已查看后自动跳到下一则故事"; +"View story mentions" = "查看故事提及"; +"Which stories get seen-receipt blocking" = "哪些故事会封锁已读回条"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — READ RECEIPTS // +// Settings → Read receipts tab // +////////////////////////////////////////////////////////////////////////////// + +"Adds a button to DM threads to mark messages as seen" = "在私讯串中新增标记讯息为已查看的按钮"; +"Auto mark seen on interact" = "互动时自动标记为已查看"; +"Auto mark seen on typing" = "输入时自动标记为已查看"; +"Control when messages are marked as seen" = "控制讯息何时标记为已查看"; +"How the seen button behaves" = "已查看按钮的行为方式"; +"Manually mark messages as seen" = "手动标记讯息为已读"; +"Marks messages as seen when you send any message" = "当你发送任何讯息时标记讯息为已读"; +"Marks messages as seen when you start typing" = "当你开始输入时标记讯息为已读"; +"Read receipt mode" = "已读回条模式"; +"Read receipts" = "已读回条"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — KEEP DELETED // +// Settings → Keep deleted messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Activity" = "活动"; +"Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "在语音讯息的长按选单中新增「下载」选项,以储存为 M4A 音讯档"; +"Allows typing and sending DMs longer than Instagram's limit" = "允许输入和发送超过 Instagram 限制的私信"; +"Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "在私讯的加号选单中新增「传送档案」选项。支援的档案类型可能受 Instagram 限制"; +"Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "在私讯的加号选单中新增「音讯档案」选项,以语音讯息形式传送音讯档案"; +"Adds copy text, download GIF/audio to the note long-press menu" = "在备注的长按选单中新增复制文字、下载 GIF/音讯功能"; +"Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "全部封锁:所有聊天封锁 — 列出的聊天为例外。\n选择封锁:仅封锁列出的聊天 — 其他皆正常。\n两个列表独立储存。长按收件匣中的聊天以新增或移除。"; +"Block keep-deleted for excluded chats" = "对排除的聊天封锁保留删除讯息"; +"Block keep-deleted for unlisted chats" = "对未列出的聊天封锁保留删除讯息"; +"Bypass DM character limit" = "绕过私信字符限制"; +"Chat list" = "聊天列表"; +"Confirmation dialog before clearing preserved messages" = "清除保留讯息前的确认对话框"; +"Copies note text directly on long press without opening the menu" = "长按直接复制备注文字,不开启选单"; +"Copy text on hold" = "长按复制文字"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "新增画笔按钮和长按快捷方式以选择自定义背景和文字颜色"; +"Custom note themes" = "自订备注主题"; +"Disable vanish mode swipe" = "停用 Vanish 模式滑动手势"; +"Disable typing status" = "停用输入状态"; +"Disable view-once limitations" = "停用一次观看限制"; +"Download voice messages" = "下载语音讯息"; +"Enable chat list" = "启用聊天列表"; +"Enable note theming" = "启用备注主题功能"; +"Enables the notes theme picker" = "启用备注主题选择器"; +"Files" = "档案"; +"Full last active date" = "完整最后活跃日期"; +"Hide reels blend button" = "隐藏 Reels 混合按钮"; +"Hide send to group chat" = "隐藏发送到群聊"; +"Pin recipients on long-press" = "长按以置顶接收者"; +"Long-press in the share sheet to pin a chat/user to the top" = "在分享面板中长按以将聊天/用户置顶"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "长按接收者以置顶或取消置顶。置顶的接收者显示在顶部。"; +"Recipient pinned" = "接收者已置顶"; +"Recipient unpinned" = "已取消置顶"; +"Couldn't resolve recipient id" = "无法解析接收者 ID"; +"Hide video call button" = "隐藏视讯通话按钮"; +"Hide voice call button" = "隐藏语音通话按钮"; +"Hides the blend button in DMs" = "在私讯中隐藏混合按钮"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "分享给多位收件人时移除创建/发送到群聊的选项"; +"Hides typing indicator from others" = "隐藏他人输入指示器"; +"Indicate unsent messages" = "标示未送出讯息"; +"Keep deleted messages" = "保留已删除讯息"; +"Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "让一次观看讯息行为如一般视觉讯息(可循环/暂停)"; +"Note actions" = "备注操作"; +"Preserves messages that others unsend" = "保留他人收回的讯息"; +"Prevents accidental swipe-up activation of vanish mode" = "防止误触上滑启用 Vanish 模式"; +"Quick list button in chats" = "聊天中的快速列表按钮"; +"Removes the audio call button from DM thread header" = "从私讯页首移除语音通话按钮"; +"Removes the video call button from DM thread header" = "从私讯页首移除视讯通话按钮"; +"Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "重播视觉讯息且不会过期。可在眼睛按钮选单切换,或当眼睛按钮被禁用时作为独立按钮"; +"Search, sort, swipe to remove or toggle keep-deleted" = "搜寻、排序、滑动移除或切换保留已删除"; +"Send audio as file" = "以档案形式传送音讯"; +"Send files (experimental)" = "传送档案(实验性功能)"; +"Show full date instead of \"Active 2h ago\"" = "显示完整日期,取代 \"Active 2h ago\""; +"Shows a button in DM threads to add/remove chats from the list. Long-press for more options" = "在私讯页显示按钮以新增/移除聊天至列表。长按可查看更多选项"; +"Shows a notification pill when a message is unsent" = "讯息撤回时显示通知标签"; +"Shows an \"Unsent\" label on preserved messages" = "在保留讯息上显示 \"Unsent\" 标签"; +"Unlimited replay of visual messages" = "视觉讯息无限重播"; +"Unsent message notification" = "讯息撤回通知"; +"Voice messages" = "语音讯息"; +"Warn before clearing on refresh" = "刷新时清除前先警告"; +"Which chats get read-receipt blocking" = "哪些聊天会被阻挡已读回条"; +"⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ 私讯分页下拉刷新会清除所有保留讯息。启用以下警告可显示确认对话框。"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu 已删除"; +"%lu messages from %lu users" = "来自 %lu 位用户的 %lu 条消息"; +"%lu selected" = "已选 %lu 项"; +"Absolute date + time" = "绝对日期+时间"; +"Adjust the filters or clear the search to see more." = "调整筛选条件或清除搜索以查看更多。"; +"All time" = "全部时间"; +"Browse, filter and search recorded messages" = "浏览、筛选和搜索已记录的消息"; +"Captures unsent messages with their text or media" = "捕获撤回的消息及其文本或媒体"; +"Clear deleted-message log?" = "清除已删除消息日志?"; +"Clear from this user" = "清除此用户记录"; +"Clear log" = "清除日志"; +"Clear log for this account" = "清除此账号的日志"; +"Clear log for this user?" = "清除此用户的日志?"; +"Clear media files" = "清除媒体文件"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "清除媒体会保留记录(文本、发送者、时间戳)。清除日志会删除此账号的所有内容。"; +"Close" = "关闭"; +"Content unavailable" = "内容不可用"; +"Copied" = "已复制"; +"Copy URL" = "复制链接"; +"Date range" = "日期范围"; +"Deleted messages" = "已删除的消息"; +"Deleted messages log" = "已删除消息日志"; +"Deleted: %@\n" = "删除时间:%@\n"; +"Edit %lu" = "编辑 %lu"; +"Edit history" = "编辑历史"; +"Edited" = "已编辑"; +"Empty" = "空"; +"Enable deleted messages log" = "启用已删除消息日志"; +"Enable Settings → Messages → Deleted messages log to start recording." = "启用 设置 → 消息 → 已删除消息日志 以开始记录。"; +"GIF" = "GIF"; +"Hashtag" = "话题标签"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "类型:%@\n"; +"Last 30 days" = "最近 30 天"; +"Last 7 days" = "最近 7 天"; +"Link" = "链接"; +"Live location" = "实时位置"; +"Location" = "位置"; +"Logging is off" = "记录已关闭"; +"Media on disk" = "磁盘上的媒体"; +"Most messages" = "消息最多"; +"Most recent" = "最新"; +"No deleted messages yet" = "还没有已删除的消息"; +"No matches" = "没有匹配项"; +"Nothing to save" = "无可储存内容"; +"Oldest first" = "最早优先"; +"Open log" = "打开日志"; +"Open profile" = "打开个人主页"; +"Original" = "原始"; +"Play" = "播放"; +"Post" = "帖子"; +"Records every message someone unsends, grouped by sender" = "记录每条被撤回的消息,按发送者分组"; +"Reel" = "Reel"; +"Relative (1m / 3h / 3d ago)" = "相对 (1分钟 / 3小时 / 3天前)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "移除当前账号所有保留的已删除消息及其捕获的媒体。此操作无法撤销。"; +"Removes every preserved deleted message and its captured media for this account." = "移除此账号所有保留的已删除消息及其捕获的媒体。"; +"Removes every preserved deleted message from this sender." = "移除此发送者所有保留的已删除消息。"; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "移除所有已保存的照片、视频和语音片段。记录保留其文本和发送者信息。"; +"Search messages" = "搜索消息"; +"Search senders or messages" = "搜索发送者或消息"; +"Select" = "选择"; +"Show edit history" = "显示编辑历史"; +"Source URL recorded but media not stored.\n" = "已记录源 URL,但未存储媒体。\n"; +"Sticker" = "贴纸"; +"Tap to open in Instagram" = "点击在 Instagram 中打开"; +"Tap to open in Maps" = "点击在地图中打开"; +"Tap to play" = "点击播放"; +"Tap to play · %@" = "点击播放 · %@"; +"Text" = "文本"; +"This account" = "此账号"; +"Unknown" = "未知"; +"Video" = "视频"; +"View" = "查看"; +"Voice" = "语音"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "启用后,已删除的消息及其媒体会保存在本设备。关闭并清除日志以擦除历史记录。"; +"When someone unsends a message, it will appear here grouped by sender." = "当有人撤回消息时,将按发送者分组显示在此处。"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES // +// Settings → Messages tab // +////////////////////////////////////////////////////////////////////////////// + +"Custom chat background" = "自定义聊天背景"; +"Incoming calls stay silent — no ring, no screen, no notification" = "来电保持静默 — 无铃声、无界面、无通知"; +"Messages" = "讯息"; +"Silence incoming calls" = "静音来电"; +"Threads" = "主题串"; +"Use your own images as chat backgrounds" = "用你自己的图片作为聊天背景"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "为即时相机加入相册按钮,让你从相册发送照片"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "在 Instants 查看器顶栏添加 RyukGram 操作按钮,包含展开、保存、分享和批量保存条目"; +"All loaded instants" = "已加载的所有即时"; +"Bypasses the Instants screenshot block" = "绕过 Instants 截屏拦截"; +"Could not locate the instant on screen" = "未能在屏幕上定位即时"; +"Current instant" = "当前即时"; +"In-app Gallery" = "应用内图库"; +"Instant" = "即时"; +"Instants" = "即时"; +"Instants action button" = "Instants 操作按钮"; +"No instants currently loaded" = "当前没有已加载的即时"; +"No media available to save" = "没有可保存的媒体"; +"Photos library" = "照片图库"; +"Pick from" = "选择来源"; +"Queued %lu instants" = "已排队 %lu 条即时"; +"Save all to Gallery" = "全部保存到相册"; +"Save all to Photos" = "全部保存到「照片」"; +"Save to Gallery" = "保存到相册"; +"Send from gallery" = "从相册发送"; +"Tweaks for the QuickSnap / Instants camera surface." = "QuickSnap / 即时相机界面调整。"; +"Use" = "使用"; + +////////////////////////////////////////////////////////////////////////////// +// NAVIGATION // +// Settings → Navigation tab // +////////////////////////////////////////////////////////////////////////////// + +"Also hide the bottom tab bar — only the inbox is visible" = "同时隐藏底部分页列 — 仅显示收件匣"; +"Hide create tab" = "隐藏建立分页"; +"Hide explore tab" = "隐藏探索分页"; +"Hide feed tab" = "隐藏动态分页"; +"Hide messages tab" = "隐藏讯息分页"; +"Hide reels tab" = "隐藏短片分页"; +"Hide tab bar" = "隐藏分页列"; +"Hides every tab except DM inbox + profile and forces launch into the inbox. Settings shortcut moves to long-press on the inbox tab." = "隐藏除私讯收件匣与个人档案外的所有分页,并强制启动至收件匣。设定捷径改为长按收件匣分页。"; +"Hides the create tab on the bottom navigation bar" = "隐藏底部导览列的建立分页"; +"Hides the direct messages tab on the bottom navigation bar" = "隐藏底部导览列的私讯分页"; +"Hides the explore/search tab on the bottom navigation bar" = "隐藏底部导览列的探索/搜寻分页"; +"Hides the feed/home tab on the bottom navigation bar" = "隐藏底部导览列的动态/首页分页"; +"Hides the reels tab on the bottom navigation bar" = "隐藏底部导览列的短片分页"; +"Hiding tabs" = "隐藏分页"; +"Icon order" = "图示排序"; +"Launch tab" = "启动分页"; +"Lets you swipe to switch between navigation bar tabs" = "允许滑动切换导览列分页"; +"Messages only" = "仅限讯息"; +"Messages-only mode" = "仅限讯息模式"; +"Navigation" = "导览"; +"Swipe between tabs" = "在分页间滑动"; +"Tab the app opens to. Ignored when Messages-only is on" = "应用程式开启时的分页。启用仅限讯息时忽略此设定"; +"The order of the icons on the bottom navigation bar" = "底部导览列图示的顺序"; +"Turn IG into a DM-only client" = "将 IG 变成仅限私讯的客户端"; + +////////////////////////////////////////////////////////////////////////////// +// CONFIRM ACTIONS // +// Settings → Confirm actions tab // +////////////////////////////////////////////////////////////////////////////// + +"All" = "全部"; +"Calls" = "通话"; +"Comments & posts" = "评论和帖子"; +"Confirm actions" = "确认操作"; +"Confirm changing theme" = "确认更换主题"; +"Confirm follow" = "确认追踪"; +"Confirm follow requests" = "确认追踪请求"; +"Confirm Instants capture" = "确认 Instants 拍照"; +"Confirm Instants emoji reaction" = "确认 Instants 表情反应"; +"Confirm like: Posts" = "确认按赞:贴文"; +"Confirm like: Reels" = "确认按赞:Reels"; +"Confirm note emoji reaction" = "确认笔记表情反应"; +"Confirm note like" = "确认笔记按赞"; +"Confirm posting comment" = "确认发布留言"; +"Confirm repost" = "确认转贴"; +"Confirm send to group chat" = "确认发送到群聊"; +"Confirm sticker interaction (highlights)" = "确认贴图互动(精选)"; +"Confirm sticker interaction (stories)" = "确认贴图互动(限时动态)"; +"Confirm story emoji reaction" = "确认限时动态表情反应"; +"Confirm story like" = "确认限时动态按赞"; +"Confirm switching Instant" = "确认切换 Instant"; +"Confirm unfollow" = "确认取消追踪"; +"Confirm vanish mode" = "确认消失模式"; +"Confirm video call" = "确认视讯通话"; +"Confirm voice call" = "确认语音通话"; +"Confirm voice messages" = "确认语音讯息"; +"Follows" = "关注"; +"Likes" = "点赞"; +"Messaging" = "消息"; +"Reaction stickers only" = "仅限反应贴纸"; +"Reactions" = "回应"; +"Send to group chat?" = "发送到群聊?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "从分享菜单创建/发送到群聊前显示提示"; +"Shows an alert before sending an emoji reaction on a note" = "发送笔记表情反应前显示警告"; +"Shows an alert before sending an emoji reaction on a story" = "发送限时动态表情反应前显示警告"; +"Shows an alert before sending an emoji reaction on an Instant" = "在向 Instant 发送表情反应前显示提示"; +"Shows an alert before taking a photo with the Instants camera" = "在使用 Instants 相机拍照前显示提示"; +"Shows an alert before tapping to switch to the next/previous Instant" = "在点击切换到下一个/上一个 Instant 前显示提示"; +"Shows an alert to confirm before sending a voice message" = "发送语音讯息前显示确认提示"; +"Shows an alert to confirm before toggling vanish mode" = "切换消失模式前显示确认提示"; +"Shows an alert when you accept/decline a follow request" = "接受/拒绝追踪请求时显示确认提示"; +"Shows an alert when you change a chat theme to confirm" = "更换聊天主题时显示确认提示"; +"Shows an alert when you click the follow button to confirm the follow" = "点击追踪按钮时显示确认提示"; +"Shows an alert when you click the like button on notes to confirm the like" = "点击笔记按赞按钮时显示确认警告"; +"Shows an alert when you click the like button on posts to confirm the like" = "点击贴文按赞按钮时显示确认警告"; +"Shows an alert when you click the like button on reels to confirm the like" = "点击 Reels 的按赞按钮时显示确认提示"; +"Shows an alert when you click the like button on stories to confirm the like" = "点击限时动态按赞按钮时显示确认警告"; +"Shows an alert when you click the post comment button to confirm" = "点击发布留言按钮时显示确认提示"; +"Shows an alert when you click the repost button to confirm before reposting" = "点击转贴按钮前显示确认提示"; +"Shows an alert when you click the unfollow button to confirm" = "点击取消追踪按钮时显示确认提示"; +"Shows an alert when you click the video call button to confirm before calling" = "点击视讯通话按钮时显示确认警告"; +"Shows an alert when you click the voice call button to confirm before calling" = "点击语音通话按钮时显示确认警告"; +"Shows an alert when you tap a sticker inside a highlight" = "点击精选中的贴图时显示确认提示"; +"Shows an alert when you tap a sticker on someone's story" = "点击他人限时动态贴图时显示确认提示"; +"Stories & highlights" = "快拍和精选"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld 小时"; +"%ld locked" = "%ld 个已锁定"; +"%ld min" = "%ld 分钟"; +"%ldh idle" = "闲置 %ld 小时"; +"%ldm idle" = "闲置 %ld 分钟"; +"%lds" = "%ld 秒"; +"%lds idle" = "闲置 %ld 秒"; +"%lu hidden" = "%lu 个已隐藏"; +"4 digits" = "4 位数"; +"6 digits" = "6 位数"; +"Add hidden chat" = "添加隐藏的聊天"; +"Add locked chat" = "添加已锁定的聊天"; +"Allow Instants screenshots" = "允许 Instants 截图"; +"Always ask when opening again" = "再次打开时总是询问"; +"Ask again after Instagram returns" = "Instagram 返回后再次询问"; +"Auto-relock after idle" = "闲置后自动重新锁定"; +"Balanced default" = "均衡默认"; +"Best for sensitive sections" = "最适合敏感部分"; +"Biometric" = "生物识别"; +"Change passcode" = "更改密码"; +"Chat hidden" = "已隐藏聊天"; +"Chat locked" = "已锁定聊天"; +"Chat unlocked" = "已解锁聊天"; +"Choose a code you'll remember." = "请选择你能记住的密码。"; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "选择此部分在闲置时保持解锁的时长。“永不”将保持解锁直到 Instagram 关闭或进入后台。"; +"Confirm current passcode" = "确认当前密码"; +"Confirm passcode" = "确认密码"; +"Could not save passcode" = "无法保存密码"; +"Create passcode" = "创建密码"; +"Derivation failed" = "派生失败"; +"DM inbox" = "私信收件箱"; +"Don't share unlock" = "不共享解锁"; +"Each target has its own enable, timeout, and re-lock configuration." = "每个目标都有自己的启用、超时和重新锁定配置。"; +"Enable lock" = "启用锁定"; +"Enter passcode" = "输入密码"; +"Enter value" = "输入值"; +"Enter your current passcode to change it" = "输入当前密码以更改"; +"Enter your current passcode to reset it" = "输入当前密码以重置"; +"Enter your passcode to continue" = "输入密码以继续"; +"every use" = "每次使用"; +"Every use" = "每次使用"; +"Hidden chats" = "已隐藏的聊天"; +"Hide chat" = "隐藏聊天"; +"Hide message preview" = "隐藏消息预览"; +"Hide this chat?" = "隐藏此聊天?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "从截图/录屏中隐藏 RyukGram 界面,并绕过 Instagram 按功能触发的截图警告。"; +"Idle timeout" = "闲置超时"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "单独锁定此目标"; +"Less frequent prompts" = "更少的提示"; +"Lock" = "锁定"; +"Lock chat" = "锁定聊天"; +"Lock every time" = "每次都锁定"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "“每次锁定”会覆盖闲置超时。“不共享解锁”会让此目标保持独立。"; +"Lock targets" = "锁定目标"; +"Lock the tweak" = "锁定 tweak"; +"Lock this chat" = "锁定此聊天"; +"Lock this chat?" = "锁定此聊天?"; +"Lock with passcode" = "使用密码锁定"; +"Locked chats" = "已锁定的聊天"; +"Long-press a chat to lock it individually" = "长按某个聊天以单独锁定它"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "长按一个私信会话 → 隐藏聊天即可添加到此处。已隐藏的聊天会从收件箱中过滤,直到你从此列表中移除。"; +"Long-press a DM to add" = "长按私信进行添加"; +"Longest idle window" = "最长闲置时间"; +"Manage locked chats" = "管理已锁定的聊天"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "主开关。关闭可在不丢失各目标配置的情况下停用所有锁定目标。"; +"Never" = "永不"; +"No passcode set" = "未设置密码"; +"Nothing here yet." = "这里还没有内容。"; +"Off" = "关闭"; +"On" = "开启"; +"On — %@" = "开启 — %@"; +"On — %@ + %ld more" = "开启 — %@ 等 %ld 项"; +"On — no targets enabled" = "开启 — 未启用任何目标"; +"Passcode" = "密码"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "密码 + 生物识别。锁定 tweak 设置弹窗、相册、已删除消息日志、单个聊天以及整个应用。"; +"Passcode changed" = "已更改密码"; +"Passcode reset" = "已重置密码"; +"Passcode set" = "已设置密码"; +"Passcode too short" = "密码太短"; +"Passcodes did not match — try again" = "密码不一致 — 请重试"; +"Per-chat locks" = "每个聊天的锁定"; +"Prompt before Instagram opens" = "Instagram 打开前要求验证"; +"Prompt before Profile Analyzer opens" = "个人资料分析器打开前要求验证"; +"Prompt before the deleted-messages log opens" = "已删除消息日志打开前要求验证"; +"Prompt before the gallery opens" = "相册打开前要求验证"; +"Prompt before tweak settings open" = "tweak 设置打开前要求验证"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "每次进入私信收件箱时都要求验证,包括直接启动到消息"; +"Re-enter the same passcode" = "再次输入相同的密码"; +"Re-lock on background" = "在后台时重新锁定"; +"re-lock on bg" = "后台重新锁定"; +"Recently hidden" = "最近隐藏"; +"Recently locked" = "最近锁定"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "在截图、录屏和镜像中隐藏 RyukGram 按钮"; +"Remove screenshot alert" = "移除截图警告"; +"Replace inbox preview with • • •" = "用 • • • 替换收件箱预览"; +"Require passcode for this section" = "此部分需要密码"; +"Requires your current passcode" = "需要你的当前密码"; +"Reset passcode" = "重置密码"; +"Reset passcode?" = "重置密码?"; +"Screenshots & capture" = "截图与录制"; +"Security & Privacy" = "安全与隐私"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "设置密码以锁定「设置」、相册、已删除消息日志、单个聊天、私信收件箱、个人资料分析器或 Instagram 本身。"; +"Set passcode" = "设置密码"; +"Short idle window" = "较短闲置时间"; +"Stay unlocked until app close or background" = "保持解锁直到应用关闭或进入后台"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "在快拍、私信和阅后即焚媒体中屏蔽 IG 的 \"X 截屏了\" 通知"; +"Tap Unlock" = "点击解锁"; +"Tap Unlock or enter your passcode" = "点击解锁或输入密码"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "此操作将清除密码、停用所有锁定目标并解锁所有聊天。相册和已删除消息的数据不会受到影响。"; +"Thread %@" = "会话 %@"; +"Tweak settings" = "Tweak 设定"; +"Unlock" = "解锁"; +"Unlock %@" = "解锁 %@"; +"Unlock chat" = "解锁聊天"; +"Unlock Instagram" = "解锁 Instagram"; +"Unlock this chat" = "解锁此聊天"; +"Use %@" = "使用 %@"; +"Username (looks up the DM thread) or raw thread ID" = "用户名(查找私信会话)或原始会话 ID"; +"Username or thread ID" = "用户名或会话 ID"; +"Wrong passcode" = "密码错误"; +"Wrong passcode • %ld attempts" = "密码错误 • 已尝试 %ld 次"; + +////////////////////////////////////////////////////////////////////////////// +// BACKUP & RESTORE // +// Settings → Backup & Restore tab // +////////////////////////////////////////////////////////////////////////////// + +"%lu account(s)" = "%lu 个账号"; +"%lu account(s) · %lu image(s) · %@" = "%lu 个账号 · %lu 张图片 · %@"; +"%lu file(s) · %@" = "%lu 个文件 · %@"; +"%lu preferences" = "%lu 项设置"; +"(none)" = "(无)"; +"Apply backup?" = "应用备份?"; +"Applying backup…" = "正在应用备份…"; +"archive error" = "归档错误"; +"Archived snapshots" = "已归档的快照"; +"Backup & Restore" = "备份与还原"; +"Backup exported" = "备份已导出"; +"Backup failed" = "备份失败"; +"Backup has no importable sections." = "备份中没有可导入的部分。"; +"Chat & story filters" = "聊天和快拍筛选"; +"Chat backgrounds" = "聊天背景"; +"Clear selected data" = "清除选中的数据"; +"Corrupt entry path." = "条目路径损坏。"; +"Could not decompress archive." = "无法解压归档。"; +"Could not open archive." = "无法打开归档。"; +"Could not open staging file." = "无法打开暂存文件。"; +"Could not read the backup archive." = "无法读取备份归档。"; +"Could not write archive." = "无法写入归档。"; +"Could not write backup file." = "无法写入备份文件。"; +"Could not write extracted file." = "无法写入解压的文件。"; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "已勾选项目的现有数据将被替换。可能需要重启才能让所有更改生效。"; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "导出或导入 RyukGram 数据 — 设置、按账号筛选、隐藏和锁定的聊天、主页分析器、图库、聊天背景和已删除的消息。可在每个页面任意组合选择。设置仍为纯 JSON 文件;包含媒体的捆绑包将导出为压缩的 .ryukbak。"; +"Hidden & locked chats" = "隐藏和锁定的聊天"; +"Import" = "导入"; +"Inspect the full manifest" = "查看完整清单"; +"Load a .json or .ryukbak backup" = "加载 .json 或 .ryukbak 备份"; +"Not a RyukGram backup archive." = "不是 RyukGram 备份归档。"; +"PK %@" = "PK %@"; +"Preparing backup…" = "正在准备备份…"; +"Reading backup…" = "正在读取备份…"; +"Save settings or a full backup" = "保存设置或完整备份"; +"Tick what to apply. Rows not in this backup are hidden." = "勾选要应用的内容。此备份中不存在的行已隐藏。"; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "勾选要包含的内容。点按某行可查看。添加图库、聊天背景或已删除的消息会生成压缩的 .ryukbak 捆绑包。"; +"Truncated entry data." = "条目数据被截断。"; +"Truncated entry length." = "条目长度被截断。"; +"Truncated entry path." = "条目路径被截断。"; +"Unsafe entry path." = "条目路径不安全。"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED // +// Settings → Advanced tab // +////////////////////////////////////////////////////////////////////////////// + +"Advanced" = "进阶"; +"Auto-clear cache" = "自动清除快取"; +"Automatically opens settings when the app launches" = "启动应用程式时自动开启设定"; +"Cache" = "快取"; +"Cache cleared" = "快取已清除"; +"Calculating cache size…" = "计算快取大小中…"; +"Clear" = "清除"; +"Clear cache" = "清除快取"; +"Clear cache (%@)" = "清除快取 (%@)"; +"Clearing cache…" = "清除快取中…"; +"Clearing still scans on demand." = "关闭时仍会按需扫描。"; +"Daily" = "每日"; +"Disable safe mode" = "停用安全模式"; +"Enable tweak settings quick-access" = "启用调整设定快速存取"; +"Fix duplicate notifications" = "修复重复通知"; +"Free %@ of Instagram cache." = "释放 %@ 的 Instagram 快取。"; +"Freed %@" = "已释放 %@"; +"Hold on the home tab to open RyukGram settings" = "长按主页标签以开启 RyukGram 设定"; +"Monthly" = "每月"; +"Nothing to clear" = "无可清除内容"; +"Off skips the size scan when Advanced opens." = "关闭时,开启进阶页不会扫描大小。"; +"Pause playback when opening settings" = "开启设定时暂停播放"; +"Always show what's new" = "始终显示新功能"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "在每个新功能上保留蓝点,而不是查看后清除"; +"Preserve messages database" = "保留消息数据库"; +"Pauses any playing video/audio when settings opens" = "设定开启时暂停任何正在播放的影片/音讯"; +"Prevents Instagram from resetting settings after crashes (at your own risk)" = "防止 Instagram 崩溃后重置设定(风险自负)"; +"Prevents two banners for the same message when IG is in the foreground" = "当 IG 在前台时,防止同一条消息显示两个横幅"; +"Remove Instagram's cached images, videos, and temporary files." = "移除 Instagram 的快取图片、影片及暂存档案。"; +"Reset onboarding state" = "重设引导状态"; +"Run a silent cache clear on launch when the interval has elapsed." = "启动时在达到间隔后静默清除快取。"; +"Show cache size" = "显示快取大小"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "清除时略过消息数据库 — 保留私信、草稿与已保存的消息。"; +"Show tweak settings on app launch" = "启动应用程式时显示调整设定"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "当通知扩展同时投递通知时,抑制 IG 在应用内排队的第二条通知。"; +"Weekly" = "每周"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED EXPERIMENTAL // +// Settings → Advanced → Advanced experimental features // +////////////////////////////////////////////////////////////////////////////// + +"Actions" = "操作"; +"Advanced experimental features" = "进阶实验功能"; +"All experimental toggles will be turned off. Instagram will restart." = "所有实验开关都会关闭,Instagram 将重新启动。"; +"Direct Notes — Audio reply" = "Direct 记事 — 语音回复"; +"Direct Notes — Avatar reply" = "Direct 记事 — Avatar 回复"; +"Direct Notes — Friend Map" = "Direct 记事 — 朋友地图"; +"Direct Notes — GIFs & stickers reply" = "Direct 记事 — GIF 与贴图回复"; +"Direct Notes — Photo reply" = "Direct 记事 — 照片回复"; +"Disabled after repeated crashes." = "因多次闪退已停用。"; +"Enables GIF/sticker replies" = "启用 GIF/贴图回复"; +"Enables photo replies" = "启用照片回复"; +"Enables the audio-note reply type" = "启用语音记事回复"; +"Enables the avatar reply type" = "启用 Avatar 回复"; +"Experimental flags reset" = "实验旗标已重置"; +"Flip what you want on, then tap Apply to restart. Some flags may not work on every account or IG version. Flags auto-reset if IG crashes on launch 3 times." = "选择要启用的项目后点「套用」以重新启动。部分功能可能无法在所有帐号或 IG 版本上运作。若 IG 连续 3 次启动闪退,旗标会自动重置。"; +"Forces Prism-gated experiments on" = "强制启用 Prism 相关实验"; +"Forces the Homecoming home surface / nav on" = "强制启用 Homecoming 首页/导览"; +"Forces the QuickSnap / Instants surface on in feed, inbox, stories, and notes tray" = "强制在动态、收件匣、限时动态与记事列显示 QuickSnap/Instants"; +"Got it" = "了解"; +"Heads up" = "注意"; +"Hidden Instagram experiments" = "隐藏的 Instagram 实验"; +"Hidden Instagram experiments (in Advanced)" = "隐藏的 Instagram 实验(位于进阶设定)"; +"Homecoming" = "Homecoming"; +"Notes & QuickSnap" = "记事与 QuickSnap"; +"Prism design system" = "Prism 设计系统"; +"QuickSnap (Instants)" = "QuickSnap(Instants)"; +"Reset all experimental flags" = "重置所有实验旗标"; +"Reset experimental flags?" = "要重置实验旗标吗?"; +"Restart Instagram to apply changes" = "重新启动 Instagram 以套用变更"; +"Shows the friend map entry in Direct Notes" = "在 Direct 记事显示朋友地图入口"; +"Surfaces" = "介面"; +"These toggles flip hidden Instagram experiments on. Some features may not work on every account or IG version. If IG keeps crashing on launch, the flags auto-reset after 3 failed starts." = "这些开关会启用 Instagram 的隐藏实验。部分功能可能无法在所有帐号或 IG 版本上运作。若 IG 连续 3 次启动闪退,旗标会自动重置。"; +"Toggle hidden Instagram experiments. Some may not work on every account or IG version." = "启用 Instagram 的隐藏实验。部分可能无法在所有帐号或 IG 版本上运作。"; +"Turn every experimental toggle off" = "关闭所有实验开关"; + +////////////////////////////////////////////////////////////////////////////// +// DEBUG // +// Settings → Debug tab // +////////////////////////////////////////////////////////////////////////////// + +"Button Cell" = "按钮栏位"; +"Change the value on the right" = "更改右侧数值"; +"Could not delete: %@" = "无法删除:%@"; +"Debug" = "除错"; +"Delete an imported override and fall back to the shipped strings" = "删除汇入的覆写档并回退到内建字串"; +"Deleted %@ override. Restart to apply." = "已删除 %@ 覆写档。重新启动以套用。"; +"Enable FLEX gesture" = "启用 FLEX 手势"; +"Export strings" = "汇出字串"; +"Hold 5 fingers on the screen to open FLEX" = "用五指按住萤幕以开启 FLEX"; +"I have %@%@" = "我有 %@%@"; +"Import a .strings file for a language" = "为语言汇入 .strings 档"; +"Import a .strings file to update a translation. Pick a language, select the file, restart." = "汇入 .strings 档以更新翻译。选择语言、挑选档案,然后重新启动。"; +"Link Cell" = "连结栏位"; +"Localization" = "本地化"; +"Menu Cell" = "选单栏位"; +"Navigation Cell" = "导览单元"; +"No imported localization files to reset." = "无可重设的汇入本地化档案。"; +"No overrides" = "无覆写"; +"Open FLEX on app focus" = "应用程式聚焦时开启 FLEX"; +"Open FLEX on app launch" = "应用程式启动时开启 FLEX"; +"Opens FLEX when the app is focused" = "应用程式聚焦时开启 FLEX"; +"Opens FLEX when the app launches" = "应用程式启动时开启 FLEX"; +"Pick a language to delete the imported file" = "选择要删除汇入档的语言"; +"Pick a language to export" = "选择要汇出的语言"; +"Reset localization" = "重设本地化"; +"Pick a language and share its .strings file" = "选择要分享其 .strings 档的语言"; +"Static Cell" = "静态栏位"; +"Stepper cell" = "步进器栏位"; +"Switch Cell" = "切换栏位"; +"Switch Cell (Restart)" = "切换栏位(重新启动)"; +"Tap the switch" = "点击切换开关"; +"These features rely on hidden Instagram flags and may not work on all accounts or versions." = "这些功能依赖隐藏的 Instagram 标志,可能不适用于所有帐号或版本。"; +"Update localization file" = "更新本地化档案"; +"Using icon" = "使用图示"; +"Using image" = "使用图片"; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOADS & MEDIA ACTIONS // +// Action button menus, download/share/copy toasts, quality picker pills. // +////////////////////////////////////////////////////////////////////////////// + +"%@ settings" = "%@ 设定"; +"%lu items" = "%lu 个项目"; +"Cancelled" = "已取消"; +"Carousel" = "轮播"; +"Carousel · %lu items" = "轮播 · %lu 个项目"; +"Copied %lu URLs" = "已复制 %lu 个网址"; +"Copied caption" = "已复制说明文字"; +"Copied download URL" = "已复制下载网址"; +"Copied quality info" = "已复制画质信息"; +"Copied video URL" = "已复制视频链接"; +"Copy all URLs" = "复制所有网址"; +"Copy caption" = "复制说明文字"; +"Copy download URL" = "复制下载网址"; +"Could not extract any URLs" = "无法撷取任何网址"; +"Could not extract audio URL" = "无法撷取音频网址"; +"Could not extract media URL" = "无法撷取媒体网址"; +"Could not extract photo URL" = "无法撷取照片网址"; +"Could not extract video URL" = "无法撷取影片网址"; +"Done" = "完成"; +"Download all stories and share?" = "下载所有限时动态并分享?"; +"Download all to Photos" = "全部下载到「照片」"; +"Download and share all" = "全部下载并分享"; +"Download failed" = "下载失败"; +"Downloaded %lu items" = "已下载 %lu 项目"; +"Downloading audio…" = "正在下载音频…"; +"Failed to save" = "储存失败"; +"File" = "文件"; +"HD" = "HD"; +"HD download complete" = "高清下载完成"; +"HD video" = "HD 视频"; +"Mute audio" = "静音音讯"; +"No caption on this post" = "此贴文无说明文字"; +"No carousel children" = "无轮播子项目"; +"No cover image" = "无封面图片"; +"No media" = "无媒体"; +"No media to expand" = "无媒体可展开"; +"No media to show" = "无媒体可显示"; +"No media URL" = "无媒体网址"; +"No URLs" = "无网址"; +"No URLs found" = "找不到网址"; +"No video URL" = "无影片网址"; +"Not a carousel" = "非轮播贴文"; +"Nothing to share" = "无可分享内容"; +"Opening creator…" = "正在开启创作者..."; +"Photo library access denied" = "照片库存取被拒"; +"Photos access denied" = "照片存取被拒"; +"Preparing repost…" = "准备重新发布..."; +"Raw image" = "原始图片"; +"Repost" = "重新发布"; +"Repost unavailable" = "无法重新发布"; +"Save failed" = "储存失败"; +"Saved %lu items" = "已储存 %lu 项目"; +"Saved to Photos" = "已储存至照片"; +"Saved to RyukGram" = "已储存至 RyukGram"; +"Saving to Photos" = "正在保存到照片"; +"Saving…" = "正在储存..."; +"Unmute audio" = "取消静音"; +"Video · %@" = "视频 · %@"; +"View cover" = "查看封面"; +"View mentions" = "查看提及"; + +////////////////////////////////////////////////////////////////////////////// +// STORIES & MESSAGES (FEATURES) // +// Buttons, menu entries, toasts and alerts shown while watching stories or // +// inside DM threads. // +////////////////////////////////////////////////////////////////////////////// + +" %lu votes · avg %.0f%% " = " %lu 票 · 平均 %.0f%% "; +"%@ can't be converted" = "无法转换 %@"; +"%@ unsent a message" = "%@ 撤回了一条消息"; +"%@ unsent a message from %@" = "%1$@ 撤回了 %2$@ 的消息"; +"A message was unsent" = "讯息已撤回"; +"Add" = "新增"; +"Add to block list" = "加入封锁名单"; +"Added to block list" = "已加入封锁名单"; +"Added to exclude list" = "已加入排除清单"; +"Audio not loaded yet. Play the message first and try again." = "音讯尚未载入。请先播放讯息后再试。"; +"Audio sent" = "音讯已传送"; +"Audio URL not available" = "音讯网址无法取得"; +"Audio/Video from Files" = "来自档案的音讯/影片"; +"Blocked" = "已封锁"; +"Cancel" = "取消"; +"Clear preserved messages?" = "要清除保留的讯息吗?"; +"Converting…" = "转换中..."; +"Copy link" = "复制链接"; +"Copy text" = "复制文字"; +"Could not copy selected video" = "无法复制所选视频"; +"Could not find media" = "找不到媒体"; +"Could not find story media" = "找不到故事媒体"; +"Could not get audio data. Try again after refreshing the chat." = "无法取得音讯资料。请刷新聊天后再试。"; +"Disable read receipts" = "停用已读回条"; +"Disappearing media" = "消失讯息媒体"; +"Download audio" = "下载音讯"; +"Enable read receipts" = "启用已读回条"; +"Error: %@" = "错误:%@"; +"Exclude chat" = "排除聊天"; +"Exclude from seen" = "排除已读"; +"Exclude story seen" = "排除故事已读"; +"Excluded" = "已排除"; +"Extracting audio…" = "撷取音讯中..."; +"FFmpeg conversion failed" = "FFmpeg 转换失败"; +"File sending not supported" = "不支援档案传送"; +"Follow" = "追踪"; +"Following" = "已追踪"; +"Format not supported without FFmpegKit" = "没有 FFmpegKit 不支持此格式"; +"Inserts a button on disappearing media overlays" = "在消失讯息媒体覆盖层上插入按钮"; +"Inserts a speaker button to mute/unmute disappearing media" = "插入喇叭按钮以静音/取消静音消失讯息媒体"; +"Inserts an eye button to mark the current disappearing media as viewed" = "插入眼睛按钮,将当前消失讯息媒体标记为已检视"; +"Link copied" = "已复制链接"; +"Mark as viewed" = "标记为已检视"; +"Mark messages as seen" = "标记讯息为已读"; +"Mark seen" = "标记已读"; +"Marked as viewed" = "标记为已阅览"; +"Marked messages as seen" = "标记讯息为已查看"; +"Mentions" = "提及"; +"Message from %@ was unsent" = "%@ 的消息已撤回"; +"Message sender not found" = "找不到讯息发送者"; +"Messages settings" = "讯息设定"; +"Mute story audio" = "静音故事音讯"; +"no audio track could be read" = "无法读取音频轨道"; +"No audio URL found. Try again after refreshing the chat." = "找不到音讯 URL。请刷新聊天后再试。"; +"No mentions in this story" = "此故事中无提及"; +"No thread key" = "找不到讨论串金钥"; +"No video selected" = "未选择视频"; +"No voice send method found" = "找不到语音发送方式"; +"Note has no downloadable content" = "便签没有可下载的内容"; +"Note text copied" = "笔记文字已复制"; +"Open GitHub" = "开启 GitHub"; +"Pick audio or video" = "选择音频或视频"; +"Read receipts disabled" = "已停用已读回条"; +"Read receipts enabled" = "已启用已读回条"; +"Read receipts will be blocked for this chat." = "此聊天将封锁已读回条。"; +"Read receipts will no longer be blocked for this chat." = "此聊天将不再封锁已读回条。"; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "刷新私信标签将清除 %lu 条保留的撤回消息。此操作无法撤销。"; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "刷新私信标签将清除 %lu 条保留的撤回消息。此操作无法撤销。"; +"Remove" = "移除"; +"Remove from block list" = "从封锁清单移除"; +"Remove from exclude list" = "从排除清单移除"; +"Removed" = "已移除"; +"Removed from list" = "已从清单移除"; +"Save GIF" = "储存 GIF"; +"Selection too short (min 0.5s)" = "选取太短(最短 0.5 秒)"; +"Send anyway" = "仍要传送"; +"Send Audio" = "传送音讯"; +"Send failed: %@" = "传送失败:%@"; +"Send File" = "发送文件"; +"Send service not found" = "找不到传送服务"; +"Show audio toggle" = "显示音讯切换"; +"Show mark-as-viewed button" = "显示标记已检视按钮"; +"Story read receipts disabled" = "故事已读回条已停用"; +"Story read receipts enabled" = "故事已读回条已启用"; +"This chat will resume normal read-receipt behavior." = "此聊天将恢复正常的已读回条行为。"; +"This file" = "此文件"; +"Total: %@" = "总计:%@"; +"Un-exclude chat" = "取消排除聊天"; +"Un-exclude story seen" = "取消排除故事已读"; +"Un-excluded" = "已取消排除"; +"Unblocked" = "已解除封锁"; +"Unlimited replay enabled" = "已启用无限重播"; +"Unmute story audio" = "取消静音故事音讯"; +"Unsent" = "未发送"; +"Upload Audio" = "上传音讯"; +"VC not found" = "找不到 VC"; +"Video from Library" = "从资料库选择影片"; +"Visual messages will expire" = "视觉讯息将会过期"; +"Visual messages: expiring" = "视觉讯息:即将过期"; +"Visual messages: unlimited replay" = "视觉讯息:无限重播"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "添加背景"; +"Add Chat Background" = "添加聊天背景"; +"Adds your own image backgrounds to Instagram chats" = "为 Instagram 聊天添加你自己的图片背景"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "启用后,打开任意聊天,点按主题按钮,再点按右上角的照片图标。"; +"Blur" = "模糊"; +"Browse chats" = "浏览聊天"; +"Browse chats (%ld)" = "浏览聊天 (%ld)"; +"Change Background" = "更改背景"; +"Change default" = "更改默认"; +"Chat Backgrounds" = "聊天背景"; +"Choose an image used when no chat override exists" = "选择在没有聊天单独设置时使用的图片"; +"Choose Image" = "选择图片"; +"Clear default" = "清除默认"; +"Couldn't import image" = "无法导入图片"; +"Custom Chat Background" = "自定义聊天背景"; +"Default background" = "默认背景"; +"Delete library images, default background, and chat overrides" = "删除图库图片、默认背景和聊天单独设置"; +"Dim in dark mode" = "深色模式下变暗"; +"Edit image settings" = "编辑图片设置"; +"Enable custom backgrounds" = "启用自定义背景"; +"Enter a username, chat name, or thread ID." = "输入用户名、聊天名称或会话 ID。"; +"Group" = "群组"; +"Image Settings" = "图片设置"; +"Library" = "图库"; +"Library, default, and per-chat overrides will be deleted." = "图库、默认背景和每个聊天的单独设置都将被删除。"; +"No Custom" = "无自定义"; +"Opacity" = "不透明度"; +"Photo Library" = "照片图库"; +"Pick default" = "选择默认"; +"Pinch + drag to position" = "捏合 + 拖动以定位"; +"Quit and reopen Instagram for the change to take effect." = "退出并重新打开 Instagram 以使更改生效。"; +"Recently set" = "最近设置"; +"Remove the global fallback background" = "移除全局后备背景"; +"Replace the default background image" = "替换默认背景图片"; +"Reset all backgrounds" = "重置所有背景"; +"Reset all backgrounds?" = "重置所有背景?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "重置会将不透明度设为 1.0,模糊设为 0,变暗设为 0。"; +"RyukGram Gallery" = "RyukGram 图库"; +"Search username, name, or thread ID" = "搜索用户名、名称或会话 ID"; +"Set as default" = "设为默认"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "点按加号添加。点按某个背景可编辑、设为默认或删除。"; +"This Chat Background" = "此聊天背景"; +"Thread ID" = "会话 ID"; +"Used only when a chat does not have its own custom background." = "仅在聊天没有自己的自定义背景时使用。"; +"View and manage chats with custom backgrounds" = "查看和管理带有自定义背景的聊天"; + +////////////////////////////////////////////////////////////////////////////// +// GENERAL FEATURES // +// Strings inside per-feature overlays: fake location, color picker, notes // +// customization, profile copy, etc. // +////////////////////////////////////////////////////////////////////////////// + +"Add location" = "新增位置"; +"Add preset" = "新增预设"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "影响上方所有项。关闭时,RyukGram 的主题和界面覆盖仅在 iOS 处于深色模式时生效——浅色模式保持不变。"; +"Apply & restart" = "套用并重新启动"; +"Background" = "背景"; +"Behavior" = "行为"; +"Change location" = "更改位置"; +"Clipboard is not an Instagram URL" = "剪贴簿内容不是 Instagram 网址"; +"Comments hidden" = "留言已隐藏"; +"Comments shown" = "留言已显示"; +"Copied text to clipboard" = "文字已复制到剪贴簿"; +"Copy" = "复制"; +"Copy bio" = "复制个人简介"; +"Copy name" = "复制名称"; +"Could not find cover image" = "找不到封面图片"; +"Current: %@" = "目前:%@"; +"Dark" = "深色"; +"Disable" = "停用"; +"Download GIF" = "下载 GIF"; +"Dropped pin" = "钉选位置"; +"Emoji" = "表情符号"; +"Enable" = "启用"; +"Enable Location Services for Instagram in Settings to use your current location." = "请在设定中为 Instagram 启用定位服务以使用目前位置。"; +"Enter emoji" = "输入表情符号"; +"Fake location" = "假位置"; +"Force theme" = "强制主题"; +"Keyboard theme" = "键盘主题"; +"Light" = "浅色"; +"Location access denied" = "定位存取被拒"; +"Location Services off" = "定位服务已关闭"; +"Name" = "名称"; +"Nothing to copy" = "无内容可复制"; +"Off, Light, Dark, or OLED" = "关闭、浅色、深色或 OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "OLED 聊天主题"; +"Open Settings" = "开启设定"; +"Optional per-surface overrides. Each one is independent of the theme above." = "可选的按界面覆盖。每项独立于上方的主题。"; +"Override iOS appearance regardless of system mode" = "无论系统模式如何都覆盖 iOS 外观"; +"Override the keyboard appearance when typing" = "输入时覆盖键盘外观"; +"Pick location" = "选择位置"; +"Pure black DM thread + incoming bubbles" = "纯黑色私信背景与收到消息气泡"; +"Reset theme" = "重置主题"; +"Restart Instagram to apply your theme changes" = "重新启动 Instagram 以套用主题变更"; +"Save" = "储存"; +"Save preset" = "储存预设"; +"Saved locations" = "已储存位置"; +"Select color" = "选择颜色"; +"Set location" = "设定位置"; +"The theme RyukGram applies to Instagram." = "RyukGram 应用于 Instagram 的主题。"; +"Theme" = "主题"; +"Turn every theme option off and restart" = "关闭所有主题选项并重新启动"; +"Turn Location Services on in Settings → Privacy to use your current location." = "请在设定 → 隐私中开启定位服务以使用目前位置。"; +"Type an emoji to use as the note bubble icon." = "输入用作便笺气泡图标的表情符号。"; +"View profile picture" = "查看头像"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE ANALYZER // +// Settings → Profile Analyzer // +////////////////////////////////////////////////////////////////////////////// + +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu 个帐号?为避免速率限制,仅处理前 %ld 个。"; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu 个帐号?此操作会依序执行,每个之间有短暂停顿。"; +"%@ followers · %@ following" = "%@ 粉丝 · %@ 关注"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "%d 天前"; +"%dh ago" = "%d 小时前"; +"%dm ago" = "%d 分钟前"; +"%lu accounts followed" = "已追踪 %lu 个帐号"; +"%lu accounts unfollowed" = "已取消追踪 %lu 个帐号"; +"%lu followers · %lu following" = "%lu 粉丝 · %lu 追踪中"; +"%lu of %lu" = "%lu / %lu"; +"%lu saved · comparing against %@" = "已保存 %lu 个 · 对比基准 %@"; +"(empty)" = "(空)"; +"(no analyzer data)" = "(无分析器资料)"; +"a saved snapshot" = "已保存的快照"; +"About Profile Analyzer" = "关于个人档案分析器"; +"All preferences (%lu)" = "所有偏好设定 (%lu)"; +"Analysis complete" = "分析完成"; +"Analysis failed" = "分析失败"; +"Another analysis is already running" = "已经有另一个分析正在执行"; +"Available after your next scan" = "将于下次扫描后提供"; +"Batch follow" = "批次追踪"; +"Batch follow finished" = "批次追踪完成"; +"Batch unfollow" = "批次取消追踪"; +"Batch unfollow finished" = "批次取消追踪完成"; +"Categories" = "类别"; +"Clear visited profiles" = "清除浏览过的个人资料"; +"Compare next scan against" = "下次扫描的对比基准"; +"Comparing against %@" = "对比基准 %@"; +"Continue" = "继续"; +"Couldn't fetch profile information" = "无法取得个人资料资讯"; +"Delete %lu snapshots? This can't be undone." = "删除 %lu 个快照?此操作无法撤销。"; +"Delete (%lu)" = "删除 (%lu)"; +"Delete snapshots" = "删除快照"; +"Delete this snapshot? This can't be undone." = "删除此快照?此操作无法撤销。"; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "每次扫描都会完整保存你的粉丝和关注列表,以便日后对比。所有数据都保留在本设备上。"; +"Export" = "汇出"; +"Fetching followers (%lu/%ld)…" = "正在取得粉丝 (%lu/%ld)…"; +"Fetching following (%lu/%ld)…" = "正在取得追踪中 (%lu/%ld)…"; +"Fetching profile info…" = "正在取得个人资料资讯…"; +"File is not a valid RyukGram backup." = "档案不是有效的 RyukGram 汇出档。"; +"Filter" = "筛选"; +"Filter · %lu" = "筛选 · %lu"; +"First scan: %@" = "首次扫描:%@"; +"First scan: we collect your followers and following lists and save them locally." = "首次扫描:我们会收集你的粉丝及追踪清单并储存在本机。"; +"Follow %lu" = "追踪 %lu"; +"Follower count exceeds %ld — analysis disabled to avoid rate limits." = "粉丝数超过 %ld — 已停用分析以避免速率限制。"; +"Followers" = "粉丝"; +"Following… %lu / %lu" = "追踪中… %lu / %lu"; +"Gained since last scan" = "自上次扫描后增加"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "注意:此功能为 Beta 版本,会呼叫 Instagram 的私有 API。连续执行或在大量追踪/取消追踪活动之后立即执行可能触发短暂速率限制。请谨慎使用,风险自负。"; +"Import complete" = "汇入完成"; +"Include" = "包含"; +"Keep newest" = "保留最新"; +"Keep newest snapshots" = "保留最新的快照"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "大型帐号已被封锁:粉丝数超过 13,000 时停用分析,以避免 Instagram 对整个应用程式施加速率限制。"; +"Last scan: %@" = "上次扫描:%@"; +"Logs every profile you open. Stays on-device." = "记录你打开的每个个人资料,仅保存于设备上。"; +"Lost followers" = "失去的粉丝"; +"Most visited" = "最常浏览"; +"Mutual followers" = "互相追踪"; +"Name: %@ → %@" = "名称:%@ → %@"; +"New followers" = "新粉丝"; +"No active Instagram session found" = "找不到已登入的 Instagram 工作阶段"; +"No results" = "无结果"; +"No scan yet" = "尚未扫描"; +"Not following you back" = "未回追你"; +"Not verified only" = "仅限未认证"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "不会上传任何资料 — 所有资料仅保留在此装置,可透过垃圾桶图示清除。"; +"Nothing was applied." = "未套用任何变更。"; +"OK" = "OK"; +"Older snapshots beyond the limit are removed automatically" = "超出上限的旧快照会被自动删除"; +"Older snapshots beyond this limit are deleted on the next scan." = "超出此上限的旧快照将在下次扫描时被删除。"; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "选择要移除的内容。“快照”会清除扫描差异和每个已记录的快照;“访问过的主页”会清除访问记录。"; +"Posts" = "贴文"; +"Preferences" = "偏好设定"; +"Previous scan" = "上次扫描"; +"Private account" = "私人帐号"; +"Private only" = "仅限私人"; +"Profile Analyzer" = "个人档案分析器"; +"Profile Analyzer data" = "个人档案分析器资料"; +"Profile picture changed" = "大头贴已变更"; +"Profile updates" = "个人档案更新"; +"Profiles you've opened recently" = "你最近打开的个人资料"; +"Raw" = "原始"; +"Raw JSON" = "原始 JSON"; +"Record snapshots" = "记录快照"; +"Recording" = "录制"; +"Request failed" = "请求失败"; +"Reset analyzer data" = "重设分析器资料"; +"Reset complete" = "重设完成"; +"Reset everything" = "全部重置"; +"Reset selected data?" = "要重设选取的资料吗?"; +"Reset snapshots" = "重置快照"; +"Rolling — always your last run" = "滚动 — 始终为你的上次运行"; +"Run analysis" = "执行分析"; +"Run your first analysis" = "执行首次分析"; +"Save a dated entry on every scan" = "每次扫描时保存一条带日期的记录"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "第二次扫描起:每次扫描都会与上一次比较,以显示增加/失去的粉丝、你自己的追踪/取消追踪动作,以及个人档案更新。"; +"Settings" = "设定"; +"Since last scan" = "自上次扫描后"; +"Snapshot" = "快照"; +"Snapshots" = "快照"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "快照可让你归档每次扫描并选择新扫描的对比基准。“追踪访问”会记录你打开的每个主页,以便在此查看。"; +"Sort" = "排序"; +"Starting…" = "开始中…"; +"They follow you, you don't follow back" = "对方追踪你,你未回追"; +"This can't be undone." = "此操作无法复原。"; +"Ticked data will be cleared. Tap a row to see what's stored." = "选取的资料将被清除。点击任一列以检视已储存内容。"; +"Today" = "今天"; +"Too many followers" = "粉丝过多"; +"Too many followers to analyze" = "粉丝数量过多,无法分析"; +"Track visited profiles" = "追踪浏览过的个人资料"; +"Tracking" = "追踪"; +"Tracking off — enable below to log visits" = "追踪已关闭 — 在下方启用以记录浏览"; +"Unfollow" = "取消追踪"; +"Unfollow %lu" = "取消追踪 %lu"; +"Unfollow @%@?" = "取消追踪 @%@?"; +"Unfollowed you since last scan" = "自上次扫描后取消追踪你"; +"Unfollowing… %lu / %lu" = "取消追踪中… %lu / %lu"; +"Unlimited" = "无限制"; +"Username A → Z" = "使用者名称 A → Z"; +"Username Z → A" = "使用者名称 Z → A"; +"Username, name or picture changes" = "使用者名称、名称或大头贴变更"; +"Username: @%@ → @%@" = "使用者名称:@%@ → @%@"; +"Using %@ across %lu snapshots." = "在 %lu 个快照中使用 %@。"; +"Verified only" = "仅限已认证"; +"Visited" = "已浏览"; +"Visited profiles" = "浏览过的个人资料"; +"We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "粉丝数超过 %ld 时我们拒绝执行,以避免 Instagram 速率限制。"; +"You both follow each other" = "你们互相追踪"; +"You don't follow back" = "你未回追"; +"You follow them, they don't follow back" = "你追踪对方,对方未回追"; +"You started following" = "你开始追踪"; +"You unfollowed" = "你已取消追踪"; +"your previous scan" = "你的上次扫描"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "“上次扫描”始终以你的上次运行为基准。改选一个已保存的快照可与固定时间点对比。"; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ 占用越来越大 — 降低上限或删除较旧的快照以释放空间。"; + +////////////////////////////////////////////////////////////////////////////// +// SETTINGS VIEWS & DIALOGS // +// Excluded-lists managers, backup/restore flows, in-picker labels. // +////////////////////////////////////////////////////////////////////////////// + +"Absolute format" = "绝对格式"; +"Add chat" = "新增聊天"; +"Add custom domain" = "新增自订网域"; +"Add to list?" = "要加入清单吗?"; +"Add user" = "新增使用者"; +"Apply" = "套用"; +"Apply to" = "套用至"; +"Chats" = "聊天"; +"Colored" = "彩色"; +"Could not read file." = "无法读取档案。"; +"Could not resolve user ID" = "无法解析使用者 ID"; +"Current location" = "目前位置"; +"Custom" = "自订"; +"Delete" = "删除"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "IG 的每个界面使用不同的 NSDate 格式化器。开启你希望应用此格式的界面。"; +"Enable fake location" = "启用假位置"; +"Excluded chats" = "排除的聊天"; +"Excluded users" = "排除的使用者"; +"Follow default" = "遵循预设"; +"Force OFF (allow unsends)" = "强制关闭(允许撤回)"; +"Force ON (preserve unsends)" = "强制开启(保留撤回)"; +"Include seconds when the format already shows time." = "当格式已显示时间时也包含秒。"; +"Included chats" = "包含的聊天"; +"Included users" = "包含的使用者"; +"KD: default" = "KD:预设"; +"KD: ON" = "KD:开启"; +"Keep-deleted" = "保留已删除"; +"Keep-deleted override" = "保留已删除覆写"; +"Name (A–Z)" = "名称 (A–Z)"; +"No DM thread found with @%@" = "找不到与 @%@ 的私讯串"; +"Presets" = "预设组合"; +"Recently added" = "最近新增"; +"Relative time" = "相对时间"; +"Relative within" = "相对时间范围"; +"Remove from list" = "从清单移除"; +"Reset" = "重设"; +"Search" = "搜寻"; +"Search address or place" = "搜寻地址或地点"; +"Search by name or username" = "依名称或使用者名称搜寻"; +"Search by username or name" = "依使用者名称或名称搜寻"; +"Select location on map" = "在地图上选择位置"; +"Set current location" = "设定目前位置"; +"Set keep-deleted override" = "设定保留已删除覆写"; +"Show map button" = "显示地图按钮"; +"Show relative time for dates younger than this many days. 0 disables it." = "对早于此天数的日期显示相对时间。0 表示关闭。"; +"Show seconds" = "显示秒数"; +"Sort by" = "排序依据"; +"Thread" = "会话"; +"Time" = "时间"; +"Use this location" = "使用此位置"; +"User '%@' not found" = "找不到使用者 '%@'"; +"Username (A–Z)" = "使用者名称 (A–Z)"; +"Within %ld days" = "%ld 天以内"; +"Within 1 day" = "1 天以内"; + +////////////////////////////////////////////////////////////////////////////// +// REELS (FEATURES) // +// Strings from Reels. // +////////////////////////////////////////////////////////////////////////////// + +"No password found" = "找不到密码"; +"No text field found" = "找不到文字栏位"; +"Refresh Reels?" = "重新整理 Reels?"; + +////////////////////////////////////////////////////////////////////////////// +// PROFILE (FEATURES) // +// Strings from Profile. // +////////////////////////////////////////////////////////////////////////////// + +"%lu accounts" = "%lu 个账号"; +"%lu loaded" = "已加载 %lu 个"; +"%lu loaded · all loaded" = "已加载 %lu 个 · 全部加载完毕"; +"Doesn't follow you" = "未追踪你"; +"Everyone is already loaded." = "所有人已加载完毕。"; +"Filter & sort" = "筛选和排序"; +"Follows me" = "关注了我"; +"Follows me first" = "关注我的优先"; +"Follows you" = "追踪你"; +"Hides everyone who doesn't match all picked filters." = "隐藏所有不符合全部所选筛选条件的人。"; +"Jump to bottom" = "跳到底部"; +"Jump to top" = "跳到顶部"; +"List" = "列表"; +"List fully loaded" = "列表已全部加载"; +"Load more" = "加载更多"; +"Loaded more" = "已加载更多"; +"Mutuals" = "互相关注"; +"Mutuals first" = "互相关注优先"; +"Note copied" = "备注已复制"; +"People I follow" = "我关注的人"; +"People I follow first" = "我关注的人优先"; +"Reverse order" = "倒序"; +"Show only" = "仅显示"; +"Verified" = "已认证"; +"Verified first" = "已认证优先"; + +////////////////////////////////////////////////////////////////////////////// +// MISC // +// Anything that didn't fit a named section. Usually short labels. // +////////////////////////////////////////////////////////////////////////////// + +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(未设置)"; +"720p • progressive • fastest" = "720p • 渐进式 • 最快"; +"Add language" = "添加语言"; +"Album name" = "相册名称"; +"Are you sure?" = "你确定吗?"; +"Bundle" = "合集"; +"Copy audio URL" = "复制音讯网址"; +"Copy quality info" = "复制品质资讯"; +"Copy video URL" = "复制影片网址"; +"Could not access reel media" = "无法存取 Reels 媒体"; +"Could not access reel photo" = "无法存取 Reels 照片"; +"Could not write file." = "无法写入文件。"; +"Download all and share?" = "下载全部并分享?"; +"Download Quality" = "下载品质"; +"Downloading %d%%" = "正在下载 %d%%"; +"e.g. 1000000" = "例如 1000000"; +"Localization file not found" = "未找到翻译文件"; +"Enter the language code (e.g. fr, de, ja)" = "输入语言代码(例如 fr、de、ja)"; +"Error" = "错误"; +"Extras" = "附加项目"; +"FFmpegKit Debug" = "FFmpegKit 除错"; +"File is empty or not a valid .strings file." = "文件为空或不是有效的 .strings 文件。"; +"KD: OFF" = "KD:关闭"; +"Keep-deleted: OFF" = " • 保留已删除:关闭"; +"Keep-deleted: ON" = " • 保留已删除:开启"; +"Later" = "稍后"; +"Loading" = "加载中"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "RyukGram 保存到的“照片”相册名称。留空则恢复默认。"; +"Next" = "下一步"; +"No results found." = "未找到结果。"; +"No!" = "不要!"; +"Pick a language to update, or add a new one" = "选择要更新的语言,或添加新语言"; +"Preset" = "预设"; +"Restart" = "重新启动"; +"Restart now" = "立即重新启动"; +"Restart required" = "需要重新启动"; +"Saved preset \"%@\"" = "已保存预设 \"%@\""; +"selected" = "已选择"; +"Shared icon, or override per button" = "共享图标,或按按钮单独覆盖"; +"Speed" = "速度"; +"Unset" = "未设置"; +"Update localization" = "更新翻译"; +"Updated %@ (%ld keys). Restart to apply." = "已更新 %@(%ld 个键)。重新启动以应用。"; +"Use default" = "使用默认"; +"Username or PK" = "用户名或 PK"; +"Username or raw user PK" = "用户名或原始用户 PK"; +"Yes" = "是"; +"You must restart the app to apply this change" = "您必须重新启动应用程式以套用此变更"; + +////////////////////////////////////////////////////////////////////////////// +// ABOUT / CREDITS // +// Strings from the About / Credits footer of Settings. // +////////////////////////////////////////////////////////////////////////////// + +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub、Telegram、捐赠"; +"About" = "关于"; +"Arabic translation" = "阿拉伯文翻译"; +"Chinese (Traditional and Simplified) translation" = "中文(繁体与简体)翻译"; +"Credits" = "制作团队"; +"Developers" = "开发者"; +"Donate to SoCuul" = "捐款给 SoCuul"; +"installed" = "已安装"; +"Korean translation" = "韩文翻译"; +"Portuguese (Brazil) translation" = "葡萄牙语(巴西)翻译"; +"Turkish translation" = "土耳其语翻译"; +"Vietnamese translation" = "越南语翻译"; +"French translation" = "法语翻译"; +"Code contributions" = "代码贡献"; +"Following feed mode (from InstaSane)" = "正在关注动态模式(来自 InstaSane)"; +"latest" = "最新"; +"Links" = "连结"; +"No releases" = "无版本发行"; +"Original SCInsta developer" = "原 SCInsta 开发者"; +"Release notes" = "版本说明"; +"Releases" = "版本发行"; +"Report an issue" = "回报问题"; +"Russian translation" = "俄文翻译"; +"RyukGram developer" = "RyukGram 开发者"; +"Join Telegram channel" = "加入 Telegram 频道"; +"Source code" = "原始码"; +"View on GitHub" = "在 GitHub 查看"; +"Spanish translation" = "西班牙文翻译"; +"Support the original SCInsta developer" = "支持 SCInsta 原开发者"; +"Inspirations" = "灵感来源"; +"Inspirations, contributors, translators" = "灵感来源、贡献者、翻译者"; +"Code and research" = "代码与研究"; +"Translators" = "翻译者"; +"Original BHInstagram developer" = "BHInstagram 原开发者"; +"OLED theme inspiration" = "OLED 主题灵感"; +"Donate to Ryuk" = "捐赠 Ryuk"; +"Support RyukGram development" = "支持 RyukGram 开发"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram 是 SCInsta 的深度重做分支 — 支持原开发者将不胜感激。"; +"Browse changes from previous releases" = "查看以往版本的更改"; +"Code inspiration" = "代码灵感"; +"zxPluginsInject sideload compatibility shim" = "zxPluginsInject 侧载兼容性垫片"; +"Telegram channel" = "Telegram 频道"; +"Testing and feature suggestions" = "测试与功能建议"; +"Version" = "版本"; +"Version, credits, and links" = "版本、制作团队与连结"; +"What's new in RyukGram" = "RyukGram 有什么新功能"; + +////////////////////////////////////////////////////////////////////////////// +// HD DOWNLOADS // +// Enhanced / HD downloads settings (DASH + FFmpegKit encoding). // +////////////////////////////////////////////////////////////////////////////// + +"720p • progressive • silent" = "720p • 渐进式 • 静音"; +"Audio only" = "仅音讯"; +"Audio ready" = "音讯就绪"; +"Download video at the highest available quality" = "下载最高可用品质的影片"; +"Downloads HD video via DASH streams and encodes to H.264. Requires FFmpegKit." = "透过 DASH 串流下载 HD 影片并编码为 H.264。需要 FFmpegKit。"; +"Encoding speed" = "编码速度"; +"Enhanced downloads" = "增强下载"; +"Faster = lower quality" = "速度越快 = 品质越低"; +"FFmpeg not available" = "FFmpeg 不可用"; +"FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit 不可用。请安装侧载的 IPA 或 _ffmpeg .deb 版本以启用。"; +"No audio track found" = "找不到音讯轨"; +"Photo" = "照片"; +"Photo quality" = "照片品质"; +"silent" = "静音"; +"Use highest resolution available" = "使用最高可用解析度"; +"Video quality" = "影片品质"; +"Which quality to download" = "选择下载的品质"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "此 FFmpegKit 构建不包含 “%@” — 改用硬件 h264。"; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10 位 4:2:0。慢约 2 倍,渐变更平滑。"; +"10-bit colour. Slower, smoother gradients. Software only." = "10 位色彩。较慢,渐变更平滑。仅限软件编码。"; +"1080p30 baseline." = "1080p30 基准。"; +"4K30 baseline." = "4K30 基准。"; +"8-bit 4:2:0. Universal default." = "8 位 4:2:0。通用默认。"; +"8-bit 4:2:2 chroma. Niche playback." = "8 位 4:2:2 色度。小众播放。"; +"8-bit 4:2:2 chroma. Software only." = "8 位 4:2:2 色度。仅限软件编码。"; +"8-bit 4:4:4 chroma. Software only." = "8 位 4:4:4 色度。仅限软件编码。"; +"8-bit 4:4:4 full chroma. Niche playback." = "8 位 4:4:4 全色度。小众播放。"; +"8-bit. Best for modern devices." = "8 位。最适合现代设备。"; +"Advanced encoding" = "高级编码"; +"Advanced encoding settings" = "高级编码设置"; +"Archival quality." = "归档级画质。"; +"Audio bitrate" = "音频比特率"; +"Audio channels" = "音频声道"; +"Audio codec" = "音频编码器"; +"Audio conversion failed" = "音频转换失败"; +"Audio sample rate" = "音频采样率"; +"Balanced. libx264 default." = "均衡。libx264 默认。"; +"Best practical quality per bit." = "每比特最佳实用画质。"; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "比特率、声道和采样率仅在编码器为 AAC(重新编码)时生效。"; +"Cartoons / anime." = "卡通 / 动画。"; +"Cinematic. Smaller files." = "电影感。文件更小。"; +"Codec" = "编码器"; +"Container" = "容器"; +"Copy (passthrough)" = "复制(直通)"; +"CRF quality" = "CRF 画质"; +"Downloading video…" = "正在下载视频…"; +"Easier to play back on weak devices." = "在性能较弱的设备上更易播放。"; +"Encoder unavailable" = "编码器不可用"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "例如:8M、12M、25M、4500k。留空则自动。"; +"Failed to download video" = "下载视频失败"; +"Fast, fixed-bitrate, GPU-accelerated." = "快速、固定比特率、GPU 加速。"; +"Fastest, worst compression." = "最快,压缩率最差。"; +"Faststart" = "快速启动"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "“快速启动”会将 MP4 索引移到文件开头,使文件未完全缓冲即可开始播放。“清除元数据”会从文件中移除源标签(创建日期、处理器、编码器)。"; +"FFmpeg documentation" = "FFmpeg 文档"; +"FFmpeg mux failed" = "FFmpeg 混流失败"; +"Frame rate" = "帧率"; +"H.264 level" = "H.264 级别"; +"H.264 profile" = "H.264 配置"; +"Hardware (VideoToolbox)" = "硬件 (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "硬件 (VideoToolbox) 仅支持 yuv420p — 已忽略 “%@”。切换到软件 (libx264) 以使用它。"; +"Keep original audio. Fast." = "保留原始音频。快速。"; +"Keep the source frame rate." = "保留源帧率。"; +"Let the encoder pick." = "由编码器决定。"; +"Live-action video." = "实拍视频。"; +"Lossless. Huge files." = "无损。文件极大。"; +"Low-latency streaming." = "低延迟流媒体。"; +"Manual ffmpeg controls in place of Encoding speed." = "用手动 ffmpeg 控制取代编码速度。"; +"Marginal gain, huge time cost." = "收益微小,耗时巨大。"; +"Max resolution" = "最大分辨率"; +"Mono" = "单声道"; +"No tuning. Default." = "无调优。默认。"; +"None" = "无"; +"Pixel format" = "像素格式"; +"Pixel format ignored" = "已忽略像素格式"; +"Preserve film grain." = "保留胶片颗粒。"; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "预设和调优仅适用于软件 (libx264)。配置应与像素格式搭配:high↔yuv420p、high10↔yuv420p10le、high422↔yuv422p、high444↔yuv444p。不匹配时会静默降级转换。硬件始终使用 yuv420p。"; +"Re-encode. Use when source is opus or unsupported." = "重新编码。当源为 opus 或不受支持时使用。"; +"Reset advanced encoding" = "重置高级编码"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "设置视频比特率会使软件编码切换为固定比特率并忽略 CRF。留空则使用 CRF。硬件编码使用比特率。"; +"Slideshow-like content." = "幻灯片类内容。"; +"Slower, better compression per bit." = "较慢,每比特压缩更好。"; +"Smaller, visible artefacts." = "更小,有可见瑕疵。"; +"Software (libx264)" = "软件 (libx264)"; +"Standard 8-bit." = "标准 8 位。"; +"Stereo" = "立体声"; +"Streaming default." = "流媒体默认。"; +"Strip metadata" = "清除元数据"; +"Top of AAC." = "AAC 顶级。"; +"Tune" = "调优"; +"Unknown error" = "未知错误"; +"Very high quality." = "极高画质。"; +"Video bitrate" = "视频比特率"; +"Video codec" = "视频编码器"; +"Visually lossless. RyukGram default." = "视觉无损。RyukGram 默认。"; +"Widest compatibility, no B-frames." = "兼容性最广,无 B 帧。"; +"Worst quality." = "最差画质。"; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "长按手势"; +"Inserts a button in the profile navigation header" = "在个人资料导航栏中插入一个按钮"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "在个人资料标题栏新增 RyukGram 操作按钮,包含复制、查看图片、分享、保存和资料信息选项。默认点击打开菜单;可在「配置菜单」中更改点击行为。"; +"Configure menu" = "配置菜单"; +"Reorder, enable/disable, set default tap, show date" = "重新排序、启用/禁用、设置默认点击、显示日期"; +"Reorder, enable/disable, set default tap" = "重新排序、启用/禁用、设置默认点击"; +"RyukGram profile actions" = "RyukGram 个人资料操作"; +"Reorder sections" = "重新排序分区"; +"Drag the ≡ handle to reorder sections." = "拖动 ≡ 手柄以重新排序分区。"; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "拖动 ≡ 手柄以重新排序。关闭某行可在菜单中隐藏。将分区标记为子菜单可将其操作折叠到单个条目下。"; +"Show as submenu" = "显示为子菜单"; +"Collapse this section's actions behind a single entry" = "将此分区的操作折叠到单个条目下"; +"Configure: %@" = "配置:%@"; +"What happens on a single tap. Long-press always opens the full menu." = "单击时执行的操作。长按始终会打开完整菜单。"; +"Reset to defaults" = "恢复默认"; +"This will restore the default sections, order, and toggles for this menu." = "这将恢复此菜单的默认分区、顺序和开关设置。"; +"Audio & visibility" = "音频与可见性"; +"DM disappearing media" = "私信阅后即焚媒体"; +"Bulk download" = "批量下载"; +"Feed settings" = "动态设置"; +"Reels settings" = "短视频设置"; +"Profile settings" = "个人资料设置"; +"Stories settings" = "限时动态设置"; +"Copy ID" = "复制 ID"; +"Copy Info" = "复制信息"; +"Copy all info" = "复制所有信息"; +"Copy media URL" = "复制媒体网址"; +"Copy profile link" = "复制个人资料链接"; +"Copy username" = "复制用户名"; +"Download" = "下载"; +"Download to Gallery" = "下载到图库"; +"Download all to Gallery" = "全部下载到图库"; +"Exclude/include user" = "排除/包含用户"; +"Mute / unmute audio" = "静音/取消静音"; +"Save picture to Gallery" = "保存图片到图库"; +"Share picture" = "分享图片"; +"View picture" = "查看图片"; +"Bio" = "简介"; +"ID" = "ID"; +"Info" = "信息"; +"Profile info" = "个人资料信息"; +"Profile link" = "个人资料链接"; +"Picture not found" = "找不到图片"; +"Private profile" = "私密资料"; +"Profile unavailable" = "个人资料不可用"; +"Public profile" = "公开资料"; +"Username" = "用户名"; +"Followers: %@" = "粉丝:%@"; +"Following: %@" = "关注:%@"; +"Copied %@" = "已复制 %@"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(未知)"; +"All files deleted" = "已删除所有文件"; +"Browsing" = "浏览"; +"By source" = "按来源"; +"By type" = "按类型"; +"By user" = "按用户"; +"Clear filters" = "清除筛选"; +"Comment" = "留言"; +"Create" = "创建"; +"Create & Move" = "创建并移动"; +"Delete %@?" = "要删除 %@ 吗?"; +"Delete all files" = "删除所有文件"; +"Delete all images" = "删除所有图片"; +"Delete all videos" = "删除所有视频"; +"Delete by user" = "按用户删除"; +"Delete DM media" = "删除私信媒体"; +"Delete feed posts" = "删除动态帖子"; +"Delete files" = "删除文件"; +"Delete Folder" = "删除文件夹"; +"Delete from Gallery?" = "要从图库删除吗?"; +"Delete profile pictures" = "删除头像"; +"Delete reels" = "删除短视频"; +"Delete selected" = "删除所选"; +"Delete Selected Files?" = "删除所选文件?"; +"Delete stories" = "删除限时动态"; +"Delete thumbnails" = "删除缩略图"; +"Deleted from Gallery" = "已从图库删除"; +"Deleted selected files" = "已删除所选文件"; +"Deselect All" = "取消全选"; +"DM media deleted" = "私信媒体已删除"; +"DMs" = "私信"; +"Each user appears as a folder next to your real folders." = "每个用户以文件夹形式与实际文件夹并列显示。"; +"Each user gets a labelled section in the grid/list." = "每个用户在网格/列表中拥有带标签的分区。"; +"Enable gallery" = "启用图库"; +"Failed" = "失败"; +"Failed to delete" = "删除失败"; +"Favorite" = "收藏"; +"Favorite selected" = "收藏所选"; +"Favorites only" = "仅收藏"; +"Feed posts deleted" = "动态帖子已删除"; +"Files deleted" = "文件已删除"; +"Flat list. No grouping." = "扁平列表,不分组。"; +"Folder name" = "文件夹名称"; +"Folders" = "文件夹"; +"From RyukGram Gallery" = "来自 RyukGram 图库的音频"; +"Gallery" = "图库"; +"Gallery only" = "仅图库"; +"Gallery save mode" = "图库保存模式"; +"Gallery Settings" = "图库设置"; +"GIFs" = "GIF"; +"Grid view" = "网格视图"; +"Group by user" = "按用户分组"; +"Hold DM tab to open gallery" = "长按 DM 标签打开图库"; +"Images" = "图片"; +"Images deleted" = "图片已删除"; +"Images first" = "图片优先"; +"item" = "项"; +"items" = "项"; +"Largest first" = "最大优先"; +"List view" = "列表视图"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "长按底部标签栏中的收件箱按钮打开 RyukGram 图库"; +"Manage" = "管理"; +"More" = "更多"; +"Move selected" = "移动所选"; +"Move to Folder" = "移动到文件夹"; +"Name A-Z" = "名称 A-Z"; +"Name Z-A" = "名称 Z-A"; +"New Folder" = "新建文件夹"; +"New folder…" = "新建文件夹…"; +"Newest first" = "最新优先"; +"No files in Gallery" = "图库中没有文件"; +"No files to delete" = "无可删除文件"; +"No matching files" = "没有匹配的文件"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "通过 RyukGram 下载的媒体的本机库。保存模式决定「下载到照片」实际写入的位置。"; +"Open" = "打开"; +"Open Original Post" = "打开原帖子"; +"Options" = "选项"; +"Other" = "其他"; +"Photos + Gallery" = "照片 + 图库"; +"Photos only" = "仅照片"; +"Profile pictures deleted" = "头像已删除"; +"Reels deleted" = "短视频已删除"; +"Rename" = "重命名"; +"Rename Folder" = "重命名文件夹"; +"Root" = "根目录"; +"Save media from the preview screen\nto see it here." = "在预览界面保存媒体\n即可在此查看。"; +"Saved %lu items to Gallery" = "已保存 %lu 项到图库"; +"Saved to Gallery" = "已保存到图库"; +"Saving to Gallery" = "正在保存到图库..."; +"Search users" = "搜索用户"; +"Sections" = "分区"; +"Select All" = "全选"; +"Share" = "分享"; +"Share selected" = "分享所选"; +"Show favorites at top" = "收藏置顶"; +"Show gallery entries in download menus and unlock the gallery button" = "在下载菜单中显示图库条目并解锁图库按钮"; +"Smallest first" = "最小优先"; +"Source" = "来源"; +"Source user" = "来源用户"; +"Storage" = "存储"; +"Stories deleted" = "限时动态已删除"; +"Story" = "限时动态"; +"The original content may no longer exist." = "原始内容可能已不存在。"; +"This folder contains %ld file(s). They will be moved to the parent folder." = "此文件夹包含 %ld 个文件。它们将被移动到上级文件夹。"; +"This folder is empty." = "此文件夹为空。"; +"This will permanently remove %ld file%@ from the gallery." = "这将从图库中永久删除 %ld 个文件%@。"; +"This will permanently remove %ld file(s)." = "这将永久删除 %ld 个文件。"; +"This will permanently remove this file from the gallery." = "这将从图库中永久删除此文件。"; +"Thumb" = "缩略图"; +"Thumbnails deleted" = "缩略图已删除"; +"to Gallery" = "到图库"; +"Total files" = "文件总数"; +"Total size" = "总大小"; +"Type" = "类型"; +"Unable to open original post" = "无法打开原始帖子"; +"Unable to open profile" = "无法打开个人资料"; +"Unfavorite" = "取消收藏"; +"Unknown user" = "未知用户"; +"User files deleted" = "用户文件已删除"; +"Videos" = "视频"; +"Videos deleted" = "视频已删除"; +"Videos first" = "视频优先"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "启用后,收藏会在当前排序和文件夹中置顶显示,位于其他文件之上。"; +"Where 'Download to Photos' actually writes when gallery is on" = "启用图库时「下载到照片」实际写入的位置"; +"Yesterday" = "昨天"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "主页快捷按钮"; +"Show the extra button on the home top bar" = "配置主页顶栏的额外按钮"; +"Auto" = "自动"; +"Icon" = "图标"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "拖动 ≡ 手柄重新排序。关闭某行以隐藏该目的地。启用一项操作时点击直接触发;启用两项或以上时点击显示菜单。"; +"Changelog" = "更新日志"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "在主页顶栏的发帖 + 按钮旁添加一个额外的快捷按钮。"; +"All buttons" = "所有按钮"; +"Choose icon, reorder actions, and enable menu items" = "选择图标、重排操作并启用菜单项"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "选择显示在主页顶栏上的图标。“自动”会在仅启用一个操作时使用该操作的图标。"; +"Configure button" = "配置按钮"; +"Global Action Icons" = "全局操作图标"; +"Interface" = "界面"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "为特定按钮覆盖图标。保持为“默认”的按钮将沿用上方的共享图标。"; +"Per button" = "按按钮"; +"Show home shortcut button" = "显示主页快捷按钮"; +"Tab bar" = "标签栏"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "应用内统一通知。选择样式、位置和按操作路由(药丸 / IG 原生 / 关闭)。"; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "通知"; +"Appearance" = "外观"; +"Routing" = "路由"; +"Style" = "样式"; +"Position" = "位置"; +"Stack size" = "堆叠数量"; +"Duration" = "持续时间"; +"Default surface" = "默认显示方式"; +"Enable notifications" = "启用通知"; +"Haptic feedback" = "触感反馈"; +"Preview pill" = "预览药丸"; +"Preview download pill" = "预览下载药丸"; +"Preview loading pill" = "预览加载药丸"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "主开关。关闭后将不显示任何通知。"; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "应用内统一通知。所有 RyukGram 反馈都从这里发出。"; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal:简单模糊。Colorful:按色调着色。Glow:彩色光环。Island:动态岛胶囊。"; +"Top slides down, bottom slides up." = "顶部下滑,底部上滑."; +"How many pills can show at once before queueing." = "在排队前同时显示的药丸数量。"; +"Multiplies how long toasts stay on screen." = "将通知在屏幕上的停留时间乘以倍数。"; +"Vibration on success/error pills." = "成功/错误药丸震动反馈。"; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "对于提示型操作可在我们的药丸和 IG 原生提示之间选择。下方为各操作覆盖。"; +"What to use when an action doesn't have its own override." = "操作没有自身覆盖时使用的方式。"; +"Tap to cycle: info → success → warning → error" = "点击循环:信息 → 成功 → 警告 → 错误"; +"Tap to cycle between success and failure" = "点击在成功与失败之间切换"; +"Progress UI — pill or off only." = "进度 UI — 仅限药丸或关闭。"; +"Minimal" = "极简"; +"Colorful" = "彩色"; +"Glow" = "辉光"; +"Island" = "灵动岛"; +"Top" = "顶部"; +"Bottom" = "底部"; +"Custom pill" = "自定义药丸"; +"IG native toast" = "IG 原生提示"; +"Short" = "短"; +"Normal" = "正常"; +"Long" = "长"; +"Very long" = "非常长"; +"Downloads & saving" = "下载与保存"; +"Copy to clipboard" = "复制到剪贴板"; +"Read receipts & seen" = "已读回执与查看"; +"Block, exclude & pin" = "屏蔽、排除与置顶"; +"Stories & messages" = "故事与消息"; +"Voice & audio" = "语音与音频"; +"Errors" = "错误"; +"Download progress" = "下载进度"; +"Bulk download progress" = "批量下载进度"; +"Copied post / reel URL" = "已复制帖子 / 短视频链接"; +"Copied comment text" = "已复制评论文字"; +"Copied note text" = "已复制便签文字"; +"Copied profile info" = "已复制个人资料信息"; +"Copied audio URL" = "已复制音频链接"; +"Copied quality picker URL" = "已复制画质选择器链接"; +"Copied unlocked password" = "已复制解锁密码"; +"Copied description text" = "已复制描述文字"; +"DM seen / read receipts" = "私信已读 / 查看"; +"Story seen / read receipts" = "故事已读 / 查看"; +"User blocked / unblocked" = "用户已屏蔽 / 取消屏蔽"; +"Chat added / removed from exclude" = "聊天已添加 / 移出排除"; +"Story user added / removed from exclude" = "故事用户已添加 / 移出排除"; +"Share-sheet recipient pinned" = "分享对象已置顶"; +"Unsent message detected" = "检测到撤回的消息"; +"Live comments toggled" = "已切换直播评论"; +"Custom GIF sent" = "已发送自定义 GIF"; +"Voice DM sent" = "已发送语音私信"; +"Audio extraction status" = "音频提取状态"; +"Profile Analyzer complete" = "个人资料分析完成"; +"Media extraction failed" = "媒体提取失败"; +"Permission denied" = "权限被拒"; +"Validation error" = "验证错误"; +"Network / API error" = "网络 / API 错误"; +"Action error fallback" = "操作错误回退"; +"Invalid clipboard link" = "剪贴板链接无效"; +"Experimental flag warning" = "实验性标志警告"; +"Settings action confirmed" = "设置操作已确认"; +"Cache clearing progress" = "缓存清理进度"; +"Other / uncategorized" = "其他 / 未分类"; +"Comment copied" = "评论已复制"; +"FFmpeg log copied" = "已复制 FFmpeg 日志"; +"GIF inserted" = "已插入 GIF"; +"Story marked as seen" = "故事已标记为已查看"; +"Saved" = "已保存"; +"Tap to retry" = "点击重试"; +"Looks great" = "看起来不错"; +"Something broke" = "出错了"; +"Just so you know" = "提醒一下"; +"Success preview" = "成功预览"; +"Error preview" = "错误预览"; +"Warning preview" = "警告预览"; +"Info preview" = "信息预览"; +"Preview download…" = "预览下载…"; +"Colors" = "颜色"; +"+ Add new language" = "+ 添加新语言"; +"Each chat can override this in the list" = "每个对话可在列表中单独设置"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "启用后,Instagram 位置请求将返回您选定的伪造位置。地图按钮在朋友地图中添加快捷方式。"; +"Tap a preset to make it active. Swipe left to delete." = "点击预设以激活。向左滑动删除。"; +"Override Instagram location reads." = "覆盖 Instagram 的位置读取。"; +"Show the quick button in Friends Map." = "在朋友地图中显示快捷按钮。"; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "选择绝对日期的写法。“默认”保留 IG 自己的格式。"; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "早于阈值的日期显示为相对时间。较旧的日期回退到绝对格式。“与日期合并”同时显示两者 — “2026 年 1 月 5 日 (2h)” 或 “2h – 2026 年 1 月 5 日”。"; +"Compact style" = "紧凑样式"; +"Example: “1h” instead of “1 hour ago”" = "示例:“1h” 替代 “1 小时前”"; +"Example: “Jan 5, 2026 (2h)”" = "示例:“Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "iOS 音频 API 无法处理此文件%@%@\n\n您可以尝试按原样发送到 Instagram,或提交支持问题。"; +"Combine with date" = "与日期合并"; +"Absolute then relative" = "先绝对再相对"; +"Relative – absolute" = "相对 – 绝对"; +"Relative when young, absolute when older." = "较近时显示相对,较远时显示绝对。"; +"Example: “2h – Jan 5, 2026”" = "例如:“2h – 2026 年 1 月 5 日”"; diff --git a/src/Localization/Resources/zh-Hant.lproj/Localizable.strings b/src/Localization/Resources/zh-Hant.lproj/Localizable.strings index 47991a4..3d7d7a5 100644 --- a/src/Localization/Resources/zh-Hant.lproj/Localizable.strings +++ b/src/Localization/Resources/zh-Hant.lproj/Localizable.strings @@ -55,7 +55,6 @@ * - Keys and values are both quoted; every line ends with a semicolon. */ - ////////////////////////////////////////////////////////////////////////////// // CHROME — TOP BAR, LANGUAGE PICKER, FIRST-RUN // // Shown on the root Settings screen: title, search bar, the globe language // @@ -68,11 +67,12 @@ "settings.firstrun.title" = "RyukGram 設定資訊"; "settings.language.english_only" = "RyukGram 目前僅內建英文。其他語言已接好接線等待翻譯 — 請依 README 的簡短指南協助翻譯。"; "settings.language.help_translate" = "協助翻譯"; -"settings.language.ok" = "確定"; "settings.language.system" = "系統預設"; "settings.language.title" = "語言"; +"settings.language.restart.message" = "設定已更新。請重新啟動 Instagram,讓應用其他地方的選單、按鈕和提示也採用新語言。"; +"settings.language.restart.title" = "重新啟動以全面套用"; +"settings.language.available" = "可用"; "settings.results.many" = "%lu 筆結果"; -"settings.results.none" = "無結果"; "settings.results.one" = "%lu 筆結果"; "settings.search.placeholder" = "搜尋設定"; "settings.title" = "RyukGram 設定"; @@ -82,20 +82,33 @@ // Settings → General tab // ////////////////////////////////////////////////////////////////////////////// +"Action button icon" = "操作按鈕圖示"; "Adds a copy option to the comment long-press menu" = "在留言長按選單中新增複製選項"; -"Adds a download option for GIF comments" = "新增 GIF 留言下載選項"; +"Adds a download button next to share/save on the reels audio page" = "在 Reels 音訊頁的分享/收藏旁新增下載按鈕"; +"Adds download, copy and expand options to GIF and image comments" = "為 GIF 與圖片留言新增下載、複製與展開選項"; +"Allow video in photo sticker" = "相片貼圖允許影片"; +"Alternate icons are not supported" = "不支援替代圖示"; "Anonymous live viewing" = "匿名觀看直播"; +"App Icon" = "應用程式圖示"; +"Audio page" = "音訊頁"; +"Auto-reveals sensitive media" = "自動顯示敏感內容"; "Blocks the viewer-count heartbeat so the broadcaster doesn't see you — you also won't see the viewer count" = "封鎖觀眾數心跳,讓直播主看不到你 — 你也看不到觀眾數"; "Browser" = "瀏覽器"; +"Change the app icon from the bundled icons" = "從內建圖示中變更應用程式圖示"; +"Choose Icon" = "選擇圖示"; +"Choose which surfaces hide ads" = "選擇要在哪些介面隱藏廣告"; "Comments" = "留言"; +"Commerce carousels in comments and shoppable CTAs on reels" = "留言中的商品輪播與連續短片上的購物 CTA"; "Copy comment text" = "複製留言文字"; "Copy description" = "複製描述"; "Copy description text fields by long-pressing on them" = "長按描述文字欄位即可複製"; +"Custom music sticker color" = "自訂音樂貼圖色彩"; "Date format" = "日期格式"; "Disable app haptics" = "關閉應用觸覺反饋"; "Disables haptics/vibrations within the app" = "關閉應用內的觸覺/震動反饋"; "Do not save recent searches" = "不儲存最近搜尋紀錄"; -"Download GIF comments" = "下載 GIF 留言"; +"Download GIF & image comments" = "下載 GIF 與圖片留言"; +"Download image" = "下載圖片"; "Embed domain" = "嵌入網域"; "Embed domain: %@" = "嵌入網域:%@"; "Enable liquid glass buttons" = "啟用液態玻璃按鈕"; @@ -103,15 +116,23 @@ "Enable teen app icons" = "啟用青少年應用程式圖示"; "Enables experimental liquid glass buttons" = "啟用實驗性液態玻璃按鈕"; "Enables liquid glass tab bar, floating navigation, and other UI elements" = "啟用液態玻璃標籤列、浮動導航及其他介面元素"; +"End" = "結束"; "Experimental features" = "實驗性功能"; +"Explore & search" = "探索與搜尋"; +"Failed to change icon" = "變更圖示失敗"; +"Fixed" = "固定"; +"Fixed prevents shrinking. Hide makes it disappear when scrolling down" = "固定可防止縮小。隱藏可在向下滾動時讓其消失"; "Focus/distractions" = "專注/分心"; "General" = "一般"; +"Gradient color" = "漸層色"; "Hide ads" = "隱藏廣告"; "Hide explore posts grid" = "隱藏探索貼文網格"; "Hide friends map" = "隱藏好友地圖"; "Hide Meta AI" = "隱藏 Meta AI"; "Hide metrics" = "隱藏指標"; "Hide notes tray" = "隱藏筆記托盤"; +"Hide on scroll" = "滾動時隱藏"; +"Hide TestFlight popup" = "隱藏 TestFlight 彈窗"; "Hide trending searches" = "隱藏熱門搜尋"; "Hide UI on capture" = "錄影/截圖時隱藏 UI"; "Hides all suggested users for you to follow, outside your feed" = "隱藏所有建議追蹤的用戶,位於動態牆外"; @@ -123,10 +144,14 @@ "Hides the suggested broadcast channels in direct messages" = "隱藏私訊中的建議廣播頻道"; "Hides the trending searches under the explore search bar" = "隱藏探索搜尋列下方的熱門搜尋"; "Hold down on the Instagram logo to change the app icon" = "長按 Instagram 標誌以更換應用程式圖示"; +"Lets the photo sticker picker show videos too, not just photos" = "讓相片貼圖選擇器也顯示影片,不只是相片"; +"Liquid glass tab bar" = "液態玻璃標籤列"; "Live" = "直播"; "Long press on the eyedropper tool in stories to customize the text color more precisely" = "在限時動態中長按吸管工具以更精確自訂文字顏色"; +"Long-press the color wheel on a music or lyric sticker to pick any solid or gradient color" = "長按音樂或歌詞貼圖上的色彩輪盤,即可選擇任意純色或漸層色"; "Long-press the heart button in a live to hide or show the comments" = "在直播中長按愛心按鈕以隱藏或顯示留言"; "Long-press the search tab to open a copied Instagram link" = "長按搜尋分頁以開啟複製的 Instagram 連結"; +"Master switch. When off, all per-surface toggles below are ignored." = "總開關。關閉時,下方所有個別介面的開關都會被忽略。"; "No suggested chats" = "無建議聊天"; "No suggested users" = "無建議用戶"; "Notes" = "筆記"; @@ -135,25 +160,49 @@ "Open links in external browser" = "在外部瀏覽器開啟連結"; "Opens links in Safari instead of Instagram's in-app browser" = "在 Safari 而非 Instagram 內建瀏覽器開啟連結"; "Privacy" = "隱私"; -"Redacts RyukGram buttons from screenshots, screen recordings, and mirroring" = "從截圖、螢幕錄影及鏡像中隱藏 RyukGram 按鈕"; -"Removes all ads from the Instagram app" = "移除 Instagram 應用程式中的所有廣告"; +"Removes ads across enabled surfaces" = "在已啟用的介面移除廣告"; "Removes igsh, utm_source, and other tracking parameters from shared links" = "移除分享連結中的 igsh、utm_source 及其他追蹤參數"; "Removes Instagram tracking wrappers (l.instagram.com) and UTM/fbclid params from URLs" = "移除 Instagram 追蹤包裝器(l.instagram.com)及 URL 中的 UTM/fbclid 參數"; "Replace domain in shared links" = "替換分享連結中的網域"; "Replace IG's relative timestamps (\"3d ago\") with a custom format. Toggle which surfaces it applies to inside the picker." = "將 IG 的相對時間戳記(\"3d ago\")替換為自訂格式。可在選擇器中切換套用範圍。"; "Rewrites copied/shared links to use an embed-friendly domain for previews in Discord, Telegram, etc." = "重寫複製/分享的連結,使用適合 Discord、Telegram 等預覽的嵌入友好網域"; "Search bars will no longer save your recent searches" = "搜尋列將不再儲存您的近期搜尋紀錄"; +"Selected" = "已選擇"; "Sharing" = "分享"; +"Shopping" = "購物"; +"Skip sensitive content covers" = "略過敏感內容遮罩"; +"Solid color" = "純色"; +"Sponsored posts in main, contextual, video, and chaining feeds" = "主動態、情境、影片與串接動態中的贊助貼文"; +"Sponsored posts on the explore grid" = "探索格狀畫面中的贊助貼文"; +"Sponsored reels in the sundial feed" = "日晷動態中的贊助連續短片"; +"Start" = "起始"; +"Story ads and sponsored entries in the story tray" = "限時動態列中的廣告與贊助項目"; "Strip tracking from links" = "移除連結中的追蹤"; "Strip tracking params" = "移除追蹤參數"; +"Suppresses the \"It's time to update Instagram Beta\" nag" = "抑制「It's time to update Instagram Beta」提示"; +"Tap to apply" = "點擊以套用"; +"The selected icon will be saved and shown here the next time you open this page." = "所選圖示將會儲存,並於下次開啟此頁面時顯示於此。"; "Toggle live comments" = "切換直播留言"; "Use detailed color picker" = "使用詳細色彩選擇器"; +"Used across feed, stories, reels, and DMs." = "用於動態、限動、Reels 和私訊"; ////////////////////////////////////////////////////////////////////////////// // DATE FORMAT // // Settings → Date format tab // ////////////////////////////////////////////////////////////////////////////// +"%ld day ago" = "%ld 天前"; +"%ld days ago" = "%ld 天前"; +"%ld hour ago" = "%ld 小時前"; +"%ld hours ago" = "%ld 小時前"; +"%ld minute ago" = "%ld 分鐘前"; +"%ld minutes ago" = "%ld 分鐘前"; +"%ld week ago" = "%ld 週前"; +"%ld weeks ago" = "%ld 週前"; +"%ldd" = "%ld天"; +"%ldh" = "%ld時"; +"%ldm" = "%ld分"; +"%ldw" = "%ld週"; "Alternate" = "替代"; "Always ask" = "總是詢問"; "Balanced" = "平衡"; @@ -171,12 +220,16 @@ "Explore" = "探索"; "Fast" = "快速"; "Feed" = "動態消息"; +"Feed posts" = "動態貼文"; "High" = "高"; "Inbox" = "收件箱"; +"just now" = "剛剛"; "Low" = "低"; "Max" = "最大"; "Medium" = "中等"; "Mute/Unmute" = "靜音/取消靜音"; +"Notes, comments, stories" = "筆記、留言、限時動態"; +"now" = "剛剛"; "Open menu" = "打開選單"; "Pause/Play" = "暫停/播放"; "Profile" = "個人檔案"; @@ -196,6 +249,8 @@ "Action button" = "動作按鈕"; "Adds 'View profile picture' and 'View cover' to story tray long-press menus" = "在限時動態長按選單中新增「查看大頭貼」和「查看封面」"; "Adds a RyukGram action button under each feed post with download/share/copy/expand/repost entries. Tap opens the menu by default; change the tap behavior below." = "在每則動態消息貼文下方新增 RyukGram 動作按鈕,包含下載/分享/複製/展開/轉貼選項。預設點擊會開啟選單;可於下方更改點擊行為。"; +"Choose Instagram's default feed or force the Following feed" = "選擇 Instagram 預設動態或強制使用「追蹤中」動態"; +"Main feed" = "主要動態"; "Controls when and how the feed refreshes. Background refresh occurs when returning to the app after ~10 minutes. Home button refresh occurs when tapping the Home tab while already on it." = "控制動態消息的刷新時間與方式。背景刷新會在約 10 分鐘後返回應用時執行。首頁按鈕刷新會在已在首頁標籤時點擊該標籤執行。"; "Default tap action" = "預設點擊動作"; "Disable background refresh" = "停用背景刷新"; @@ -214,6 +269,11 @@ "Hides the story tray at the top" = "隱藏頂部限時動態列"; "Inserts a button row below like/comment/share on each post" = "在每則貼文的讚/留言/分享下方插入按鈕列"; "Long press on media to expand in full-screen viewer" = "長按媒體以在全螢幕檢視器中展開"; +"Start media muted" = "媒體靜音啟動"; +"Expanded videos open with sound off" = "展開的影片以靜音方式開啟"; +"Enhanced media resolution" = "強化媒體解析度"; +"Media saving" = "媒體儲存"; +"Spoof device profile so IG serves higher-quality images" = "偽裝裝置設定讓 IG 提供更高品質的圖片"; "Media" = "媒體"; "Media zoom" = "媒體縮放"; "No suggested for you" = "沒有為您推薦"; @@ -228,10 +288,23 @@ "Removes suggested posts" = "移除推薦貼文"; "Scroll to top without refreshing when tapping Home" = "點擊首頁時捲動至頂端但不重新整理"; "Show action button" = "顯示操作按鈕"; +"Show date" = "顯示日期"; "Stories tray" = "限時動態列"; "Tapping Home does nothing when already on feed" = "已在動態頁時點擊首頁不執行任何操作"; "Tray long-press actions" = "限時動態列長按操作"; -"What happens on a single tap. Long-press always opens the full menu" = "單擊時的動作。長按始終開啟完整選單"; +"Composer doesn't accept GIFs" = "留言編輯器不接受 GIF"; +"Copy GIF link" = "複製 GIF 連結"; +"Copy image link" = "複製圖片連結"; +"Custom GIF in comments" = "留言中自訂 GIF"; +"Failed to build GIF model" = "無法建立 GIF 模型"; +"GIF link copied" = "已複製 GIF 連結"; +"Image" = "圖片"; +"Image link copied" = "已複製圖片連結"; +"Invalid Giphy URL" = "無效的 Giphy 連結"; +"Long-press the GIF button to paste any Giphy URL" = "長按 GIF 按鈕貼上任意 Giphy 連結"; +"Paste Giphy Link" = "貼上 Giphy 連結"; +"Paste a giphy.com URL or media ID" = "貼上 giphy.com 網址或媒體 ID"; +"Send" = "傳送"; ////////////////////////////////////////////////////////////////////////////// // REELS // @@ -243,27 +316,40 @@ "Auto-scroll reels" = "自動捲動短片"; "Change what happens when you tap on a reel" = "更改點擊短片時的動作"; "Confirm reel refresh" = "確認短片重新整理"; +"Custom speed" = "自訂速度"; "Disable auto-unmuting reels" = "停用短片自動取消靜音"; "Disable scrolling reels" = "停用短片捲動"; "Disable tab button refresh" = "停用分頁按鈕重新整理"; "Doom scrolling limit" = "限制無止盡捲動"; +"e.g. 1.75" = "例如 1.75"; +"Enter a value between 0.5 and 2.0" = "請輸入介於 0.5 到 2.0 之間的數值"; "Forces the progress bar to appear on every reel" = "強制在每個短片上顯示進度條"; +"Hide \"Made with Edits\" badge" = "隱藏\"Made with Edits\"徽章"; +"Hide friends avatars" = "隱藏好友頭像"; "Hide reels header" = "隱藏短片標題列"; +"Hide social context overlay" = "隱藏社交內容浮動覆蓋層"; +"Hides the avatar bubbles next to the Friends tab in reels" = "隱藏 Reels 中好友分頁旁的頭像氣泡"; +"Hides the Edits app promo pill on reels" = "在 Reels 中隱藏 Edits 應用程式推廣膠囊"; +"Hides the floating overlay showing who reposted or commented on reels" = "隱藏 Reels 上顯示誰轉發或留言的浮動覆蓋層"; "Hides the repost button on the reels sidebar" = "隱藏短片側邊欄的轉貼按鈕"; "Hides the top navigation bar when watching reels" = "觀看短片時隱藏頂部導覽列"; "Hiding" = "隱藏"; +"Hold the 3-dot on any reel to open speed picker" = "長按任一連續短片上的「⋯」即可開啟速度選擇器"; "IG default" = "IG 預設"; "IG default: native behavior. RyukGram: re-advances after swiping back." = "IG 預設:原生行為。RyukGram:在向後滑動後會重新前進。"; "Limits" = "限制"; "Limits the amount of reels available to scroll at any given time, and prevents refreshing" = "限制同時可捲動的短片數量,並防止重新整理"; "Only loads %@ %@" = "只載入 %@ %@"; "Places a button above the like/comment/share column on each reel" = "在每個短片的按讚/留言/分享欄上方放置一個按鈕"; +"Playback speed" = "播放速度"; "Prevent doom scrolling" = "防止無止盡捲動"; "Prevents reels from being scrolled to the next video" = "防止短片捲動至下一支影片"; "Prevents reels from unmuting when the volume/silent button is pressed" = "按下音量/靜音按鈕時防止短片取消靜音"; "RyukGram" = "RyukGram"; "Shows an alert when you trigger a reels refresh" = "觸發短片重新整理時顯示警告"; "Shows buttons to reveal and auto-fill the password on locked reels" = "顯示按鈕以揭露並自動填入鎖定短片的密碼"; +"Swipe a reel left to open the author's profile" = "向左滑動短片以開啟作者的個人檔案"; +"Swipe left to profile" = "向左滑動開啟個人檔案"; "Tap Controls" = "點擊控制"; "Tap to mute on photo reels" = "點擊圖片短片以靜音"; "Tapping the Reels tab while on reels does nothing" = "在短片頁面點擊短片標籤無反應"; @@ -275,15 +361,19 @@ // Settings → Profile tab // ////////////////////////////////////////////////////////////////////////////// -"Adds a button next to the burger menu on profiles to copy username, name or bio" = "在個人檔案的漢堡選單旁新增按鈕,可複製用戶名、名稱或簡介"; +"Adds a button to filter & sort any followers/following list. Resets when you leave." = "新增一個按鈕來篩選與排序任何粉絲/追蹤中清單。離開時會重設。"; "Adds a view option to the highlight long-press menu to open the cover in full-screen" = "在精選長按選單新增檢視選項,可全螢幕開啟封面"; "Copy note on long press" = "長按複製備註"; +"Extra stats shown on each post and reel card in profile grids." = "在個人檔案網格中每張貼文和 Reel 卡片上顯示的額外統計。"; "Fake follower count" = "偽造粉絲數"; "Fake following count" = "偽造追蹤數"; "Fake post count" = "偽造貼文數"; "Fake profile stats" = "偽造個人檔案數據"; "Fake verified badge" = "偽造認證徽章"; +"Fetch missing counts" = "獲取缺失的計數"; +"Filter & sort lists" = "篩選與排序清單"; "Follow indicator" = "追蹤指示器"; +"Follower & following lists" = "粉絲與追蹤中清單"; "Follower count" = "粉絲數"; "Following count" = "追蹤數"; "Long press a profile picture to open it in full-screen with zoom, share, and save" = "長按個人檔案圖片可全螢幕開啟,並支援縮放、分享與儲存"; @@ -291,12 +381,21 @@ "Long press to download directly (ignored when zoom is on)" = "長按直接下載(啟用縮放時忽略)"; "Long-press gestures on profile elements — kept separate from the per-feature action buttons." = "個人檔案元素的長按手勢 — 與每項功能的操作按鈕分開維護。"; "Only affects your own profile header. Other users see the real numbers." = "僅影響你自己的個人檔案頁首。其他用戶看到的是真實數字。"; +"Override view count" = "覆寫觀看次數"; "Post count" = "貼文數"; -"Profile copy button" = "個人檔案複製按鈕"; +"Profile card details" = "個人檔案卡片詳情"; +"Profile stats" = "個人檔案統計"; +"Render counts in shortened format." = "以縮寫形式顯示數字。"; "Save profile picture" = "儲存個人檔案圖片"; +"Short numbers" = "縮寫數字"; "Show a checkmark next to your name on your own profile" = "在你自己的個人檔案名稱旁顯示打勾符號"; +"Show full follower count" = "顯示完整粉絲數"; +"Show full post count" = "顯示完整貼文數"; +"Show like count" = "顯示讚數"; +"Show upload date" = "顯示發布日期"; "Shows whether the profile user follows you" = "顯示該用戶是否追蹤你"; "Tap to set" = "點擊以設定"; +"Uses Instagram's API. May hit rate limits." = "使用 Instagram API,可能觸發速率限制。"; "View highlight cover" = "檢視精選封面"; "Zoom profile photo" = "縮放個人檔案照片"; @@ -305,23 +404,62 @@ // Settings → Saving tab // ////////////////////////////////////////////////////////////////////////////// +"Active, queued, and finished downloads" = "進行中、佇列中與已完成的下載"; +"Auto-retry attempts" = "自動重試次數"; +"Auto-retry failed downloads" = "自動重試失敗的下載"; "Confirm before download" = "下載前確認"; "Deprecated. The RyukGram action button (configured per feature in Feed/Reels/Stories) is the new way to download media. Enable this master toggle only if you prefer the old multi-finger long-press directly on the media." = "已棄用。RyukGram 動作按鈕(在動態/短片/限時動態中依功能設定)是下載媒體的新方式。僅當你偏好舊版多指長按直接下載媒體時,才啟用此主開關。"; +"Don't pause downloads, encoding, or profile scans when you leave the app" = "離開 App 時不暫停下載、編碼或個人檔案掃描"; +"Download queue" = "下載佇列"; "Downloads" = "下載"; "Downloads with %@ %@" = "下載 %@ %@"; "Enable long-press gesture" = "啟用長按手勢"; "Finger count for long-press" = "長按所需手指數"; +"How many downloads run at once — extras wait in line and start as slots free up. Failed downloads retry automatically on network errors. Open the manager to watch, cancel, or retry downloads." = "同時進行的下載數量 — 多餘的會排隊等候,待有空檔時開始。失敗的下載在網路錯誤時會自動重試。開啟管理員可查看、取消或重試下載。"; +"Keep running in background" = "在背景持續執行"; "Legacy long-press gesture" = "舊版長按手勢"; "Long-press hold time" = "長按持續時間"; "Master toggle for the deprecated gesture workflow (off by default)" = "已棄用手勢流程的主開關(預設關閉)"; +"Max simultaneous downloads" = "最大同時下載數"; +"Open download manager" = "開啟下載管理員"; "Press finger(s) for %@ %@" = "按壓 %@ %@ 手指"; -"Route saves into a dedicated album in Photos instead of the camera roll root" = "將儲存路徑導向專用相簿,而非相機膠卷根目錄"; +"Retry automatically when a download drops on a network error" = "下載因網路錯誤中斷時自動重試"; +"Route saves into a custom album in Photos instead of the camera roll root" = "將儲存路徑導向專用相簿,而非相機膠卷根目錄"; +"Run up to %@ %@ at once" = "最多同時執行 %@ 個%@"; "Save action" = "儲存動作"; -"Save to RyukGram album" = "儲存至 RyukGram 相簿"; -"Saving" = "儲存中"; +"Save to dedicated album" = "儲存至專屬相簿"; "Show a confirmation dialog before starting a download" = "開始下載前顯示確認對話框"; +"Try %@ more %@ before giving up" = "放棄前再嘗試 %@ 次%@"; "What happens after the gesture downloads" = "手勢下載後的動作"; -"When \"Save to RyukGram album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a dedicated \"RyukGram\" album in your Photos library." = "啟用 \"儲存至 RyukGram 相簿\" 時,下載及分享選單中的 \"儲存至照片\" 將導向你照片庫中的專用 \"RyukGram\" 相簿。"; +"When \"Save to dedicated album\" is on, downloads and share-sheet \"Save to Photos\" picks are routed into a named album in your Photos library. Tap \"Album name\" to change it." = "當「儲存至專屬相簿」開啟時,下載與分享頁的「儲存至照片」選擇會被導入你「照片」圖庫中的指定相簿。點一下「相簿名稱」即可變更。"; + +////////////////////////////////////////////////////////////////////////////// +// DOWNLOAD QUEUE & MANAGER // +// Download queue settings + the in-app download manager: // +// active/queued/finished lists, concurrency, auto-retry, background. // +////////////////////////////////////////////////////////////////////////////// + +"%lu failed" = "%lu 個失敗"; +"%lu of %lu done" = "已完成 %lu / %lu"; +"%lu saved, %lu failed" = "已儲存 %lu 個,%lu 個失敗"; +"Active" = "進行中"; +"Auto-retry" = "自動重試"; +"Clear completed" = "清除已完成"; +"Completed" = "已完成"; +"Download settings" = "下載設定"; +"Downloading %lu items" = "正在下載 %lu 個項目"; +"Downloading…" = "正在下載…"; +"Encoding %d%%" = "編碼中 %d%%"; +"Encoding…" = "編碼中…"; +"Extra downloads wait in line and start as slots free up." = "多餘的下載會排隊等候,待有空檔時開始。"; +"No downloads yet" = "尚無下載"; +"Preview" = "預覽"; +"Queued" = "已排入佇列"; +"Redownload" = "重新下載"; +"Retry" = "重試"; +"Retrying…" = "正在重試…"; +"Waiting for connection…" = "正在等待連線…"; +"Waiting…" = "等待中…"; ////////////////////////////////////////////////////////////////////////////// // STORIES // @@ -354,19 +492,24 @@ "Marks a story as seen when you send a reply or emoji reaction, even with seen blocking on" = "發送回覆或表情反應時標記故事為已查看,即使啟用已查看封鎖"; "Marks stories as seen locally (grey ring) while still blocking the seen receipt on the server" = "在本機標記限時動態為已觀看(灰圈),同時仍封鎖伺服器端的已讀回條"; "Master toggle. When off, the list is ignored" = "主開關。關閉時忽略列表"; -"Other" = "其他"; "Playback" = "播放"; -"Quick list button in stories" = "故事中的快速列表按鈕"; "Search, sort, swipe to remove" = "搜尋、排序、滑動移除"; "Seen receipts" = "已讀回條"; "Sending a reply or emoji reaction automatically advances to the next story" = "發送回覆或表情反應後自動跳到下一則故事"; -"Show mentioned users in eye button and story menu" = "在眼睛按鈕和故事選單中顯示被提及的用戶"; -"Shows an eye button on stories to add/remove users from the list. Off = use the 3-dot menu or long-press only" = "在故事上顯示眼睛按鈕以新增/移除用戶。關閉 = 僅使用三點選單或長按"; +"Adds a 'View mentions' entry to the action button menu and story 3-dot menu" = "在操作按鈕選單與限時動態三點選單新增「查看提及」項目"; +"Mentions overlay button" = "提及覆蓋按鈕"; +"Mentions count badge" = "提及數量徽章"; +"Adds a button next to the action/eye button on the story overlay. Only appears when the current story has mentions or shared posts/reels" = "在限時動態覆蓋層的操作/眼睛按鈕旁新增按鈕。僅在目前限時動態含有提及或分享貼文/短片時顯示"; +"Shows the number of unique mentioned accounts as a red badge on the overlay button" = "在覆蓋按鈕上以紅色徽章顯示被提及帳號的數量"; +"Hide stories midcards" = "隱藏限時動態中插卡"; +"Removes the Trending and Music promo cards from the stories tray" = "從限時動態列移除熱門與音樂推廣卡"; "Stickers" = "貼圖"; -"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force Quiz brings the legacy Quiz sticker back into the story composer tray." = "在互動前預覽投票/測驗/滑桿結果 — 仍可照常點擊投票。「強制測驗」會將舊版測驗貼圖加回限動製作工具列。"; +"Peek at poll/quiz/slider results before interacting — you can still tap to vote normally. Force legacy adds the Quiz and Reveal stickers back to the story composer." = "在互動前預覽投票/測驗/滑桿結果 — 仍可照常點擊投票。「強制顯示舊版」會將測驗與揭曉貼圖加回限動編輯器。"; "Peek at poll/quiz/slider results on reels before interacting — you can still tap to vote normally." = "在 Reels 互動前預覽投票/測驗/滑桿結果 — 仍可照常點擊投票。"; -"Force Quiz sticker in tray" = "強制顯示測驗貼圖"; -"Adds Quiz back to the story sticker picker" = "將測驗加回限動貼圖選擇器"; +"Force legacy stickers in tray" = "強制顯示舊版貼圖"; +"Adds Quiz and Reveal stickers back to the picker" = "將測驗與揭曉貼圖加回貼圖選擇器"; +"Bypass Reveal sticker" = "略過揭曉貼圖"; +"Skip the DM-to-reveal step on stories with a Reveal sticker" = "略過向作者傳訊才能揭曉的步驟,直接觀看含揭曉貼圖的限動"; "Show quiz answer" = "顯示測驗答案"; "Circle the correct option on quiz stickers, or the leading option on polls" = "圈選測驗貼圖中的正確選項,或投票中得票最多的選項"; "Show poll vote counts" = "顯示投票計數"; @@ -403,20 +546,21 @@ "Activity" = "活動"; "Adds a 'Download' option to the long-press menu on voice messages to save them as M4A audio" = "在語音訊息的長按選單中新增「下載」選項,以儲存為 M4A 音訊檔"; +"Allows typing and sending DMs longer than Instagram's limit" = "允許輸入和傳送超過 Instagram 限制的私訊"; "Adds a 'Send File' option to the plus menu in DMs. Supported file types may be limited by Instagram" = "在私訊的加號選單中新增「傳送檔案」選項。支援的檔案類型可能受 Instagram 限制"; "Adds an 'Audio File' option to the plus menu in DMs to send audio files as voice messages" = "在私訊的加號選單中新增「音訊檔案」選項,以語音訊息形式傳送音訊檔案"; "Adds copy text, download GIF/audio to the note long-press menu" = "在備註的長按選單中新增複製文字、下載 GIF/音訊功能"; "Block all: all chats blocked — listed chats are exceptions.\nBlock selected: only listed chats are blocked — everything else is normal.\nBoth lists are saved independently. Long-press a chat in the inbox to add or remove." = "全部封鎖:所有聊天封鎖 — 列出的聊天為例外。\n選擇封鎖:僅封鎖列出的聊天 — 其他皆正常。\n兩個列表獨立儲存。長按收件匣中的聊天以新增或移除。"; "Block keep-deleted for excluded chats" = "對排除的聊天封鎖保留刪除訊息"; "Block keep-deleted for unlisted chats" = "對未列出的聊天封鎖保留刪除訊息"; +"Bypass DM character limit" = "繞過私訊字元限制"; "Chat list" = "聊天列表"; "Confirmation dialog before clearing preserved messages" = "清除保留訊息前的確認對話框"; "Copies note text directly on long press without opening the menu" = "長按直接複製備註文字,不開啟選單"; "Copy text on hold" = "長按複製文字"; -"Custom emojis and background/text colors" = "自訂表情符號及背景/文字顏色"; +"Adds a paintbrush button and long-press shortcut to pick custom background and text colors" = "新增畫筆按鈕和長按捷徑以選擇自訂背景和文字顏色"; "Custom note themes" = "自訂備註主題"; "Disable vanish mode swipe" = "停用 Vanish 模式滑動手勢"; -"Disable screenshot detection" = "停用截圖偵測"; "Disable typing status" = "停用輸入狀態"; "Disable view-once limitations" = "停用一次觀看限制"; "Download voice messages" = "下載語音訊息"; @@ -426,20 +570,26 @@ "Files" = "檔案"; "Full last active date" = "完整最後活躍日期"; "Hide reels blend button" = "隱藏 Reels 混合按鈕"; +"Hide send to group chat" = "隱藏傳送到群組聊天"; +"Pin recipients on long-press" = "長按以置頂收件者"; +"Long-press in the share sheet to pin a chat/user to the top" = "在分享面板中長按以將聊天/使用者置頂"; +"Long-press a recipient to pin or unpin. Pinned recipients render at the top." = "長按收件者以置頂或取消置頂。置頂的收件者顯示在頂部。"; +"Recipient pinned" = "收件者已置頂"; +"Recipient unpinned" = "已取消置頂"; +"Couldn't resolve recipient id" = "無法解析收件者 ID"; "Hide video call button" = "隱藏視訊通話按鈕"; "Hide voice call button" = "隱藏語音通話按鈕"; "Hides the blend button in DMs" = "在私訊中隱藏混合按鈕"; +"Removes the create/send to group chat row when sharing to multiple recipients" = "分享給多位收件人時移除建立/傳送到群組聊天的選項"; "Hides typing indicator from others" = "隱藏他人輸入指示器"; "Indicate unsent messages" = "標示未送出訊息"; "Keep deleted messages" = "保留已刪除訊息"; "Makes view-once messages behave like normal visual messages (loopable/pauseable)" = "讓一次觀看訊息行為如一般視覺訊息(可循環/暫停)"; "Note actions" = "備註操作"; -"Preserve messages that others unsend" = "保留他人收回的訊息"; "Preserves messages that others unsend" = "保留他人收回的訊息"; "Prevents accidental swipe-up activation of vanish mode" = "防止誤觸上滑啟用 Vanish 模式"; "Quick list button in chats" = "聊天中的快速列表按鈕"; "Removes the audio call button from DM thread header" = "從私訊頁首移除語音通話按鈕"; -"Removes the screenshot-prevention features for visual messages in DMs" = "移除私訊中視覺訊息的截圖防護功能"; "Removes the video call button from DM thread header" = "從私訊頁首移除視訊通話按鈕"; "Replay visual messages without expiring. Toggle in the eye button menu, or as a standalone button when the eye button is disabled" = "重播視覺訊息且不會過期。可在眼睛按鈕選單切換,或當眼睛按鈕被禁用時作為獨立按鈕"; "Search, sort, swipe to remove or toggle keep-deleted" = "搜尋、排序、滑動移除或切換保留已刪除"; @@ -456,13 +606,127 @@ "Which chats get read-receipt blocking" = "哪些聊天會被阻擋已讀回條"; "⚠️ Pull-to-refresh in the DMs tab clears all preserved messages. Enable the warning below to get a confirmation dialog." = "⚠️ 私訊分頁下拉刷新會清除所有保留訊息。啟用以下警告可顯示確認對話框。"; +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — DELETED MESSAGES LOG // +// Settings → Messages → Deleted messages log + the in-app log UI // +////////////////////////////////////////////////////////////////////////////// + +"%@%lu deleted" = "%@%lu 已刪除"; +"%lu messages from %lu users" = "來自 %lu 位使用者的 %lu 則訊息"; +"%lu selected" = "已選 %lu 項"; +"Absolute date + time" = "絕對日期+時間"; +"Adjust the filters or clear the search to see more." = "調整篩選條件或清除搜尋以查看更多。"; +"All time" = "全部時間"; +"Browse, filter and search recorded messages" = "瀏覽、篩選並搜尋已記錄的訊息"; +"Captures unsent messages with their text or media" = "擷取被取消傳送的訊息及其文字或媒體"; +"Clear deleted-message log?" = "清除已刪除訊息紀錄?"; +"Clear from this user" = "清除此使用者紀錄"; +"Clear log" = "清除紀錄"; +"Clear log for this account" = "清除此帳號的紀錄"; +"Clear log for this user?" = "清除此使用者的紀錄?"; +"Clear media files" = "清除媒體檔案"; +"Clearing media keeps the records (text, sender, timestamp). Clearing the log removes everything for this account." = "清除媒體會保留紀錄(文字、寄件人、時間戳)。清除紀錄會刪除此帳號的所有內容。"; +"Close" = "關閉"; +"Content unavailable" = "內容無法使用"; +"Copied" = "已複製"; +"Copy URL" = "複製網址"; +"Date range" = "日期範圍"; +"Deleted messages" = "已刪除的訊息"; +"Deleted messages log" = "已刪除訊息紀錄"; +"Deleted: %@\n" = "刪除時間:%@\n"; +"Edit %lu" = "編輯 %lu"; +"Edit history" = "編輯紀錄"; +"Edited" = "已編輯"; +"Empty" = "空"; +"Enable deleted messages log" = "啟用已刪除訊息紀錄"; +"Enable Settings → Messages → Deleted messages log to start recording." = "啟用 設定 → 訊息 → 已刪除訊息紀錄 以開始記錄。"; +"GIF" = "GIF"; +"Hashtag" = "主題標籤"; +"IGTV" = "IGTV"; +"Kind: %@\n" = "類型:%@\n"; +"Last 30 days" = "最近 30 天"; +"Last 7 days" = "最近 7 天"; +"Link" = "連結"; +"Live location" = "即時位置"; +"Location" = "位置"; +"Logging is off" = "紀錄已關閉"; +"Media on disk" = "磁碟上的媒體"; +"Most messages" = "訊息最多"; +"Most recent" = "最新"; +"No deleted messages yet" = "尚無已刪除的訊息"; +"No matches" = "沒有符合項目"; +"Nothing to save" = "無可儲存內容"; +"Oldest first" = "最舊優先"; +"Open log" = "開啟紀錄"; +"Open profile" = "開啟個人檔案"; +"Original" = "原始"; +"Play" = "播放"; +"Post" = "貼文"; +"Records every message someone unsends, grouped by sender" = "記錄每則被取消傳送的訊息,按寄件人分組"; +"Reel" = "Reel"; +"Relative (1m / 3h / 3d ago)" = "相對 (1分鐘 / 3小時 / 3天前)"; +"Removes every preserved deleted message and its captured media for the current account. This cannot be undone." = "移除目前帳號所有保留的已刪除訊息及其擷取的媒體。此動作無法復原。"; +"Removes every preserved deleted message and its captured media for this account." = "移除此帳號所有保留的已刪除訊息及其擷取的媒體。"; +"Removes every preserved deleted message from this sender." = "移除此寄件人所有保留的已刪除訊息。"; +"Removes every saved photo, video and voice clip. Records keep their text and sender info." = "移除所有已儲存的相片、影片和語音片段。紀錄保留其文字和寄件人資訊。"; +"Search messages" = "搜尋訊息"; +"Search senders or messages" = "搜尋寄件人或訊息"; +"Select" = "選擇"; +"Show edit history" = "顯示編輯紀錄"; +"Source URL recorded but media not stored.\n" = "已記錄來源 URL,但未儲存媒體。\n"; +"Sticker" = "貼圖"; +"Tap to open in Instagram" = "點擊在 Instagram 中開啟"; +"Tap to open in Maps" = "點擊在地圖中開啟"; +"Tap to play" = "點擊播放"; +"Tap to play · %@" = "點擊播放 · %@"; +"Text" = "文字"; +"This account" = "此帳號"; +"Unknown" = "未知"; +"Video" = "影片"; +"View" = "檢視"; +"Voice" = "語音"; +"When enabled, deleted messages and their media are saved on this device. Toggle off and clear the log to wipe history." = "啟用時,已刪除的訊息及其媒體會儲存在本裝置。關閉並清除紀錄即可清除歷史記錄。"; +"When someone unsends a message, it will appear here grouped by sender." = "當有人取消傳送訊息時,會在此依寄件人分組顯示。"; + ////////////////////////////////////////////////////////////////////////////// // MESSAGES // // Settings → Messages tab // ////////////////////////////////////////////////////////////////////////////// +"Custom chat background" = "自訂聊天背景"; +"Incoming calls stay silent — no ring, no screen, no notification" = "來電保持靜音 — 不響鈴、不顯示畫面、不通知"; "Messages" = "訊息"; +"Silence incoming calls" = "將來電靜音"; "Threads" = "主題串"; +"Use your own images as chat backgrounds" = "使用你自己的圖片作為聊天背景"; + +////////////////////////////////////////////////////////////////////////////// +// MESSAGES — INSTANTS // +// Settings → Messages → Instants section // +////////////////////////////////////////////////////////////////////////////// + +"%@ (%lu)" = "%@ (%lu)"; +"Adds a gallery button to the instants camera so you can send a photo from your album" = "為即時相機加入相簿按鈕,讓你從相簿傳送相片"; +"Adds a RyukGram action button to the instants viewer header with expand, save, share, and bulk-save entries" = "在 Instants 檢視器頂列新增 RyukGram 動作按鈕,包含展開、儲存、分享和批次儲存項目"; +"All loaded instants" = "已載入的所有即時"; +"Bypasses the Instants screenshot block" = "繞過 Instants 截圖封鎖"; +"Could not locate the instant on screen" = "找不到螢幕上的即時"; +"Current instant" = "目前即時"; +"In-app Gallery" = "應用內圖庫"; +"Instant" = "即時"; +"Instants" = "即時"; +"Instants action button" = "Instants 動作按鈕"; +"No instants currently loaded" = "目前沒有已載入的即時"; +"No media available to save" = "沒有可儲存的媒體"; +"Photos library" = "照片圖庫"; +"Pick from" = "選擇來源"; +"Queued %lu instants" = "已排隊 %lu 個即時"; +"Save all to Gallery" = "全部儲存至相簿"; +"Save all to Photos" = "全部儲存至「照片」"; +"Save to Gallery" = "儲存至相簿"; +"Send from gallery" = "從相簿傳送"; +"Tweaks for the QuickSnap / Instants camera surface." = "QuickSnap / 即時相機介面調整。"; +"Use" = "使用"; ////////////////////////////////////////////////////////////////////////////// // NAVIGATION // @@ -499,46 +763,236 @@ // Settings → Confirm actions tab // ////////////////////////////////////////////////////////////////////////////// +"All" = "全部"; +"Calls" = "通話"; +"Comments & posts" = "留言與貼文"; "Confirm actions" = "確認操作"; -"Confirm video call" = "確認視訊通話"; -"Confirm voice call" = "確認語音通話"; "Confirm changing theme" = "確認更換主題"; "Confirm follow" = "確認追蹤"; "Confirm follow requests" = "確認追蹤請求"; +"Confirm Instants capture" = "確認 Instants 拍照"; +"Confirm Instants emoji reaction" = "確認 Instants 表情反應"; "Confirm like: Posts" = "確認按讚:貼文"; "Confirm like: Reels" = "確認按讚:Reels"; +"Confirm note emoji reaction" = "確認筆記表情反應"; +"Confirm note like" = "確認筆記按讚"; "Confirm posting comment" = "確認發佈留言"; "Confirm repost" = "確認轉貼"; -"Confirm vanish mode" = "確認消失模式"; -"Confirm sticker interaction (stories)" = "確認貼圖互動(限時動態)"; +"Confirm send to group chat" = "確認傳送到群組聊天"; "Confirm sticker interaction (highlights)" = "確認貼圖互動(精選)"; +"Confirm sticker interaction (stories)" = "確認貼圖互動(限時動態)"; "Confirm story emoji reaction" = "確認限時動態表情反應"; "Confirm story like" = "確認限時動態按讚"; +"Confirm switching Instant" = "確認切換 Instant"; "Confirm unfollow" = "確認取消追蹤"; +"Confirm vanish mode" = "確認消失模式"; +"Confirm video call" = "確認視訊通話"; +"Confirm voice call" = "確認語音通話"; "Confirm voice messages" = "確認語音訊息"; +"Follows" = "追蹤中"; +"Likes" = "讚"; +"Messaging" = "訊息"; +"Reaction stickers only" = "僅限反應貼圖"; +"Reactions" = "回應"; +"Send to group chat?" = "傳送到群組聊天?"; +"Shows an alert before creating/sending to a group chat from the share sheet" = "從分享選單建立/傳送到群組聊天前顯示提示"; +"Shows an alert before sending an emoji reaction on a note" = "發送筆記表情反應前顯示警告"; "Shows an alert before sending an emoji reaction on a story" = "發送限時動態表情反應前顯示警告"; +"Shows an alert before sending an emoji reaction on an Instant" = "在向 Instant 傳送表情反應前顯示提示"; +"Shows an alert before taking a photo with the Instants camera" = "在使用 Instants 相機拍照前顯示提示"; +"Shows an alert before tapping to switch to the next/previous Instant" = "在點擊切換到下一個/上一個 Instant 前顯示提示"; "Shows an alert to confirm before sending a voice message" = "發送語音訊息前顯示確認提示"; "Shows an alert to confirm before toggling vanish mode" = "切換消失模式前顯示確認提示"; "Shows an alert when you accept/decline a follow request" = "接受/拒絕追蹤請求時顯示確認提示"; "Shows an alert when you change a chat theme to confirm" = "更換聊天主題時顯示確認提示"; -"Shows an alert when you tap a sticker on someone's story" = "點擊他人限時動態貼圖時顯示確認提示"; -"Shows an alert when you tap a sticker inside a highlight" = "點擊精選中的貼圖時顯示確認提示"; -"Shows an alert when you click the video call button to confirm before calling" = "點擊視訊通話按鈕時顯示確認警告"; -"Shows an alert when you click the voice call button to confirm before calling" = "點擊語音通話按鈕時顯示確認警告"; "Shows an alert when you click the follow button to confirm the follow" = "點擊追蹤按鈕時顯示確認提示"; +"Shows an alert when you click the like button on notes to confirm the like" = "點擊筆記按讚按鈕時顯示確認警告"; "Shows an alert when you click the like button on posts to confirm the like" = "點擊貼文按讚按鈕時顯示確認警告"; "Shows an alert when you click the like button on reels to confirm the like" = "點擊 Reels 的按讚按鈕時顯示確認提示"; "Shows an alert when you click the like button on stories to confirm the like" = "點擊限時動態按讚按鈕時顯示確認警告"; "Shows an alert when you click the post comment button to confirm" = "點擊發佈留言按鈕時顯示確認提示"; -"Shows an alert when you click the repost button to confirm before resposting" = "點擊轉貼按鈕前顯示確認提示"; +"Shows an alert when you click the repost button to confirm before reposting" = "點擊轉貼按鈕前顯示確認提示"; "Shows an alert when you click the unfollow button to confirm" = "點擊取消追蹤按鈕時顯示確認提示"; +"Shows an alert when you click the video call button to confirm before calling" = "點擊視訊通話按鈕時顯示確認警告"; +"Shows an alert when you click the voice call button to confirm before calling" = "點擊語音通話按鈕時顯示確認警告"; +"Shows an alert when you tap a sticker inside a highlight" = "點擊精選中的貼圖時顯示確認提示"; +"Shows an alert when you tap a sticker on someone's story" = "點擊他人限時動態貼圖時顯示確認提示"; +"Stories & highlights" = "限時動態與精選"; + +////////////////////////////////////////////////////////////////////////////// +// SECURITY & PRIVACY // +// Settings → Security & Privacy // +////////////////////////////////////////////////////////////////////////////// + +"%ld h" = "%ld 小時"; +"%ld locked" = "%ld 個已鎖定"; +"%ld min" = "%ld 分鐘"; +"%ldh idle" = "閒置 %ld 小時"; +"%ldm idle" = "閒置 %ld 分鐘"; +"%lds" = "%ld 秒"; +"%lds idle" = "閒置 %ld 秒"; +"%lu hidden" = "%lu 個已隱藏"; +"4 digits" = "4 位數"; +"6 digits" = "6 位數"; +"Add hidden chat" = "新增隱藏的聊天"; +"Add locked chat" = "新增已鎖定的聊天"; +"Allow Instants screenshots" = "允許 Instants 截圖"; +"Always ask when opening again" = "再次開啟時總是詢問"; +"Ask again after Instagram returns" = "Instagram 返回後再次詢問"; +"Auto-relock after idle" = "閒置後自動重新鎖定"; +"Balanced default" = "平衡預設"; +"Best for sensitive sections" = "最適合敏感區塊"; +"Biometric" = "生物辨識"; +"Change passcode" = "更改密碼"; +"Chat hidden" = "已隱藏聊天"; +"Chat locked" = "已鎖定聊天"; +"Chat unlocked" = "已解鎖聊天"; +"Choose a code you'll remember." = "請選擇你能記住的密碼。"; +"Choose how long this section stays unlocked while idle. Never keeps it unlocked until Instagram closes or goes to background." = "選擇此區塊在閒置時保持解鎖的時間。選「永不」會保持解鎖,直到 Instagram 關閉或進入背景。"; +"Confirm current passcode" = "確認目前密碼"; +"Confirm passcode" = "確認密碼"; +"Could not save passcode" = "無法儲存密碼"; +"Create passcode" = "建立密碼"; +"Derivation failed" = "衍生失敗"; +"DM inbox" = "私訊收件匣"; +"Don't share unlock" = "不共用解鎖狀態"; +"Each target has its own enable, timeout, and re-lock configuration." = "每個目標都有各自的啟用、逾時與重新鎖定設定。"; +"Enable lock" = "啟用鎖定"; +"Enter passcode" = "輸入密碼"; +"Enter value" = "輸入值"; +"Enter your current passcode to change it" = "輸入目前密碼以更改"; +"Enter your current passcode to reset it" = "輸入目前的密碼以重設"; +"Enter your passcode to continue" = "輸入密碼以繼續"; +"every use" = "每次使用"; +"Every use" = "每次使用"; +"Hidden chats" = "已隱藏的聊天"; +"Hide chat" = "隱藏聊天"; +"Hide message preview" = "隱藏訊息預覽"; +"Hide this chat?" = "隱藏此聊天?"; +"Hides RyukGram UI from screenshots/recordings and routes around IG's per-feature screenshot alerts." = "從截圖/錄影中隱藏 RyukGram 介面,並繞過 Instagram 各功能的截圖警告。"; +"Idle timeout" = "閒置逾時"; +"Instagram" = "Instagram"; +"Keep this target locked separately" = "讓此目標分開鎖定"; +"Less frequent prompts" = "減少提示頻率"; +"Lock" = "鎖定"; +"Lock chat" = "鎖定聊天"; +"Lock every time" = "每次都鎖定"; +"Lock every time overrides idle timeout. Don't share unlock keeps this target separate." = "「每次都鎖定」會覆寫閒置逾時設定。「不共用解鎖狀態」會讓此目標保持獨立。"; +"Lock targets" = "鎖定目標"; +"Lock the tweak" = "鎖定 tweak"; +"Lock this chat" = "鎖定此聊天"; +"Lock this chat?" = "鎖定此聊天?"; +"Lock with passcode" = "使用密碼鎖定"; +"Locked chats" = "已鎖定的聊天"; +"Long-press a chat to lock it individually" = "長按某個聊天以單獨鎖定它"; +"Long-press a DM thread → Hide chat to add it here. Hidden chats are filtered out of the inbox until you remove them from this list." = "長按一個私訊會話 → 隱藏聊天即可加入此處。已隱藏的聊天會從收件匣中過濾,直到你從此列表中移除。"; +"Long-press a DM to add" = "長按私訊以加入"; +"Longest idle window" = "最長閒置時間"; +"Manage locked chats" = "管理已鎖定的聊天"; +"Master switch. Turn off to disable every lock target without losing per-target configuration." = "主開關。關閉可在不遺失各目標設定的情況下停用所有鎖定目標。"; +"Never" = "永不"; +"No passcode set" = "未設定密碼"; +"Nothing here yet." = "這裡還沒有內容。"; +"Off" = "關閉"; +"On" = "開啟"; +"On — %@" = "開啟 — %@"; +"On — %@ + %ld more" = "開啟 — %@ 等 %ld 項"; +"On — no targets enabled" = "開啟 — 未啟用任何目標"; +"Passcode" = "密碼"; +"Passcode + biometric. Gate the tweak settings popup, gallery, deleted-messages log, individual chats and the whole app." = "密碼 + 生物辨識。鎖定 tweak 設定彈窗、相簿、已刪除訊息紀錄、個別聊天以及整個應用程式。"; +"Passcode changed" = "已更改密碼"; +"Passcode reset" = "已重設密碼"; +"Passcode set" = "已設定密碼"; +"Passcode too short" = "密碼太短"; +"Passcodes did not match — try again" = "密碼不一致 — 請重試"; +"Per-chat locks" = "每個聊天的鎖定"; +"Prompt before Instagram opens" = "Instagram 開啟前要求驗證"; +"Prompt before Profile Analyzer opens" = "個人檔案分析器開啟前要求驗證"; +"Prompt before the deleted-messages log opens" = "已刪除訊息紀錄開啟前要求驗證"; +"Prompt before the gallery opens" = "相簿開啟前要求驗證"; +"Prompt before tweak settings open" = "tweak 設定開啟前要求驗證"; +"Prompt on every entry to the DM inbox, including launch-to-messages" = "每次進入私訊收件匣時都要求驗證,包括直接啟動到訊息"; +"Re-enter the same passcode" = "再次輸入相同的密碼"; +"Re-lock on background" = "進入背景時重新鎖定"; +"re-lock on bg" = "背景重新鎖定"; +"Recently hidden" = "最近隱藏"; +"Recently locked" = "最近鎖定"; +"Redact RyukGram buttons from screenshots, screen recordings, and mirroring" = "在截圖、螢幕錄影和鏡像中隱藏 RyukGram 按鈕"; +"Remove screenshot alert" = "移除截圖警告"; +"Replace inbox preview with • • •" = "將收件匣預覽替換為 • • •"; +"Require passcode for this section" = "此區塊需要密碼"; +"Requires your current passcode" = "需要你目前的密碼"; +"Reset passcode" = "重設密碼"; +"Reset passcode?" = "重設密碼?"; +"Screenshots & capture" = "截圖與錄製"; +"Security & Privacy" = "安全與隱私"; +"Set a passcode to protect Settings, Gallery, deleted messages, chats, the DM inbox, Profile Analyzer, or Instagram itself." = "設定密碼以鎖定「設定」、相簿、已刪除訊息紀錄、個別聊天、私訊收件匣、個人檔案分析器或 Instagram 本身。"; +"Set passcode" = "設定密碼"; +"Short idle window" = "短閒置時間"; +"Stay unlocked until app close or background" = "保持解鎖直到 App 關閉或進入背景"; +"Suppress IG's \"X took a screenshot\" notification across stories, DMs and disappearing media" = "在限時動態、私訊與限閱媒體中隱藏 IG 的「X 已截圖」通知"; +"Tap Unlock" = "點一下「解鎖」"; +"Tap Unlock or enter your passcode" = "點一下「解鎖」或輸入密碼"; +"This clears the passcode, disables every lock target, and unlocks all chats. Gallery and Keep-Deleted data are untouched." = "此操作將清除密碼、停用所有鎖定目標並解鎖所有聊天。相簿和已刪除訊息的資料不會受到影響。"; +"Thread %@" = "對話 %@"; +"Tweak settings" = "Tweak 設定"; +"Unlock" = "解鎖"; +"Unlock %@" = "解鎖 %@"; +"Unlock chat" = "解鎖聊天"; +"Unlock Instagram" = "解鎖 Instagram"; +"Unlock this chat" = "解鎖此聊天"; +"Use %@" = "使用 %@"; +"Username (looks up the DM thread) or raw thread ID" = "使用者名稱(查找私訊會話)或原始會話 ID"; +"Username or thread ID" = "使用者名稱或會話 ID"; +"Wrong passcode" = "密碼錯誤"; +"Wrong passcode • %ld attempts" = "密碼錯誤 • 已嘗試 %ld 次"; ////////////////////////////////////////////////////////////////////////////// // BACKUP & RESTORE // // Settings → Backup & Restore tab // ////////////////////////////////////////////////////////////////////////////// +"%lu account(s)" = "%lu 個帳號"; +"%lu account(s) · %lu image(s) · %@" = "%lu 個帳號 · %lu 張圖片 · %@"; +"%lu file(s) · %@" = "%lu 個檔案 · %@"; +"%lu preferences" = "%lu 項偏好設定"; +"(none)" = "(無)"; +"Apply backup?" = "套用備份?"; +"Applying backup…" = "正在套用備份…"; +"archive error" = "封存錯誤"; +"Archived snapshots" = "已封存的快照"; "Backup & Restore" = "備份與還原"; +"Backup exported" = "備份已匯出"; +"Backup failed" = "備份失敗"; +"Backup has no importable sections." = "備份中沒有可匯入的項目。"; +"Chat & story filters" = "聊天與限時動態篩選"; +"Chat backgrounds" = "聊天背景"; +"Clear selected data" = "清除選取的資料"; +"Corrupt entry path." = "項目路徑損毀。"; +"Could not decompress archive." = "無法解壓縮封存檔。"; +"Could not open archive." = "無法開啟封存檔。"; +"Could not open staging file." = "無法開啟暫存檔。"; +"Could not read the backup archive." = "無法讀取備份封存檔。"; +"Could not write archive." = "無法寫入封存檔。"; +"Could not write backup file." = "無法寫入備份檔。"; +"Could not write extracted file." = "無法寫入解壓縮後的檔案。"; +"Existing data for the ticked items will be replaced. A restart may be needed for everything to take effect." = "已勾選項目的現有資料將被取代。可能需要重新啟動才能完全生效。"; +"Export or import RyukGram data — settings, per-account filters, hidden & locked chats, Profile Analyzer, gallery, chat backgrounds and deleted messages. Pick any combination on each page. Settings stay a plain JSON file; bundles with media export as a compressed .ryukbak." = "匯出或匯入 RyukGram 資料 — 設定、各帳號篩選、隱藏與鎖定的聊天、個人檔案分析器、圖庫、聊天背景與已刪除訊息。每一頁可任意組合。設定維持為純 JSON 檔;含媒體的套組會匯出為壓縮的 .ryukbak。"; +"Hidden & locked chats" = "隱藏與鎖定的聊天"; +"Import" = "匯入"; +"Inspect the full manifest" = "檢視完整資訊清單"; +"Load a .json or .ryukbak backup" = "載入 .json 或 .ryukbak 備份"; +"Not a RyukGram backup archive." = "並非 RyukGram 備份封存檔。"; +"PK %@" = "PK %@"; +"Preparing backup…" = "正在準備備份…"; +"Reading backup…" = "正在讀取備份…"; +"Save settings or a full backup" = "儲存設定或完整備份"; +"Tick what to apply. Rows not in this backup are hidden." = "勾選要套用的項目。此備份中不存在的列會被隱藏。"; +"Tick what to include. Tap a row to inspect it. Adding gallery, chat backgrounds or deleted messages produces a compressed .ryukbak bundle." = "勾選要包含的項目。點一下任一列可檢視。加入圖庫、聊天背景或已刪除訊息會產生壓縮的 .ryukbak 套組。"; +"Truncated entry data." = "項目資料被截斷。"; +"Truncated entry length." = "項目長度被截斷。"; +"Truncated entry path." = "項目路徑被截斷。"; +"Unsafe entry path." = "不安全的項目路徑。"; ////////////////////////////////////////////////////////////////////////////// // ADVANCED // @@ -554,27 +1008,32 @@ "Clear" = "清除"; "Clear cache" = "清除快取"; "Clear cache (%@)" = "清除快取 (%@)"; -"Clear cache?" = "要清除快取嗎?"; "Clearing cache…" = "清除快取中…"; "Clearing still scans on demand." = "關閉時仍會按需掃描。"; "Daily" = "每日"; "Disable safe mode" = "停用安全模式"; "Enable tweak settings quick-access" = "啟用調整設定快速存取"; -"Free %@ of Instagram cache. A restart is recommended." = "釋放 %@ 的 Instagram 快取。建議重新啟動。"; -"Freed %@. Restart to apply." = "已釋放 %@。重新啟動以套用。"; +"Fix duplicate notifications" = "修復重複通知"; +"Free %@ of Instagram cache." = "釋放 %@ 的 Instagram 快取。"; +"Freed %@" = "已釋放 %@"; "Hold on the home tab to open RyukGram settings" = "長按主頁標籤以開啟 RyukGram 設定"; -"Instagram" = "Instagram"; "Monthly" = "每月"; "Nothing to clear" = "無可清除內容"; "Off skips the size scan when Advanced opens." = "關閉時,開啟進階頁不會掃描大小。"; "Pause playback when opening settings" = "開啟設定時暫停播放"; +"Always show what's new" = "一律顯示新功能"; +"Keep the blue dot on every new feature instead of clearing it once viewed" = "在每個新功能上保留藍點,而非檢視後清除"; +"Preserve messages database" = "保留訊息資料庫"; "Pauses any playing video/audio when settings opens" = "設定開啟時暫停任何正在播放的影片/音訊"; "Prevents Instagram from resetting settings after crashes (at your own risk)" = "防止 Instagram 崩潰後重置設定(風險自負)"; +"Prevents two banners for the same message when IG is in the foreground" = "當 IG 在前景時,防止同一則訊息顯示兩個橫幅"; "Remove Instagram's cached images, videos, and temporary files." = "移除 Instagram 的快取圖片、影片及暫存檔案。"; "Reset onboarding state" = "重設引導狀態"; "Run a silent cache clear on launch when the interval has elapsed." = "啟動時在達到間隔後靜默清除快取。"; "Show cache size" = "顯示快取大小"; +"Skip the messages database when clearing — keeps DMs, drafts, and saved messages." = "清除時略過訊息資料庫 — 保留私訊、草稿與已保存訊息。"; "Show tweak settings on app launch" = "啟動應用程式時顯示調整設定"; +"Suppresses the second notification IG enqueues in-app while the notification extension is also delivering it." = "當通知擴充功能同時投遞通知時,抑制 IG 在應用程式內排隊的第二則通知。"; "Weekly" = "每週"; ////////////////////////////////////////////////////////////////////////////// @@ -629,7 +1088,7 @@ "Delete an imported override and fall back to the shipped strings" = "刪除匯入的覆寫檔並回退到內建字串"; "Deleted %@ override. Restart to apply." = "已刪除 %@ 覆寫檔。重新啟動以套用。"; "Enable FLEX gesture" = "啟用 FLEX 手勢"; -"Export English strings" = "匯出英文字串"; +"Export strings" = "匯出字串"; "Hold 5 fingers on the screen to open FLEX" = "用五指按住螢幕以開啟 FLEX"; "I have %@%@" = "我有 %@%@"; "Import a .strings file for a language" = "為語言匯入 .strings 檔"; @@ -645,8 +1104,9 @@ "Opens FLEX when the app is focused" = "應用程式聚焦時開啟 FLEX"; "Opens FLEX when the app launches" = "應用程式啟動時開啟 FLEX"; "Pick a language to delete the imported file" = "選擇要刪除匯入檔的語言"; +"Pick a language to export" = "選擇要匯出的語言"; "Reset localization" = "重設本地化"; -"Share the base English .strings file for translating" = "分享英文基準 .strings 檔以供翻譯"; +"Pick a language and share its .strings file" = "選擇要分享其 .strings 檔的語言"; "Static Cell" = "靜態欄位"; "Stepper cell" = "步進器欄位"; "Switch Cell" = "切換欄位"; @@ -663,34 +1123,39 @@ ////////////////////////////////////////////////////////////////////////////// "%@ settings" = "%@ 設定"; +"%lu items" = "%lu 個項目"; "Cancelled" = "已取消"; +"Carousel" = "輪播"; +"Carousel · %lu items" = "輪播 · %lu 個項目"; "Copied %lu URLs" = "已複製 %lu 個網址"; "Copied caption" = "已複製說明文字"; "Copied download URL" = "已複製下載網址"; +"Copied quality info" = "已複製品質資訊"; +"Copied video URL" = "已複製影片網址"; "Copy all URLs" = "複製所有網址"; "Copy caption" = "複製說明文字"; "Copy download URL" = "複製下載網址"; "Could not extract any URLs" = "無法擷取任何網址"; +"Could not extract audio URL" = "無法擷取音訊網址"; "Could not extract media URL" = "無法擷取媒體網址"; "Could not extract photo URL" = "無法擷取照片網址"; "Could not extract video URL" = "無法擷取影片網址"; "Done" = "完成"; -"Download all (%lu)" = "全部下載 (%lu)"; "Download all stories and share?" = "下載所有限時動態並分享?"; "Download all to Photos" = "全部下載到「照片」"; "Download and share all" = "全部下載並分享"; -"Download and share?" = "下載並分享?"; "Download failed" = "下載失敗"; "Downloaded %lu items" = "已下載 %lu 項目"; -"Downloading %@..." = "正在下載 %@..."; -"Downloading..." = "正在下載..."; +"Downloading audio…" = "正在下載音訊…"; "Failed to save" = "儲存失敗"; +"File" = "檔案"; +"HD" = "HD"; "HD download complete" = "高清下載完成"; +"HD video" = "HD 影片"; "Mute audio" = "靜音音訊"; "No caption on this post" = "此貼文無說明文字"; "No carousel children" = "無輪播子項目"; "No cover image" = "無封面圖片"; -"No files downloaded" = "無檔案下載"; "No media" = "無媒體"; "No media to expand" = "無媒體可展開"; "No media to show" = "無媒體可顯示"; @@ -699,22 +1164,22 @@ "No URLs found" = "找不到網址"; "No video URL" = "無影片網址"; "Not a carousel" = "非輪播貼文"; -"Nothing to save" = "無可儲存內容"; "Nothing to share" = "無可分享內容"; -"Opening creator..." = "正在開啟創作者..."; +"Opening creator…" = "正在開啟創作者..."; "Photo library access denied" = "照片庫存取被拒"; "Photos access denied" = "照片存取被拒"; -"Preparing repost..." = "準備重新發布..."; +"Preparing repost…" = "準備重新發布..."; +"Raw image" = "原始圖片"; "Repost" = "重新發布"; "Repost unavailable" = "無法重新發布"; -"Save all stories to Photos?" = "要將所有限時動態儲存到「照片」嗎?"; "Save failed" = "儲存失敗"; -"Save to Photos?" = "要儲存到「照片」嗎?"; "Saved %lu items" = "已儲存 %lu 項目"; "Saved to Photos" = "已儲存至照片"; "Saved to RyukGram" = "已儲存至 RyukGram"; -"Tap to cancel" = "點擊以取消"; +"Saving to Photos" = "正在儲存至「照片」"; +"Saving…" = "正在儲存..."; "Unmute audio" = "取消靜音"; +"Video · %@" = "影片 · %@"; "View cover" = "查看封面"; "View mentions" = "查看提及"; @@ -724,68 +1189,76 @@ // inside DM threads. // ////////////////////////////////////////////////////////////////////////////// +" %lu votes · avg %.0f%% " = " %lu 票 · 平均 %.0f%% "; +"%@ can't be converted" = "無法轉換 %@"; +"%@ unsent a message" = "%@ 撤回了一則訊息"; +"%@ unsent a message from %@" = "%1$@ 撤回了 %2$@ 的訊息"; "A message was unsent" = "訊息已撤回"; "Add" = "新增"; "Add to block list" = "加入封鎖名單"; -"Add to block list?" = "要加入封鎖名單嗎?"; "Added to block list" = "已加入封鎖名單"; "Added to exclude list" = "已加入排除清單"; "Audio not loaded yet. Play the message first and try again." = "音訊尚未載入。請先播放訊息後再試。"; "Audio sent" = "音訊已傳送"; +"Audio URL not available" = "音訊網址無法取得"; "Audio/Video from Files" = "來自檔案的音訊/影片"; "Blocked" = "已封鎖"; "Cancel" = "取消"; "Clear preserved messages?" = "要清除保留的訊息嗎?"; -"Converting..." = "轉換中..."; +"Converting…" = "轉換中..."; +"Copy link" = "複製連結"; "Copy text" = "複製文字"; +"Could not copy selected video" = "無法複製所選影片"; "Could not find media" = "找不到媒體"; "Could not find story media" = "找不到故事媒體"; "Could not get audio data. Try again after refreshing the chat." = "無法取得音訊資料。請刷新聊天後再試。"; -"Could not get video URL" = "無法取得影片網址"; "Disable read receipts" = "停用已讀回條"; "Disappearing media" = "消失訊息媒體"; -"Done!" = "完成!"; "Download audio" = "下載音訊"; -"Downloading audio..." = "音訊下載中..."; "Enable read receipts" = "啟用已讀回條"; "Error: %@" = "錯誤:%@"; "Exclude chat" = "排除聊天"; "Exclude from seen" = "排除已讀"; "Exclude story seen" = "排除故事已讀"; "Excluded" = "已排除"; -"Extracting audio..." = "擷取音訊中..."; -"Failed to encode GIF" = "GIF 編碼失敗"; +"Extracting audio…" = "擷取音訊中..."; +"FFmpeg conversion failed" = "FFmpeg 轉換失敗"; "File sending not supported" = "不支援檔案傳送"; "Follow" = "追蹤"; "Following" = "已追蹤"; +"Format not supported without FFmpegKit" = "沒有 FFmpegKit 不支援此格式"; "Inserts a button on disappearing media overlays" = "在消失訊息媒體覆蓋層上插入按鈕"; "Inserts a speaker button to mute/unmute disappearing media" = "插入喇叭按鈕以靜音/取消靜音消失訊息媒體"; "Inserts an eye button to mark the current disappearing media as viewed" = "插入眼睛按鈕,將當前消失訊息媒體標記為已檢視"; +"Link copied" = "已複製連結"; "Mark as viewed" = "標記為已檢視"; "Mark messages as seen" = "標記訊息為已讀"; "Mark seen" = "標記已讀"; -"Marked as seen" = "標記為已查看"; "Marked as viewed" = "標記為已閱覽"; "Marked messages as seen" = "標記訊息為已查看"; "Mentions" = "提及"; +"Message from %@ was unsent" = "%@ 的訊息已撤回"; "Message sender not found" = "找不到訊息發送者"; "Messages settings" = "訊息設定"; -"Audio URL not available" = "音訊網址無法取得"; "Mute story audio" = "靜音故事音訊"; +"no audio track could be read" = "無法讀取音訊軌道"; "No audio URL found. Try again after refreshing the chat." = "找不到音訊 URL。請刷新聊天後再試。"; "No mentions in this story" = "此故事中無提及"; "No thread key" = "找不到討論串金鑰"; +"No video selected" = "未選擇影片"; "No voice send method found" = "找不到語音發送方式"; -"Note not found" = "找不到筆記"; +"Note has no downloadable content" = "備註沒有可下載的內容"; "Note text copied" = "筆記文字已複製"; "Open GitHub" = "開啟 GitHub"; +"Pick audio or video" = "選擇音訊或影片"; "Read receipts disabled" = "已停用已讀回條"; "Read receipts enabled" = "已啟用已讀回條"; "Read receipts will be blocked for this chat." = "此聊天將封鎖已讀回條。"; "Read receipts will no longer be blocked for this chat." = "此聊天將不再封鎖已讀回條。"; +"Refreshing the DMs tab will clear %lu preserved unsent message. This cannot be undone." = "重新整理私訊分頁會清除 %lu 則保留的訊息。此操作無法復原。"; +"Refreshing the DMs tab will clear %lu preserved unsent messages. This cannot be undone." = "重新整理私訊分頁會清除 %lu 則保留的訊息。此操作無法復原。"; "Remove" = "移除"; "Remove from block list" = "從封鎖清單移除"; -"Remove from block list?" = "確定要從封鎖清單移除?"; "Remove from exclude list" = "從排除清單移除"; "Removed" = "已移除"; "Removed from list" = "已從清單移除"; @@ -794,15 +1267,16 @@ "Send anyway" = "仍要傳送"; "Send Audio" = "傳送音訊"; "Send failed: %@" = "傳送失敗:%@"; +"Send File" = "傳送檔案"; "Send service not found" = "找不到傳送服務"; "Show audio toggle" = "顯示音訊切換"; "Show mark-as-viewed button" = "顯示標記已檢視按鈕"; "Story read receipts disabled" = "故事已讀回條已停用"; "Story read receipts enabled" = "故事已讀回條已啟用"; "This chat will resume normal read-receipt behavior." = "此聊天將恢復正常的已讀回條行為。"; +"This file" = "此檔案"; "Total: %@" = "總計:%@"; "Un-exclude chat" = "取消排除聊天"; -"Un-exclude chat?" = "確定要取消排除聊天?"; "Un-exclude story seen" = "取消排除故事已讀"; "Un-excluded" = "已取消排除"; "Unblocked" = "已解除封鎖"; @@ -815,7 +1289,58 @@ "Visual messages will expire" = "視覺訊息將會過期"; "Visual messages: expiring" = "視覺訊息:即將過期"; "Visual messages: unlimited replay" = "視覺訊息:無限重播"; -"Will sync when leaving stories" = "離開故事時會同步"; + +////////////////////////////////////////////////////////////////////////////// +// CHAT BACKGROUNDS // +// Custom per-chat image backgrounds: importer, library, per-image // +// settings, chat picker, defaults. // +////////////////////////////////////////////////////////////////////////////// + +"Add Background" = "新增背景"; +"Add Chat Background" = "新增聊天背景"; +"Adds your own image backgrounds to Instagram chats" = "為 Instagram 聊天加入你自己的圖片背景"; +"After enabling, open any chat, tap the theme button, then tap the photo icon at the top-right." = "啟用後,開啟任一聊天,點一下主題按鈕,再點右上角的相片圖示。"; +"Blur" = "模糊"; +"Browse chats" = "瀏覽聊天"; +"Browse chats (%ld)" = "瀏覽聊天 (%ld)"; +"Change Background" = "變更背景"; +"Change default" = "變更預設"; +"Chat Backgrounds" = "聊天背景"; +"Choose an image used when no chat override exists" = "選擇一張圖片,於聊天未設定個別背景時使用"; +"Choose Image" = "選擇圖片"; +"Clear default" = "清除預設"; +"Couldn't import image" = "無法匯入圖片"; +"Custom Chat Background" = "自訂聊天背景"; +"Default background" = "預設背景"; +"Delete library images, default background, and chat overrides" = "刪除圖庫圖片、預設背景與聊天個別設定"; +"Dim in dark mode" = "深色模式時調暗"; +"Edit image settings" = "編輯圖片設定"; +"Enable custom backgrounds" = "啟用自訂背景"; +"Enter a username, chat name, or thread ID." = "輸入使用者名稱、聊天名稱或對話 ID。"; +"Group" = "群組"; +"Image Settings" = "圖片設定"; +"Library" = "圖庫"; +"Library, default, and per-chat overrides will be deleted." = "圖庫、預設與各聊天個別設定都將被刪除。"; +"No Custom" = "無自訂"; +"Opacity" = "不透明度"; +"Photo Library" = "照片圖庫"; +"Pick default" = "選擇預設"; +"Pinch + drag to position" = "捏合 + 拖曳以調整位置"; +"Quit and reopen Instagram for the change to take effect." = "結束並重新開啟 Instagram 以使變更生效。"; +"Recently set" = "最近設定"; +"Remove the global fallback background" = "移除全域備用背景"; +"Replace the default background image" = "替換預設背景圖片"; +"Reset all backgrounds" = "重設所有背景"; +"Reset all backgrounds?" = "重設所有背景?"; +"Reset sets opacity to 1.0, blur to 0, dim to 0." = "重設會將不透明度設為 1.0、模糊設為 0、調暗設為 0。"; +"RyukGram Gallery" = "RyukGram 圖庫"; +"Search username, name, or thread ID" = "搜尋使用者名稱、名稱或對話 ID"; +"Set as default" = "設為預設"; +"Tap plus to add. Tap a background to edit, set as default, or delete." = "點一下加號以新增。點一下背景可編輯、設為預設或刪除。"; +"This Chat Background" = "此聊天背景"; +"Thread ID" = "對話 ID"; +"Used only when a chat does not have its own custom background." = "僅在聊天沒有自己的自訂背景時使用。"; +"View and manage chats with custom backgrounds" = "查看與管理具有自訂背景的聊天"; ////////////////////////////////////////////////////////////////////////////// // GENERAL FEATURES // @@ -825,213 +1350,231 @@ "Add location" = "新增位置"; "Add preset" = "新增預設"; +"Affects everything above. When off, RyukGram's theme and surface overrides only apply while iOS is in dark mode — leaving light mode untouched." = "影響上方所有項。關閉時,RyukGram 的主題和介面覆蓋僅在 iOS 處於深色模式時生效——淺色模式保持不變。"; +"Apply & restart" = "套用並重新啟動"; +"Background" = "背景"; +"Behavior" = "行為"; "Change location" = "更改位置"; -"Click the Apply button after this to see the emoji" = "點擊套用按鈕後即可看到表情符號"; "Clipboard is not an Instagram URL" = "剪貼簿內容不是 Instagram 網址"; "Comments hidden" = "留言已隱藏"; "Comments shown" = "留言已顯示"; "Copied text to clipboard" = "文字已複製到剪貼簿"; "Copy" = "複製"; -"Copy all" = "全部複製"; "Copy bio" = "複製個人簡介"; -"Copy from profile" = "從個人檔案複製"; "Copy name" = "複製名稱"; "Could not find cover image" = "找不到封面圖片"; "Current: %@" = "目前:%@"; +"Dark" = "深色"; "Disable" = "停用"; "Download GIF" = "下載 GIF"; "Dropped pin" = "釘選位置"; +"Emoji" = "表情符號"; "Enable" = "啟用"; "Enable Location Services for Instagram in Settings to use your current location." = "請在設定中為 Instagram 啟用定位服務以使用目前位置。"; -"Enter Emoji Text" = "輸入表情符號文字"; +"Enter emoji" = "輸入表情符號"; "Fake location" = "假位置"; +"Force theme" = "強制主題"; +"Keyboard theme" = "鍵盤主題"; +"Light" = "淺色"; "Location access denied" = "定位存取被拒"; "Location Services off" = "定位服務已關閉"; "Name" = "名稱"; "Nothing to copy" = "無內容可複製"; +"Off, Light, Dark, or OLED" = "關閉、淺色、深色或 OLED"; +"OLED" = "OLED"; +"OLED chat theme" = "OLED 聊天主題"; "Open Settings" = "開啟設定"; +"Optional per-surface overrides. Each one is independent of the theme above." = "可選的按介面覆蓋。每項獨立於上方的主題。"; +"Override iOS appearance regardless of system mode" = "無論系統模式如何都覆蓋 iOS 外觀"; +"Override the keyboard appearance when typing" = "打字時覆寫鍵盤外觀"; "Pick location" = "選擇位置"; +"Pure black DM thread + incoming bubbles" = "純黑色私訊背景與收到訊息氣泡"; +"Reset theme" = "重置主題"; +"Restart Instagram to apply your theme changes" = "重新啟動 Instagram 以套用主題變更"; "Save" = "儲存"; "Save preset" = "儲存預設"; "Saved locations" = "已儲存位置"; "Select color" = "選擇顏色"; "Set location" = "設定位置"; -"Settings…" = "設定…"; -"Turn Location Services on in Settings → Privacy to use your current location." = "請在設定 → 隱私中開啟定位服務以使用目前位置。"; -"Type emoji..." = "輸入表情符號…"; - +"The theme RyukGram applies to Instagram." = "RyukGram 套用於 Instagram 的主題。"; "Theme" = "主題"; -"Appearance" = "外觀"; -"Keyboard" = "鍵盤"; -"Force dark mode" = "強制深色模式"; -"Keep Instagram in dark appearance regardless of iOS system setting" = "無論 iOS 系統設定為何,皆讓 Instagram 保持深色外觀"; -"Full OLED" = "完整 OLED"; -"Replace Instagram's dark grays with pure black across the entire app" = "將 Instagram 整個應用程式的深灰色替換為純黑"; -"OLED chat theme" = "OLED 聊天主題"; -"Pure black DM thread background and incoming message bubbles" = "純黑色私訊背景及收到訊息氣泡"; -"Keyboard theme" = "鍵盤主題"; -"Override the keyboard appearance when typing inside Instagram" = "在 Instagram 內打字時覆寫鍵盤外觀"; -"Dark uses the system dark keyboard. OLED forces the keyboard backdrop to pure black." = "深色使用系統深色鍵盤。OLED 強制鍵盤背景為純黑。"; -"Dark" = "深色"; -"OLED" = "OLED"; -"Apply & restart" = "套用並重新啟動"; -"Restart Instagram to apply your theme changes" = "重新啟動 Instagram 以套用主題變更"; -"Theme changes only take effect after an app restart. Tap Apply below when you're done choosing." = "主題變更僅在應用程式重新啟動後才會生效。選擇完成後點擊下方的「套用」。"; +"Turn every theme option off and restart" = "關閉所有主題選項並重新啟動"; +"Turn Location Services on in Settings → Privacy to use your current location." = "請在設定 → 隱私中開啟定位服務以使用目前位置。"; +"Type an emoji to use as the note bubble icon." = "輸入用作便箋氣泡圖示的表情符號。"; +"View profile picture" = "查看大頭貼照"; ////////////////////////////////////////////////////////////////////////////// // PROFILE ANALYZER // // Settings → Profile Analyzer // ////////////////////////////////////////////////////////////////////////////// +" BETA " = " BETA "; +"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu 個帳號?為避免速率限制,僅處理前 %ld 個。"; +"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu 個帳號?此操作會依序執行,每個之間有短暫停頓。"; +"%@ followers · %@ following" = "%@ 位粉絲 · %@ 個追蹤中"; +"%@ · %ld" = "%@ · %ld"; +"%dd ago" = "%d 天前"; +"%dh ago" = "%d 小時前"; +"%dm ago" = "%d 分鐘前"; +"%lu accounts followed" = "已追蹤 %lu 個帳號"; +"%lu accounts unfollowed" = "已取消追蹤 %lu 個帳號"; "%lu followers · %lu following" = "%lu 粉絲 · %lu 追蹤中"; "%lu of %lu" = "%lu / %lu"; +"%lu saved · comparing against %@" = "已儲存 %lu 個 · 比對對象為 %@"; +"(empty)" = "(空)"; +"(no analyzer data)" = "(無分析器資料)"; +"a saved snapshot" = "已儲存的快照"; +"About Profile Analyzer" = "關於個人檔案分析器"; +"All preferences (%lu)" = "所有偏好設定 (%lu)"; "Analysis complete" = "分析完成"; "Analysis failed" = "分析失敗"; "Another analysis is already running" = "已經有另一個分析正在執行"; "Available after your next scan" = "將於下次掃描後提供"; -"Cancelled" = "已取消"; +"Batch follow" = "批次追蹤"; +"Batch follow finished" = "批次追蹤完成"; +"Batch unfollow" = "批次取消追蹤"; +"Batch unfollow finished" = "批次取消追蹤完成"; +"Categories" = "類別"; +"Clear visited profiles" = "清除瀏覽過的個人檔案"; +"Compare next scan against" = "下次掃描的比對對象"; +"Comparing against %@" = "比對對象為 %@"; +"Continue" = "繼續"; "Couldn't fetch profile information" = "無法取得個人資料資訊"; +"Delete %lu snapshots? This can't be undone." = "刪除 %lu 個快照?此動作無法復原。"; +"Delete (%lu)" = "刪除 (%lu)"; +"Delete snapshots" = "刪除快照"; +"Delete this snapshot? This can't be undone." = "刪除此快照?此動作無法復原。"; +"Each scan saves a full copy of your followers and following so you can compare against it later. Everything stays on this device." = "每次掃描都會完整儲存你的粉絲與追蹤中清單,方便日後比對。所有資料都保留在此裝置上。"; +"Export" = "匯出"; "Fetching followers (%lu/%ld)…" = "正在取得粉絲 (%lu/%ld)…"; "Fetching following (%lu/%ld)…" = "正在取得追蹤中 (%lu/%ld)…"; "Fetching profile info…" = "正在取得個人資料資訊…"; -"Categories" = "類別"; +"File is not a valid RyukGram backup." = "檔案不是有效的 RyukGram 匯出檔。"; +"Filter" = "篩選"; +"Filter · %lu" = "篩選 · %lu"; "First scan: %@" = "首次掃描:%@"; +"First scan: we collect your followers and following lists and save them locally." = "首次掃描:我們會收集你的粉絲及追蹤清單並儲存在本機。"; +"Follow %lu" = "追蹤 %lu"; "Follower count exceeds %ld — analysis disabled to avoid rate limits." = "粉絲數超過 %ld — 已停用分析以避免速率限制。"; +"Followers" = "粉絲"; +"Following… %lu / %lu" = "追蹤中… %lu / %lu"; "Gained since last scan" = "自上次掃描後增加"; +"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "注意:此功能為 Beta 版本,會呼叫 Instagram 的私有 API。連續執行或在大量追蹤/取消追蹤活動之後立即執行可能觸發短暫速率限制。請謹慎使用,風險自負。"; +"Import complete" = "匯入完成"; +"Include" = "包含"; +"Keep newest" = "保留最新"; +"Keep newest snapshots" = "保留最新的快照"; +"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "大型帳號已被封鎖:粉絲數超過 13,000 時停用分析,以避免 Instagram 對整個應用程式施加速率限制。"; "Last scan: %@" = "上次掃描:%@"; +"Logs every profile you open. Stays on-device." = "記錄你開啟的每個個人檔案,僅保存於裝置上。"; "Lost followers" = "失去的粉絲"; +"Most visited" = "最常瀏覽"; "Mutual followers" = "互相追蹤"; "Name: %@ → %@" = "名稱:%@ → %@"; "New followers" = "新粉絲"; -"No results" = "無結果"; "No active Instagram session found" = "找不到已登入的 Instagram 工作階段"; +"No results" = "無結果"; "No scan yet" = "尚未掃描"; "Not following you back" = "未回追你"; +"Not verified only" = "僅限未認證"; +"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "不會上傳任何資料 — 所有資料僅保留在此裝置,可透過垃圾桶圖示清除。"; +"Nothing was applied." = "未套用任何變更。"; "OK" = "OK"; +"Older snapshots beyond the limit are removed automatically" = "超出上限的舊快照會自動移除"; +"Older snapshots beyond this limit are deleted on the next scan." = "超出此上限的舊快照會在下次掃描時刪除。"; +"Pick what to remove. Snapshots clears the scan diffs and every recorded snapshot; visited profiles wipes the visit history." = "選擇要移除的項目。「快照」會清除掃描差異與所有已記錄的快照;「造訪過的個人檔案」會清除造訪紀錄。"; +"Posts" = "貼文"; +"Preferences" = "偏好設定"; +"Previous scan" = "上次掃描"; "Private account" = "私人帳號"; +"Private only" = "僅限私人"; "Profile Analyzer" = "個人檔案分析器"; +"Profile Analyzer data" = "個人檔案分析器資料"; "Profile picture changed" = "大頭貼已變更"; "Profile updates" = "個人檔案更新"; -"Removes cached snapshots for this account. You'll lose since-last-scan diffs." = "移除此帳號的快取快照。你將失去「自上次掃描後」的差異資料。"; +"Profiles you've opened recently" = "你最近開啟的個人檔案"; +"Raw" = "原始"; +"Raw JSON" = "原始 JSON"; +"Record snapshots" = "記錄快照"; +"Recording" = "錄製中"; "Request failed" = "請求失敗"; -"Reset analyzer data?" = "要重設分析器資料嗎?"; +"Reset analyzer data" = "重設分析器資料"; +"Reset complete" = "重設完成"; +"Reset everything" = "全部重設"; +"Reset selected data?" = "要重設選取的資料嗎?"; +"Reset snapshots" = "重設快照"; +"Rolling — always your last run" = "滾動式 — 永遠是你最近一次的執行"; "Run analysis" = "執行分析"; "Run your first analysis" = "執行首次分析"; -"Search username or name" = "搜尋使用者名稱或名稱"; +"Save a dated entry on every scan" = "每次掃描都儲存一筆附日期的紀錄"; +"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "第二次掃描起:每次掃描都會與上一次比較,以顯示增加/失去的粉絲、你自己的追蹤/取消追蹤動作,以及個人檔案更新。"; +"Settings" = "設定"; "Since last scan" = "自上次掃描後"; +"Snapshot" = "快照"; +"Snapshots" = "快照"; +"Snapshots let you archive each scan and pick which one new scans compare against. Track visits records every profile you open so you can review them here." = "快照可讓你封存每次掃描,並選擇新掃描的比對對象。追蹤造訪會記錄你開啟的每個個人檔案,方便你在此查看。"; +"Sort" = "排序"; "Starting…" = "開始中…"; "They follow you, you don't follow back" = "對方追蹤你,你未回追"; +"This can't be undone." = "此操作無法復原。"; +"Ticked data will be cleared. Tap a row to see what's stored." = "選取的資料將被清除。點擊任一列以檢視已儲存內容。"; +"Today" = "今天"; "Too many followers" = "粉絲過多"; "Too many followers to analyze" = "粉絲數量過多,無法分析"; +"Track visited profiles" = "追蹤瀏覽過的個人檔案"; +"Tracking" = "追蹤"; +"Tracking off — enable below to log visits" = "追蹤已關閉 — 在下方啟用以記錄瀏覽"; "Unfollow" = "取消追蹤"; +"Unfollow %lu" = "取消追蹤 %lu"; "Unfollow @%@?" = "取消追蹤 @%@?"; "Unfollowed you since last scan" = "自上次掃描後取消追蹤你"; +"Unfollowing… %lu / %lu" = "取消追蹤中… %lu / %lu"; +"Unlimited" = "無限制"; +"Username A → Z" = "使用者名稱 A → Z"; +"Username Z → A" = "使用者名稱 Z → A"; "Username, name or picture changes" = "使用者名稱、名稱或大頭貼變更"; "Username: @%@ → @%@" = "使用者名稱:@%@ → @%@"; +"Using %@ across %lu snapshots." = "在 %lu 個快照中使用 %@。"; +"Verified only" = "僅限已認證"; +"Visited" = "已瀏覽"; +"Visited profiles" = "瀏覽過的個人檔案"; "We refuse to run when the follower count exceeds %ld to avoid Instagram rate limits." = "粉絲數超過 %ld 時我們拒絕執行,以避免 Instagram 速率限制。"; "You both follow each other" = "你們互相追蹤"; "You don't follow back" = "你未回追"; "You follow them, they don't follow back" = "你追蹤對方,對方未回追"; "You started following" = "你開始追蹤"; "You unfollowed" = "你已取消追蹤"; - -"%@ %lu accounts? The first %ld will be processed to avoid rate limits." = "%@ %lu 個帳號?為避免速率限制,僅處理前 %ld 個。"; -"%@ %lu accounts? This runs sequentially with a short pause between each." = "%@ %lu 個帳號?此操作會依序執行,每個之間有短暫停頓。"; -"%lu account(s) · %lu snapshot(s) · tap to inspect" = "%lu 個帳號 · %lu 個快照 · 點擊以檢視"; -"%lu accounts followed" = "已追蹤 %lu 個帳號"; -"%lu accounts unfollowed" = "已取消追蹤 %lu 個帳號"; -"%lu entries across %lu lists · tap to inspect" = "%lu 筆項目,分佈於 %lu 個清單 · 點擊以檢視"; -"%lu preferences · tap to inspect" = "%lu 項偏好設定 · 點擊以檢視"; -"(empty)" = "(空)"; -"(no analyzer data)" = "(無分析器資料)"; -"(no lists)" = "(無清單)"; -"About Profile Analyzer" = "關於個人檔案分析器"; -"All preferences (%lu)" = "所有偏好設定 (%lu)"; -"Apply imported data?" = "要套用匯入的資料嗎?"; -"Batch follow" = "批次追蹤"; -"Batch follow finished" = "批次追蹤完成"; -"Batch unfollow" = "批次取消追蹤"; -"Batch unfollow finished" = "批次取消追蹤完成"; -"Continue" = "繼續"; -"Current snapshot" = "目前快照"; -"Embed domains" = "嵌入網域"; -"Excluded lists" = "排除清單"; -"Excluded story users" = "排除的限時動態用戶"; -"Existing values for the selected scope will be replaced. The app may need to restart for some changes to take effect." = "所選範圍的既有值將被覆寫。部分變更可能需重新啟動應用程式後才會生效。"; -"Export" = "匯出"; -"File has no importable sections." = "檔案中沒有可匯入的區段。"; -"File is not a valid RyukGram export." = "檔案不是有效的 RyukGram 匯出檔。"; -"Filter" = "篩選"; -"First scan: we collect your followers and following lists and save them locally." = "首次掃描:我們會收集你的粉絲及追蹤清單並儲存在本機。"; -"Follow %lu" = "追蹤 %lu"; -"Followers" = "粉絲"; -"Following… %lu / %lu" = "追蹤中… %lu / %lu"; -"Full name" = "全名"; -"Heads up: this feature is in beta and hits Instagram's private API. Running it back-to-back or right after heavy follow/unfollow activity can trigger a short rate-limit. Use it sparingly and at your own risk." = "注意:此功能為 Beta 版本,會呼叫 Instagram 的私有 API。連續執行或在大量追蹤/取消追蹤活動之後立即執行可能觸發短暫速率限制。請謹慎使用,風險自負。"; -"Import complete" = "匯入完成"; -"Include" = "包含"; -"Included story users" = "包含的限時動態用戶"; -"Inspect the full payload" = "檢視完整負載資料"; -"Keep scan history" = "保留掃描歷史"; -"Large accounts are blocked: analysis is disabled above 13,000 followers to avoid Instagram rate-limiting the whole app." = "大型帳號已被封鎖:粉絲數超過 13,000 時停用分析,以避免 Instagram 對整個應用程式施加速率限制。"; -"Nothing is uploaded — everything stays on this device and can be wiped from the trash icon." = "不會上傳任何資料 — 所有資料僅保留在此裝置,可透過垃圾桶圖示清除。"; -"Not verified only" = "僅限未認證"; -"Nothing was applied." = "未套用任何變更。"; -"Posts" = "貼文"; -"Preferences" = "偏好設定"; -"Previous snapshot" = "上一個快照"; -"Private only" = "僅限私人"; -"Profile Analyzer data" = "個人檔案分析器資料"; -"Raw" = "原始"; -"Raw JSON" = "原始 JSON"; -"Reset analyzer data" = "重設分析器資料"; -"Reset complete" = "重設完成"; -"Reset selected data?" = "要重設選取的資料嗎?"; -"Second scan onward: each scan compares against the last, so we can show gained/lost followers, your own follow/unfollow moves, and profile updates." = "第二次掃描起:每次掃描都會與上一次比較,以顯示增加/失去的粉絲、你自己的追蹤/取消追蹤動作,以及個人檔案更新。"; -"Select all" = "全選"; -"Selected data will be cleared. Tap any row to see what's stored." = "選取的資料將被清除。點擊任一列以檢視已儲存內容。"; -"Settings" = "設定"; -"Sort" = "排序"; -"This can't be undone." = "此操作無法復原。"; -"Tick what to apply. Tap any row to inspect. Sections not in the file are disabled." = "勾選要套用的項目。點擊任一列以檢視。檔案中未包含的區段將停用。"; -"Tick what to include. Tap any row to inspect its contents." = "勾選要包含的項目。點擊任一列以檢視其內容。"; -"Unfollow %lu" = "取消追蹤 %lu"; -"Unfollowing… %lu / %lu" = "取消追蹤中… %lu / %lu"; -"Username A → Z" = "使用者名稱 A → Z"; -"Username Z → A" = "使用者名稱 Z → A"; -"Verified only" = "僅限已認證"; -"When on, scans compare against your first scan so new/lost followers and profile updates don't disappear between scans." = "啟用時,掃描會與首次掃描比較,讓新增/失去的粉絲及個人檔案更新不會在掃描之間消失。"; +"your previous scan" = "你的上次掃描"; +"“Previous scan” always measures against your last run. Pick a saved snapshot to compare against a fixed point in time instead." = "「上次掃描」一律以你最近一次的執行為基準。選擇已儲存的快照可改為比對固定的時間點。"; +"⚠️ This is getting large — lower the limit or delete older snapshots to free space." = "⚠️ 容量越來越大 — 請降低上限或刪除舊快照以釋放空間。"; ////////////////////////////////////////////////////////////////////////////// // SETTINGS VIEWS & DIALOGS // // Excluded-lists managers, backup/restore flows, in-picker labels. // ////////////////////////////////////////////////////////////////////////////// +"Absolute format" = "絕對格式"; "Add chat" = "新增聊天"; "Add custom domain" = "新增自訂網域"; -"Add preset…" = "新增預設…"; "Add to list?" = "要加入清單嗎?"; "Add user" = "新增使用者"; "Apply" = "套用"; "Apply to" = "套用至"; "Chats" = "聊天"; +"Colored" = "彩色"; "Could not read file." = "無法讀取檔案。"; "Could not resolve user ID" = "無法解析使用者 ID"; -"Could not write temporary file." = "無法寫入暫存檔案。"; "Current location" = "目前位置"; "Custom" = "自訂"; -"Date Format" = "日期格式"; "Delete" = "刪除"; +"Each surface in IG goes through a different NSDate formatter. Toggle the ones you want this format to apply to." = "IG 的每個介面使用不同的 NSDate 格式化器。開啟你想套用此格式的介面。"; "Enable fake location" = "啟用假位置"; -"Enter username" = "輸入使用者名稱"; -"Enter username of the DM thread" = "輸入私訊串的使用者名稱"; "Excluded chats" = "排除的聊天"; "Excluded users" = "排除的使用者"; "Follow default" = "遵循預設"; "Force OFF (allow unsends)" = "強制關閉(允許撤回)"; "Force ON (preserve unsends)" = "強制開啟(保留撤回)"; -"Format" = "格式"; -"Import failed" = "匯入失敗"; +"Include seconds when the format already shows time." = "當格式已顯示時間時也包含秒。"; "Included chats" = "包含的聊天"; "Included users" = "包含的使用者"; "KD: default" = "KD:預設"; @@ -1040,41 +1583,38 @@ "Keep-deleted override" = "保留已刪除覆寫"; "Name (A–Z)" = "名稱 (A–Z)"; "No DM thread found with @%@" = "找不到與 @%@ 的私訊串"; -"Off" = "關閉"; "Presets" = "預設組合"; "Recently added" = "最近新增"; +"Relative time" = "相對時間"; +"Relative within" = "相對時間範圍"; "Remove from list" = "從清單移除"; -"Remove Selected" = "移除選取項目"; "Reset" = "重設"; -"Saved presets are reusable. Tap a preset to make it the active location." = "已儲存的預設可重複使用。點選預設以設為目前位置。"; "Search" = "搜尋"; "Search address or place" = "搜尋地址或地點"; "Search by name or username" = "依名稱或使用者名稱搜尋"; "Search by username or name" = "依使用者名稱或名稱搜尋"; -"Select" = "選擇"; "Select location on map" = "在地圖上選擇位置"; "Set current location" = "設定目前位置"; "Set keep-deleted override" = "設定保留已刪除覆寫"; -"Settings exported" = "設定已匯出"; "Show map button" = "顯示地圖按鈕"; +"Show relative time for dates younger than this many days. 0 disables it." = "比指定天數新的日期會顯示相對時間。0 表示關閉。"; "Show seconds" = "顯示秒數"; "Sort by" = "排序依據"; -"Story users" = "限時動態用戶"; -"Toggle each NSDate formatter IG uses. Different surfaces (feed, comments, stories, DMs) go through different methods — enable the ones you want the custom format applied to." = "切換 IG 使用的每個 NSDate 格式化器。不同介面(動態消息、留言、限時動態、私訊)使用不同方法 — 啟用您想套用自訂格式的項目。"; +"Thread" = "對話"; +"Time" = "時間"; "Use this location" = "使用此位置"; "User '%@' not found" = "找不到使用者 '%@'"; "Username (A–Z)" = "使用者名稱 (A–Z)"; -"When on, all CoreLocation requests inside Instagram return the location below. Toggle the map button to show or hide the quick toggle on the Friends Map view." = "啟用時,Instagram 內所有 CoreLocation 請求皆回傳以下位置。切換地圖按鈕可在朋友地圖檢視中顯示或隱藏快速切換。"; +"Within %ld days" = "%ld 天以內"; +"Within 1 day" = "1 天以內"; ////////////////////////////////////////////////////////////////////////////// // REELS (FEATURES) // // Strings from Reels. // ////////////////////////////////////////////////////////////////////////////// -"Copied!" = "已複製!"; "No password found" = "找不到密碼"; "No text field found" = "找不到文字欄位"; -"Password" = "密碼"; "Refresh Reels?" = "重新整理 Reels?"; ////////////////////////////////////////////////////////////////////////////// @@ -1082,23 +1622,42 @@ // Strings from Profile. // ////////////////////////////////////////////////////////////////////////////// +"%lu accounts" = "%lu 個帳號"; +"%lu loaded" = "已載入 %lu 個"; +"%lu loaded · all loaded" = "已載入 %lu 個 · 全部載入完成"; "Doesn't follow you" = "未追蹤你"; +"Everyone is already loaded." = "所有人都已載入。"; +"Filter & sort" = "篩選與排序"; +"Follows me" = "追蹤我"; +"Follows me first" = "追蹤我的優先"; "Follows you" = "追蹤你"; +"Hides everyone who doesn't match all picked filters." = "隱藏所有不符合全部所選篩選條件的人。"; +"Jump to bottom" = "跳至底部"; +"Jump to top" = "跳至頂部"; +"List" = "清單"; +"List fully loaded" = "清單已全部載入"; +"Load more" = "載入更多"; +"Loaded more" = "已載入更多"; +"Mutuals" = "互相追蹤"; +"Mutuals first" = "互相追蹤的優先"; "Note copied" = "備註已複製"; - -////////////////////////////////////////////////////////////////////////////// -// CONFIRM DIALOGS (IN-FEATURE) // -// Strings from Confirm dialogs. // -////////////////////////////////////////////////////////////////////////////// - -"Unfollow?" = "確定要取消追蹤?"; +"People I follow" = "我追蹤的人"; +"People I follow first" = "我追蹤的人優先"; +"Reverse order" = "反向排序"; +"Show only" = "僅顯示"; +"Verified" = "已驗證"; +"Verified first" = "已驗證的優先"; ////////////////////////////////////////////////////////////////////////////// // MISC // // Anything that didn't fit a named section. Usually short labels. // ////////////////////////////////////////////////////////////////////////////// +"%@ - BETA" = "%@ - BETA"; +"(unset)" = "(未設定)"; "720p • progressive • fastest" = "720p • 漸進式 • 最快"; +"Add language" = "新增語言"; +"Album name" = "相簿名稱"; "Are you sure?" = "你確定嗎?"; "Bundle" = "Bundle"; "Copy audio URL" = "複製音訊網址"; @@ -1106,21 +1665,41 @@ "Copy video URL" = "複製影片網址"; "Could not access reel media" = "無法存取 Reels 媒體"; "Could not access reel photo" = "無法存取 Reels 照片"; -"Could not extract photo url from post" = "無法從貼文擷取照片網址"; -"Could not extract photo url from reel" = "無法從 Reels 擷取照片網址"; -"Could not extract photo url from story" = "無法從限時動態擷取照片網址"; -"Could not extract video url from post" = "無法從貼文擷取影片網址"; -"Could not extract video url from reel" = "無法從 Reels 擷取影片網址"; -"Could not extract video url from story" = "無法從限時動態擷取影片網址"; +"Could not write file." = "無法寫入檔案。"; +"Download all and share?" = "全部下載並分享?"; "Download Quality" = "下載品質"; +"Downloading %d%%" = "正在下載 %d%%"; +"e.g. 1000000" = "例如 1000000"; +"Localization file not found" = "找不到翻譯檔案"; +"Enter the language code (e.g. fr, de, ja)" = "請輸入語言代碼(例如 fr、de、ja)"; +"Error" = "錯誤"; "Extras" = "附加項目"; "FFmpegKit Debug" = "FFmpegKit 除錯"; +"File is empty or not a valid .strings file." = "檔案是空的或不是有效的 .strings 檔案。"; +"KD: OFF" = "保留已刪除:關閉"; +"Keep-deleted: OFF" = " • 保留已刪除:關閉"; +"Keep-deleted: ON" = " • 保留已刪除:開啟"; "Later" = "稍後"; +"Loading" = "載入中"; +"Name of the Photos album RyukGram saves into. Leave empty to restore the default." = "RyukGram 儲存到的「照片」相簿名稱。留空以恢復預設。"; +"Next" = "下一步"; +"No results found." = "找不到結果。"; "No!" = "不要!"; -"OK" = "OK"; +"Pick a language to update, or add a new one" = "選擇要更新的語言,或新增一種語言"; +"Preset" = "預設組合"; "Restart" = "重新啟動"; +"Restart now" = "立即重新啟動"; "Restart required" = "需要重新啟動"; -"username" = "使用者名稱"; +"Saved preset \"%@\"" = "已儲存預設組合 \"%@\""; +"selected" = "已選取"; +"Shared icon, or override per button" = "共用圖示,或可個別按鈕覆寫"; +"Speed" = "速度"; +"Unset" = "未設定"; +"Update localization" = "更新翻譯"; +"Updated %@ (%ld keys). Restart to apply." = "已更新 %@(%ld 個鍵)。重新啟動以套用。"; +"Use default" = "使用預設"; +"Username or PK" = "使用者名稱或 PK"; +"Username or raw user PK" = "使用者名稱或原始使用者 PK"; "Yes" = "是"; "You must restart the app to apply this change" = "您必須重新啟動應用程式以套用此變更"; @@ -1129,16 +1708,21 @@ // Strings from the About / Credits footer of Settings. // ////////////////////////////////////////////////////////////////////////////// -"%@ — GitHub & Telegram" = "%@ — GitHub 與 Telegram"; +"%@ — GitHub, Telegram, Donate" = "%@ — GitHub、Telegram、捐贈"; "About" = "關於"; "Arabic translation" = "阿拉伯文翻譯"; -"Chinese (Traditional) translation" = "繁體中文翻譯"; -"Chinese (Traditional) translation" = "繁體中文翻譯"; +"Chinese (Traditional and Simplified) translation" = "中文(繁體與簡體)翻譯"; "Credits" = "製作團隊"; "Developers" = "開發者"; "Donate to SoCuul" = "捐款給 SoCuul"; "installed" = "已安裝"; "Korean translation" = "韓文翻譯"; +"Portuguese (Brazil) translation" = "葡萄牙文(巴西)翻譯"; +"Turkish translation" = "土耳其語翻譯"; +"Vietnamese translation" = "越南語翻譯"; +"French translation" = "法語翻譯"; +"Code contributions" = "程式碼貢獻"; +"Following feed mode (from InstaSane)" = "追蹤中動態模式(來自 InstaSane)"; "latest" = "最新"; "Links" = "連結"; "No releases" = "無版本發行"; @@ -1149,13 +1733,24 @@ "Russian translation" = "俄文翻譯"; "RyukGram developer" = "RyukGram 開發者"; "Join Telegram channel" = "加入 Telegram 頻道"; -"View on GitHub" = "在 GitHub 查看"; "Source code" = "原始碼"; +"View on GitHub" = "在 GitHub 查看"; "Spanish translation" = "西班牙文翻譯"; -"Support the original developer" = "支持原開發者"; +"Support the original SCInsta developer" = "支持 SCInsta 原開發者"; +"Inspirations" = "靈感來源"; +"Inspirations, contributors, translators" = "靈感來源、貢獻者、翻譯者"; +"Code and research" = "程式碼與研究"; +"Translators" = "翻譯者"; +"Original BHInstagram developer" = "BHInstagram 原開發者"; +"OLED theme inspiration" = "OLED 主題靈感"; +"Donate to Ryuk" = "捐贈 Ryuk"; +"Support RyukGram development" = "支持 RyukGram 開發"; +"RyukGram is a heavily reworked fork of SCInsta — supporting the original developer is appreciated." = "RyukGram 是 SCInsta 的深度重製分支 — 支持原開發者將不勝感激。"; +"Browse changes from previous releases" = "查看以往版本的變更"; +"Code inspiration" = "程式碼靈感"; +"zxPluginsInject sideload compatibility shim" = "zxPluginsInject 側載相容性墊片"; "Telegram channel" = "Telegram 頻道"; "Testing and feature suggestions" = "測試與功能建議"; -"Tweak settings" = "Tweak 設定"; "Version" = "版本"; "Version, credits, and links" = "版本、製作團隊與連結"; "What's new in RyukGram" = "RyukGram 有什麼新功能"; @@ -1166,7 +1761,6 @@ ////////////////////////////////////////////////////////////////////////////// "720p • progressive • silent" = "720p • 漸進式 • 靜音"; -"Audio extract failed" = "音訊擷取失敗"; "Audio only" = "僅音訊"; "Audio ready" = "音訊就緒"; "Download video at the highest available quality" = "下載最高可用品質的影片"; @@ -1176,12 +1770,433 @@ "Faster = lower quality" = "速度越快 = 品質越低"; "FFmpeg not available" = "FFmpeg 不可用"; "FFmpegKit is not available. Install the sideloaded IPA or the _ffmpeg .deb variant to enable." = "FFmpegKit 不可用。請安裝側載的 IPA 或 _ffmpeg .deb 版本以啟用。"; -"No audio stream available" = "無可用音訊串流"; "No audio track found" = "找不到音訊軌"; "Photo" = "照片"; "Photo quality" = "照片品質"; -"Raw image (no audio, no video)" = "原始圖片(無音訊、無影片)"; "silent" = "靜音"; "Use highest resolution available" = "使用最高可用解析度"; "Video quality" = "影片品質"; "Which quality to download" = "選擇下載的品質"; + +////////////////////////////////////////////////////////////////////////////// +// ADVANCED ENCODING // +// Advanced encoding page — codecs, profiles, CRF/bitrate, audio, // +// container. Manual ffmpeg controls behind “Advanced encoding” toggle. // +////////////////////////////////////////////////////////////////////////////// + +"'%@' is not in this FFmpegKit build — using hardware h264 instead." = "此 FFmpegKit 版本不含「%@」— 改用硬體 h264。"; +"10-bit 4:2:0. ~2x slower, smoother gradients." = "10-bit 4:2:0。慢約 2 倍,漸層更平滑。"; +"10-bit colour. Slower, smoother gradients. Software only." = "10-bit 色彩。較慢,漸層更平滑。僅限軟體。"; +"1080p30 baseline." = "1080p30 基準。"; +"4K30 baseline." = "4K30 基準。"; +"8-bit 4:2:0. Universal default." = "8-bit 4:2:0。通用預設。"; +"8-bit 4:2:2 chroma. Niche playback." = "8-bit 4:2:2 色度。小眾播放。"; +"8-bit 4:2:2 chroma. Software only." = "8-bit 4:2:2 色度。僅限軟體。"; +"8-bit 4:4:4 chroma. Software only." = "8-bit 4:4:4 色度。僅限軟體。"; +"8-bit 4:4:4 full chroma. Niche playback." = "8-bit 4:4:4 完整色度。小眾播放。"; +"8-bit. Best for modern devices." = "8-bit。最適合現代裝置。"; +"Advanced encoding" = "進階編碼"; +"Advanced encoding settings" = "進階編碼設定"; +"Archival quality." = "封存品質。"; +"Audio bitrate" = "音訊位元率"; +"Audio channels" = "音訊聲道"; +"Audio codec" = "音訊編碼器"; +"Audio conversion failed" = "音訊轉換失敗"; +"Audio sample rate" = "音訊取樣率"; +"Balanced. libx264 default." = "平衡。libx264 預設。"; +"Best practical quality per bit." = "每位元最佳實用品質。"; +"Bitrate, channels, and sample rate apply only when the codec is AAC (re-encoding)." = "位元率、聲道與取樣率僅在編碼器為 AAC(重新編碼)時適用。"; +"Cartoons / anime." = "卡通/動畫。"; +"Cinematic. Smaller files." = "電影感。檔案較小。"; +"Codec" = "編碼器"; +"Container" = "容器"; +"Copy (passthrough)" = "複製(直通)"; +"CRF quality" = "CRF 品質"; +"Downloading video…" = "正在下載影片…"; +"Easier to play back on weak devices." = "在效能較弱的裝置上更易播放。"; +"Encoder unavailable" = "編碼器無法使用"; +"Examples: 8M, 12M, 25M, 4500k. Leave empty for auto." = "範例:8M、12M、25M、4500k。留空為自動。"; +"Failed to download video" = "下載影片失敗"; +"Fast, fixed-bitrate, GPU-accelerated." = "快速、固定位元率、GPU 加速。"; +"Fastest, worst compression." = "最快,壓縮最差。"; +"Faststart" = "Faststart"; +"Faststart moves the MP4 index to the start so playback begins before the file fully buffers. Strip metadata removes source tags (creation date, handler, encoder) from the file." = "Faststart 會將 MP4 索引移到檔案開頭,讓播放在檔案完整緩衝前就能開始。移除中繼資料會從檔案移除來源標籤(建立日期、處理常式、編碼器)。"; +"FFmpeg documentation" = "FFmpeg 說明文件"; +"FFmpeg mux failed" = "FFmpeg 混流失敗"; +"Frame rate" = "幀率"; +"H.264 level" = "H.264 等級"; +"H.264 profile" = "H.264 設定檔"; +"Hardware (VideoToolbox)" = "硬體 (VideoToolbox)"; +"Hardware (VideoToolbox) only supports yuv420p — '%@' was ignored. Switch to Software (libx264) to use it." = "硬體 (VideoToolbox) 僅支援 yuv420p — 已忽略「%@」。切換到軟體 (libx264) 才能使用。"; +"Keep original audio. Fast." = "保留原始音訊。快速。"; +"Keep the source frame rate." = "保留來源幀率。"; +"Let the encoder pick." = "由編碼器選擇。"; +"Live-action video." = "實拍影片。"; +"Lossless. Huge files." = "無損。檔案龐大。"; +"Low-latency streaming." = "低延遲串流。"; +"Manual ffmpeg controls in place of Encoding speed." = "以手動 ffmpeg 控制取代編碼速度。"; +"Marginal gain, huge time cost." = "效益微小,耗時極大。"; +"Max resolution" = "最大解析度"; +"Mono" = "單聲道"; +"No tuning. Default." = "不調校。預設。"; +"None" = "無"; +"Pixel format" = "像素格式"; +"Pixel format ignored" = "像素格式已忽略"; +"Preserve film grain." = "保留膠片顆粒。"; +"Preset and Tune apply to Software (libx264) only. Pair profile with pixel format: high↔yuv420p, high10↔yuv420p10le, high422↔yuv422p, high444↔yuv444p. Mismatches downconvert silently. Hardware always uses yuv420p." = "預設組合與調校僅適用於軟體 (libx264)。設定檔需搭配對應的像素格式:high↔yuv420p、high10↔yuv420p10le、high422↔yuv422p、high444↔yuv444p。不相符時會靜默降轉。硬體一律使用 yuv420p。"; +"Re-encode. Use when source is opus or unsupported." = "重新編碼。當來源為 opus 或不支援時使用。"; +"Reset advanced encoding" = "重設進階編碼"; +"Setting a video bitrate switches Software to fixed-bitrate and ignores CRF. Leave empty for CRF. Hardware uses bitrate." = "設定影片位元率會讓軟體切換為固定位元率並忽略 CRF。留空則使用 CRF。硬體使用位元率。"; +"Slideshow-like content." = "幻燈片類內容。"; +"Slower, better compression per bit." = "較慢,每位元壓縮更佳。"; +"Smaller, visible artefacts." = "檔案較小,有可見瑕疵。"; +"Software (libx264)" = "軟體 (libx264)"; +"Standard 8-bit." = "標準 8-bit。"; +"Stereo" = "立體聲"; +"Streaming default." = "串流預設。"; +"Strip metadata" = "移除中繼資料"; +"Top of AAC." = "AAC 最高品質。"; +"Tune" = "調校"; +"Unknown error" = "未知錯誤"; +"Very high quality." = "非常高品質。"; +"Video bitrate" = "影片位元率"; +"Video codec" = "影片編碼器"; +"Visually lossless. RyukGram default." = "視覺無損。RyukGram 預設。"; +"Widest compatibility, no B-frames." = "最廣相容性,無 B 影格。"; +"Worst quality." = "最差品質。"; + +////////////////////////////////////////////////////////////////////////////// +// ACTION MENU CONFIG // +// Profile action button: per-section toggles, reorder handles, default-tap // +// behavior, reset confirmations, action catalog labels. // +////////////////////////////////////////////////////////////////////////////// + +"Long-press gestures" = "長按手勢"; +"Inserts a button in the profile navigation header" = "在個人檔案導覽列中插入按鈕"; +"Adds a RyukGram action button to the profile header with copy, view picture, share, save, and profile-info entries. Tap opens the menu by default; change the tap behavior in Configure menu." = "在個人檔案頁首新增 RyukGram 操作按鈕,包含複製、查看大頭貼、分享、儲存與個人檔案資訊項目。預設點擊開啟選單;可在「設定選單」中更改點擊行為。"; +"Configure menu" = "設定選單"; +"Reorder, enable/disable, set default tap, show date" = "重新排序、啟用/停用、設定預設點擊、顯示日期"; +"Reorder, enable/disable, set default tap" = "重新排序、啟用/停用、設定預設點擊"; +"RyukGram profile actions" = "RyukGram 個人檔案操作"; +"Reorder sections" = "重新排序區段"; +"Drag the ≡ handle to reorder sections." = "拖曳 ≡ 把手重新排序區段。"; +"Drag the ≡ handle to reorder. Toggle a row off to hide it from the menu. Mark a section as a submenu to collapse its actions behind a single entry." = "拖曳 ≡ 把手重新排序。關閉某列以從選單中隱藏。將區段標記為子選單可將其操作收合於單一項目下。"; +"Show as submenu" = "顯示為子選單"; +"Collapse this section's actions behind a single entry" = "將此區段的操作收合於單一項目下"; +"Configure: %@" = "設定:%@"; +"What happens on a single tap. Long-press always opens the full menu." = "單擊時的動作。長按始終開啟完整選單。"; +"Reset to defaults" = "重設為預設值"; +"This will restore the default sections, order, and toggles for this menu." = "此操作會還原此選單的預設區段、順序與開關。"; +"Audio & visibility" = "音訊與顯示"; +"DM disappearing media" = "私訊消失訊息媒體"; +"Bulk download" = "批次下載"; +"Feed settings" = "動態消息設定"; +"Reels settings" = "短片設定"; +"Profile settings" = "個人檔案設定"; +"Stories settings" = "限時動態設定"; +"Copy ID" = "複製 ID"; +"Copy Info" = "複製資訊"; +"Copy all info" = "複製所有資訊"; +"Copy media URL" = "複製媒體網址"; +"Copy profile link" = "複製個人檔案連結"; +"Copy username" = "複製使用者名稱"; +"Download" = "下載"; +"Download to Gallery" = "下載至圖庫"; +"Download all to Gallery" = "全部下載至圖庫"; +"Exclude/include user" = "排除/包含使用者"; +"Mute / unmute audio" = "靜音/取消靜音音訊"; +"Save picture to Gallery" = "儲存圖片至圖庫"; +"Share picture" = "分享圖片"; +"View picture" = "查看圖片"; +"Bio" = "個人簡介"; +"ID" = "ID"; +"Info" = "資訊"; +"Profile info" = "個人檔案資訊"; +"Profile link" = "個人檔案連結"; +"Picture not found" = "找不到圖片"; +"Private profile" = "私人個人檔案"; +"Profile unavailable" = "個人檔案無法使用"; +"Public profile" = "公開個人檔案"; +"Username" = "使用者名稱"; +"Followers: %@" = "粉絲:%@"; +"Following: %@" = "追蹤中:%@"; +"Copied %@" = "已複製 %@"; + +////////////////////////////////////////////////////////////////////////////// +// GALLERY // +// On-device media library: enable + save mode, browsing, filters, sort, // +// delete tools, picker entries, and the Photos/Gallery download submenu. // +////////////////////////////////////////////////////////////////////////////// + +"%.0f kbps" = "%.0f kbps"; +"%.1f Mbps" = "%.1f Mbps"; +"(unknown)" = "(未知)"; +"All files deleted" = "已刪除所有檔案"; +"Browsing" = "瀏覽"; +"By source" = "依來源"; +"By type" = "依類型"; +"By user" = "依使用者"; +"Clear filters" = "清除篩選"; +"Comment" = "留言"; +"Create" = "建立"; +"Create & Move" = "建立並移動"; +"Delete %@?" = "要刪除 %@ 嗎?"; +"Delete all files" = "刪除所有檔案"; +"Delete all images" = "刪除所有圖片"; +"Delete all videos" = "刪除所有影片"; +"Delete by user" = "依使用者刪除"; +"Delete DM media" = "刪除私訊媒體"; +"Delete feed posts" = "刪除動態貼文"; +"Delete files" = "刪除檔案"; +"Delete Folder" = "刪除資料夾"; +"Delete from Gallery?" = "要從圖庫刪除嗎?"; +"Delete profile pictures" = "刪除大頭貼"; +"Delete reels" = "刪除短片"; +"Delete selected" = "刪除所選項目"; +"Delete Selected Files?" = "刪除所選檔案?"; +"Delete stories" = "刪除限時動態"; +"Delete thumbnails" = "刪除縮圖"; +"Deleted from Gallery" = "已從圖庫刪除"; +"Deleted selected files" = "已刪除所選檔案"; +"Deselect All" = "取消全選"; +"DM media deleted" = "已刪除私訊媒體"; +"DMs" = "私訊"; +"Each user appears as a folder next to your real folders." = "每位使用者以資料夾形式與真實資料夾並列顯示。"; +"Each user gets a labelled section in the grid/list." = "每位使用者在格狀/清單中擁有具標籤的區段。"; +"Enable gallery" = "啟用圖庫"; +"Failed" = "失敗"; +"Failed to delete" = "刪除失敗"; +"Favorite" = "我的最愛"; +"Favorite selected" = "將所選加入我的最愛"; +"Favorites only" = "僅我的最愛"; +"Feed posts deleted" = "已刪除動態貼文"; +"Files deleted" = "已刪除檔案"; +"Flat list. No grouping." = "平面清單,不分組。"; +"Folder name" = "資料夾名稱"; +"Folders" = "資料夾"; +"From RyukGram Gallery" = "來自 RyukGram 圖庫的音訊"; +"Gallery" = "圖庫"; +"Gallery only" = "僅圖庫"; +"Gallery save mode" = "圖庫儲存模式"; +"Gallery Settings" = "圖庫設定"; +"GIFs" = "GIF"; +"Grid view" = "網格檢視"; +"Group by user" = "依使用者分組"; +"Hold DM tab to open gallery" = "長按 DM 分頁開啟圖庫"; +"Images" = "圖片"; +"Images deleted" = "已刪除圖片"; +"Images first" = "圖片優先"; +"item" = "項目"; +"items" = "項目"; +"Largest first" = "最大優先"; +"List view" = "清單檢視"; +"Long-press the inbox button in the bottom tab bar to open RyukGram gallery" = "長按底部分頁列的收件匣按鈕以開啟 RyukGram 圖庫"; +"Manage" = "管理"; +"More" = "更多"; +"Move selected" = "移動所選項目"; +"Move to Folder" = "移至資料夾"; +"Name A-Z" = "名稱 A-Z"; +"Name Z-A" = "名稱 Z-A"; +"New Folder" = "新增資料夾"; +"New folder…" = "新資料夾…"; +"Newest first" = "最新優先"; +"No files in Gallery" = "圖庫中沒有檔案"; +"No files to delete" = "無可刪除的檔案"; +"No matching files" = "沒有符合的檔案"; +"On-device library of media downloaded through RyukGram. Save mode picks where 'Download to Photos' actually writes." = "透過 RyukGram 下載的媒體在裝置上的庫存。儲存模式決定「下載至照片」實際寫入的位置。"; +"Open" = "開啟"; +"Open Original Post" = "開啟原始貼文"; +"Options" = "選項"; +"Other" = "其他"; +"Photos + Gallery" = "「照片」+ 圖庫"; +"Photos only" = "僅「照片」"; +"Profile pictures deleted" = "已刪除大頭貼"; +"Reels deleted" = "已刪除短片"; +"Rename" = "重新命名"; +"Rename Folder" = "重新命名資料夾"; +"Root" = "根目錄"; +"Save media from the preview screen\nto see it here." = "從預覽畫面儲存媒體\n即可在此看到。"; +"Saved %lu items to Gallery" = "已儲存 %lu 個項目至圖庫"; +"Saved to Gallery" = "已儲存至圖庫"; +"Saving to Gallery" = "正在儲存至圖庫..."; +"Search users" = "搜尋使用者"; +"Sections" = "區段"; +"Select All" = "全選"; +"Share" = "分享"; +"Share selected" = "分享所選項目"; +"Show favorites at top" = "我的最愛置頂顯示"; +"Show gallery entries in download menus and unlock the gallery button" = "在下載選單中顯示圖庫項目並解鎖圖庫按鈕"; +"Smallest first" = "最小優先"; +"Source" = "來源"; +"Source user" = "來源使用者"; +"Storage" = "儲存空間"; +"Stories deleted" = "已刪除限時動態"; +"Story" = "限時動態"; +"The original content may no longer exist." = "原始內容可能已不存在。"; +"This folder contains %ld file(s). They will be moved to the parent folder." = "此資料夾包含 %ld 個檔案。它們將被移至上層資料夾。"; +"This folder is empty." = "此資料夾為空。"; +"This will permanently remove %ld file%@ from the gallery." = "這將從圖庫永久移除 %ld 個檔案%@。"; +"This will permanently remove %ld file(s)." = "此操作將永久移除 %ld 個檔案。"; +"This will permanently remove this file from the gallery." = "此操作將永久從圖庫移除此檔案。"; +"Thumb" = "縮圖"; +"Thumbnails deleted" = "已刪除縮圖"; +"to Gallery" = "至圖庫"; +"Total files" = "檔案總數"; +"Total size" = "總大小"; +"Type" = "類型"; +"Unable to open original post" = "無法開啟原始貼文"; +"Unable to open profile" = "無法開啟個人檔案"; +"Unfavorite" = "取消我的最愛"; +"Unknown user" = "未知使用者"; +"User files deleted" = "已刪除使用者檔案"; +"Videos" = "影片"; +"Videos deleted" = "已刪除影片"; +"Videos first" = "影片優先"; +"When enabled, favorites are pinned above other files inside the current sort and folder context." = "啟用時,我的最愛會在目前排序與資料夾範圍內固定顯示於其他檔案上方。"; +"Where 'Download to Photos' actually writes when gallery is on" = "啟用圖庫時「下載至照片」實際寫入的位置"; +"Yesterday" = "昨天"; + +////////////////////////////////////////////////////////////////////////////// +// HOME SHORTCUT // +// Extra button on the home top bar (right of the create-post +) — picks // +// between Gallery, Changelog, etc. Configure-screen and the row reorderer. // +////////////////////////////////////////////////////////////////////////////// + +"Home shortcut button" = "主頁捷徑按鈕"; +"Show the extra button on the home top bar" = "設定主頁頂列的額外按鈕"; +"Auto" = "自動"; +"Icon" = "圖示"; +"Drag the ≡ handle to reorder. Toggle actions off to hide them. With one action enabled, tapping fires it directly. With two or more, tapping opens a menu." = "拖曳 ≡ 把手重新排序。關閉某列以隱藏該目標。啟用一項動作時點擊直接觸發;啟用兩項或以上時點擊顯示選單。"; +"Changelog" = "更新紀錄"; + +////////////////////////////////////////////////////////////////////////////// +// INTERFACE PAGE // +// Settings → Interface (renamed Navigation tab) // +////////////////////////////////////////////////////////////////////////////// + +"Adds an extra shortcut button beside the create-post + button on the home top bar." = "在首頁頂部列建立貼文「+」按鈕旁新增一個額外的捷徑按鈕。"; +"All buttons" = "所有按鈕"; +"Choose icon, reorder actions, and enable menu items" = "選擇圖示、重新排序動作並啟用選單項目"; +"Choose the icon shown on the home top bar. Auto uses the selected action icon when only one action is enabled." = "選擇顯示在首頁頂部列的圖示。「自動」會在僅啟用一個動作時使用該動作的圖示。"; +"Configure button" = "設定按鈕"; +"Global Action Icons" = "全域動作圖示"; +"Interface" = "介面"; +"Override the icon for a specific button. Buttons left on Default follow the shared icon above." = "覆寫特定按鈕的圖示。維持「預設」的按鈕會沿用上方的共用圖示。"; +"Per button" = "個別按鈕"; +"Show home shortcut button" = "顯示首頁捷徑按鈕"; +"Tab bar" = "標籤列"; +"Universal in-app notifications. Pick style, position, per-action routing (custom pill / IG-native / off)." = "應用內統一通知。選擇樣式、位置和按操作路由(藥丸 / IG 原生 / 關閉)。"; + +////////////////////////////////////////////////////////////////////////////// +// NOTIFICATIONS // +// Settings → Interface → Notifications + the universal pill / toast system // +////////////////////////////////////////////////////////////////////////////// + +"Notifications" = "通知"; +"Appearance" = "外觀"; +"Routing" = "路由"; +"Style" = "樣式"; +"Position" = "位置"; +"Stack size" = "堆疊數量"; +"Duration" = "持續時間"; +"Default surface" = "預設顯示方式"; +"Enable notifications" = "啟用通知"; +"Haptic feedback" = "觸感回饋"; +"Preview pill" = "預覽藥丸"; +"Preview download pill" = "預覽下載藥丸"; +"Preview loading pill" = "預覽載入藥丸"; +"Master switch. When off, no RyukGram pills or IG-native toasts are emitted." = "主開關。關閉後將不顯示任何通知。"; +"Universal in-app notifications. All RyukGram feedback (downloads, copies, errors, success messages) routes through here." = "應用內統一通知。所有 RyukGram 回饋都從這裡發出。"; +"Minimal: flat blur. Colorful: tinted by tone. Glow: colored halo. Island: dynamic-island capsule." = "Minimal:簡單模糊。Colorful:依色調著色。Glow:彩色光環。Island:動態島膠囊。"; +"Top slides down, bottom slides up." = "頂部下滑,底部上滑."; +"How many pills can show at once before queueing." = "在排隊前同時顯示的藥丸數量。"; +"Multiplies how long toasts stay on screen." = "將通知在螢幕上的停留時間乘以倍數。"; +"Vibration on success/error pills." = "成功/錯誤藥丸震動回饋。"; +"For toast-style actions you can choose between our pill and IG's native bottom toast. Per-action overrides live below." = "對於提示型操作可在我們的藥丸與 IG 原生提示之間選擇。下方為各操作覆蓋。"; +"What to use when an action doesn't have its own override." = "操作沒有自身覆蓋時使用的方式。"; +"Tap to cycle: info → success → warning → error" = "點擊循環:資訊 → 成功 → 警告 → 錯誤"; +"Tap to cycle between success and failure" = "點擊在成功與失敗之間切換"; +"Progress UI — pill or off only." = "進度 UI — 僅限藥丸或關閉。"; +"Minimal" = "極簡"; +"Colorful" = "繽紛"; +"Glow" = "光暈"; +"Island" = "島嶼"; +"Top" = "頂部"; +"Bottom" = "底部"; +"Custom pill" = "自訂藥丸"; +"IG native toast" = "IG 原生提示"; +"Short" = "短"; +"Normal" = "正常"; +"Long" = "長"; +"Very long" = "非常長"; +"Downloads & saving" = "下載與儲存"; +"Copy to clipboard" = "複製到剪貼簿"; +"Read receipts & seen" = "已讀回執與查看"; +"Block, exclude & pin" = "封鎖、排除與置頂"; +"Stories & messages" = "限時動態與訊息"; +"Voice & audio" = "語音與音訊"; +"Errors" = "錯誤"; +"Download progress" = "下載進度"; +"Bulk download progress" = "批次下載進度"; +"Copied post / reel URL" = "已複製貼文 / 連續短片連結"; +"Copied comment text" = "已複製留言文字"; +"Copied note text" = "已複製便籤文字"; +"Copied profile info" = "已複製個人檔案資訊"; +"Copied audio URL" = "已複製音訊連結"; +"Copied quality picker URL" = "已複製畫質選擇器連結"; +"Copied unlocked password" = "已複製解鎖密碼"; +"Copied description text" = "已複製描述文字"; +"DM seen / read receipts" = "私訊已讀 / 查看"; +"Story seen / read receipts" = "限時動態已讀 / 查看"; +"User blocked / unblocked" = "使用者已封鎖 / 解除封鎖"; +"Chat added / removed from exclude" = "聊天已加入 / 移出排除"; +"Story user added / removed from exclude" = "限時動態使用者已加入 / 移出排除"; +"Share-sheet recipient pinned" = "分享對象已釘選"; +"Unsent message detected" = "偵測到收回的訊息"; +"Live comments toggled" = "已切換直播留言"; +"Custom GIF sent" = "已傳送自訂 GIF"; +"Voice DM sent" = "已傳送語音私訊"; +"Audio extraction status" = "音訊擷取狀態"; +"Profile Analyzer complete" = "個人檔案分析完成"; +"Media extraction failed" = "媒體擷取失敗"; +"Permission denied" = "權限被拒"; +"Validation error" = "驗證錯誤"; +"Network / API error" = "網路 / API 錯誤"; +"Action error fallback" = "操作錯誤回退"; +"Invalid clipboard link" = "剪貼簿連結無效"; +"Experimental flag warning" = "實驗標誌警告"; +"Settings action confirmed" = "設定操作已確認"; +"Cache clearing progress" = "快取清理進度"; +"Other / uncategorized" = "其他 / 未分類"; +"Comment copied" = "留言已複製"; +"FFmpeg log copied" = "已複製 FFmpeg 日誌"; +"GIF inserted" = "已插入 GIF"; +"Story marked as seen" = "限時動態已標記為已看"; +"Saved" = "已儲存"; +"Tap to retry" = "點擊重試"; +"Looks great" = "看起來不錯"; +"Something broke" = "出錯了"; +"Just so you know" = "提醒一下"; +"Success preview" = "成功預覽"; +"Error preview" = "錯誤預覽"; +"Warning preview" = "警告預覽"; +"Info preview" = "資訊預覽"; +"Preview download…" = "預覽下載…"; +"Colors" = "顏色"; +"+ Add new language" = "+ 加入新語言"; +"Each chat can override this in the list" = "每個對話可在清單中單獨設定"; +"When on, Instagram location requests return your selected fake location. The map button adds a quick shortcut inside Friends Map." = "啟用後,Instagram 位置請求將回傳您選定的偽造位置。地圖按鈕在朋友地圖中加入快捷方式。"; +"Tap a preset to make it active. Swipe left to delete." = "點擊預設以啟用。向左滑動刪除。"; +"Override Instagram location reads." = "覆寫 Instagram 的位置讀取。"; +"Show the quick button in Friends Map." = "在朋友地圖中顯示快捷按鈕。"; +"Pick how absolute dates are written. “Default” leaves IG's own format untouched." = "選擇絕對日期的寫法。“預設”保留 IG 自己的格式。"; +"Dates younger than the threshold show as relative time. Older dates fall back to the absolute format. “Combine with date” shows both — “Jan 5, 2026 (2h)” or “2h – Jan 5, 2026”." = "比閾值更近的日期顯示為相對時間。較舊的日期回退為絕對格式。「與日期合併」同時顯示兩者 — 「2026 年 1 月 5 日 (2h)」或「2h – 2026 年 1 月 5 日」。"; +"Compact style" = "緊湊樣式"; +"Example: “1h” instead of “1 hour ago”" = "範例:“1h” 替代 “1 小時前”"; +"Example: “Jan 5, 2026 (2h)”" = "範例:“Jan 5, 2026 (2h)”"; +"iOS audio APIs couldn't process this file%@%@\n\nYou can try sending it to Instagram as-is, or open a support issue." = "iOS 音訊 API 無法處理此檔案%@%@\n\n您可以嘗試按原樣傳送到 Instagram,或提交支援問題。"; +"Combine with date" = "與日期合併"; +"Absolute then relative" = "先絕對後相對"; +"Relative – absolute" = "相對 – 絕對"; +"Relative when young, absolute when older." = "較近顯示相對,較遠顯示絕對。"; +"Example: “2h – Jan 5, 2026”" = "例如:「2h – 2026 年 1 月 5 日」";