Spaces:
Running
Running
| L10N = { | |
| "en": { | |
| "app_title": "Whyx-PROmpTea", | |
| "input_label": "Your Prompt", | |
| "input_placeholder": "Paste your prompt here...\nExample: masterpiece, best quality, 1girl, hatsune miku, vocaloid, smile, blue hair, twintails", | |
| "input_desc": "Enter any text prompt. Include a subject (1girl, 1boy) for best results. Artist tags like artist:hews are supported.", | |
| "model_label": "Model", | |
| "model_desc": "Anima: anime-style SD model. Illustrious XL: high-quality versatile SDXL model.", | |
| "anima": "Anima", | |
| "illustrious": "Illustrious XL", | |
| "rating_label": "Rating", | |
| "rating_desc": "Content safety level. PG-PG13 is SFW. R-R+ allows suggestive/NSFW content.", | |
| "rating_pg": "PG (SFW)", | |
| "rating_pg13": "PG-13", | |
| "rating_pg16": "PG-16+", | |
| "rating_r": "R", | |
| "rating_rplus": "R+", | |
| "variations_label": "Variations", | |
| "variations_desc": "Number of prompt variations to generate (1-10). More = more diverse outputs.", | |
| "creativity_label": "Creativity", | |
| "creativity_desc": "6 levels: Very Low (1 tag/cat, 10% replacement of your tags, no shuffle) → Extreme (5-10 tags/cat, 60% replacement, cross-category injection via rewrite_map, up to 3 wildcard categories, 30% synonym substitution, full shuffle, low diversity threshold). Controls how many new tags are added and how aggressively existing ones are replaced or substituted.", | |
| "creativity_very_low": "Very Low", | |
| "creativity_low": "Low", | |
| "creativity_medium": "Medium", | |
| "creativity_high": "High", | |
| "creativity_very_high": "Very High", | |
| "creativity_extreme": "Extreme", | |
| "weight_label": "Tag Weights", | |
| "weight_desc": "Off: plain tags. Light: quality tags (masterpiece, best quality), artists (1.2-1.4x) and impactful effects (bloom, depth of field, dramatic lighting, etc.) get boosted. On: all tags get random weights (0.9-1.1x).", | |
| "weight_off": "Off", | |
| "weight_light": "Light", | |
| "weight_on": "On", | |
| "categories_label": "Enhancement Categories", | |
| "categories_desc": "Select which tag categories to enhance your prompt with. Each category injects context-aware tags that are automatically filtered for conflicts, deduplicated (exact + synonym + fuzzy), and optionally enriched via web search (Danbooru). Creativity level controls how many tags per category and how aggressively existing tags are replaced.", | |
| "enable_cat": "Enable {}", | |
| "quality": "Quality", | |
| "quality_desc": "Quality & rating: masterpiece, best quality, score_9", | |
| "lighting": "Lighting", | |
| "lighting_desc": "Lighting styles: sunlight, neon glow, god rays", | |
| "composition": "Composition", | |
| "composition_desc": "Shot framing: dutch angle, aerial shot", | |
| "effects": "Visual Effects", | |
| "effects_desc": "Post-processing FX: bloom, depth of field, glitch", | |
| "atmosphere": "Atmosphere", | |
| "atmosphere_desc": "Mood & tone: dreamy, foreboding, nostalgic", | |
| "framing": "Framing", | |
| "framing_desc": "Camera angles: from above, rule of thirds", | |
| "style": "Style", | |
| "style_desc": "Art genres: ukiyo-e, ghibli, oil painting", | |
| "colors": "Colors", | |
| "colors_desc": "Color grading: teal & orange, sepia, duotone", | |
| "background": "Background", | |
| "background_desc": "Locations: city street, castle ruins, shrine", | |
| "pose": "Pose", | |
| "pose_desc": "Character poses: fighting stance, mid-air, meditating", | |
| "expression": "Expression", | |
| "expression_desc": "Expressions & archetypes: blush, smug, tsundere", | |
| "clothing": "Clothing", | |
| "clothing_desc": "Outfits: hoodie, kimono, armor", | |
| "special_fx": "Special FX", | |
| "special_fx_desc": "Magic & elemental FX: magic circle, portal, lightning aura", | |
| "nsfw": "NSFW", | |
| "nsfw_desc": "Adult tags: ahegao, nude, bondage", | |
| "year_meta": "Year / Meta", | |
| "year_meta_desc": "Temporal & technical: year 2025, highres, absurdres", | |
| "animal": "Animals", | |
| "animal_desc": "Creature features: cat ears, wings, dragon", | |
| "furry": "Furry", | |
| "furry_desc": "Furry & anthro: nekomimi, fluffy tail, paw pads", | |
| "object": "Objects", | |
| "object_desc": "Props & weapons: sword, glasses, umbrella", | |
| "food": "Food", | |
| "food_desc": "Food & drinks: sushi, ramen, cake", | |
| "vehicle": "Vehicles", | |
| "vehicle_desc": "Cars, ships, mecha & transport", | |
| "weapon": "Weapons", | |
| "weapon_desc": "Swords, bows, guns & armaments", | |
| "architecture": "Architecture", | |
| "architecture_desc": "Castles, towers, ruins & buildings", | |
| "demon": "Demon", | |
| "demon_desc": "Demonic auras, hellfire, dark magic & infernal themes", | |
| "angelic": "Angelic", | |
| "angelic_desc": "Holy auras, divine light, angel wings & sacred themes", | |
| "hair": "Hair", | |
| "hair_desc": "Hair colors, styles & accessories: twintails, ahoge, kanzashi", | |
| "body": "Body", | |
| "body_desc": "Body parts & details: collarbone, navel, freckles, abs", | |
| "accessory": "Accessory", | |
| "accessory_desc": "Jewelry & wearables: earrings, choker, goggles, sash", | |
| "season": "Season", | |
| "season_desc": "Seasons, holidays & weather: cherry blossoms, snow, christmas", | |
| "artist_section": "Artist Style", | |
| "artist_label": "Artist", | |
| "artist_style_placeholder": "Filter by style...", | |
| "artist_style_desc": "Filter artists by their art style: vibrant, dark, cute, elegant, etc.", | |
| "artist_all": "All", | |
| "artist_select": "Select Artists", | |
| "artist_search_label": "Search Artists", | |
| "artist_search_placeholder": "Type artist name, style or tag...", | |
| "artist_search_desc": "Search by artist name, style or signature tags. Top 50 popular artists shown by default.", | |
| "artist_preview_title": "Artist Preview", | |
| "artist_preview_empty": "Select an artist to see description, similar artists and Danbooru preview link.", | |
| "artist_select_desc": "Pick specific Danbooru artists. Their signature style tags will be injected. Up to 3 recommended.", | |
| "artist_placeholder": "Pick artists...", | |
| "tandem_section": "Artist Tandems", | |
| "tandem_label": "Tandems", | |
| "tandem_random": "Random Tandem", | |
| "tandem_random_desc": "Enable to randomly pick a compatible artist pair each generation.", | |
| "tandem_select": "Select Tandem", | |
| "tandem_select_desc": "Choose a pre-matched artist pair with compatible styles.", | |
| "tandem_placeholder": "Pick a tandem...", | |
| "tandem_blend": "Style Blend", | |
| "presets_label": "Quick Presets", | |
| "presets_desc": "One-click preset combinations for common styles.", | |
| "preset_cinematic": "Cinematic", | |
| "preset_cinematic_desc": "Film-like quality with dramatic lighting and atmosphere.", | |
| "preset_dreamy": "Dreamy", | |
| "preset_dreamy_desc": "Soft, ethereal, pastel colors with dreamy atmosphere.", | |
| "preset_vibrant": "Vibrant", | |
| "preset_vibrant_desc": "Bold colors, flat color, thick outlines for pop art style.", | |
| "preset_natural": "Natural", | |
| "preset_natural_desc": "Realistic lighting, natural colors, minimal effects.", | |
| "preset_dramatic": "Dramatic", | |
| "preset_dramatic_desc": "High contrast, dramatic lighting, bold compositions.", | |
| "preset_kawaii": "Kawaii", | |
| "preset_kawaii_desc": "Cute, soft, pastel colors with kawaii style tags.", | |
| "preset_gothic": "Gothic", | |
| "preset_gothic_desc": "Dark, moody atmosphere with gothic style elements.", | |
| "preset_cyberpunk": "Cyberpunk", | |
| "preset_cyberpunk_desc": "Neon, futuristic, tech-noir atmosphere.", | |
| "preset_watercolor": "Watercolor", | |
| "preset_watercolor_desc": "Soft, painterly watercolor aesthetic.", | |
| "preset_portrait": "Portrait", | |
| "preset_portrait_desc": "Portrait framing with detailed face and soft lighting.", | |
| "preset_landscape": "Landscape", | |
| "preset_landscape_desc": "Wide shot, detailed background, nature or cityscape.", | |
| "preset_mecha": "Mecha", | |
| "preset_mecha_desc": "Mechanical elements, detailed robots, sci-fi style.", | |
| "preset_fantasy": "Fantasy", | |
| "preset_fantasy_desc": "Magical effects, fantasy atmosphere, mythical creatures.", | |
| "preset_noir": "Noir", | |
| "preset_noir_desc": "Dark noir aesthetic with dramatic shadows.", | |
| "preset_sakura": "Sakura", | |
| "preset_sakura_desc": "Japanese aesthetic with cherry blossoms, traditional elements.", | |
| "preset_underwater": "Underwater", | |
| "preset_underwater_desc": "Underwater effects, aquatic atmosphere, blue tones.", | |
| "preset_space": "Space", | |
| "preset_space_desc": "Cosmic background, stars, planets, sci-fi atmosphere.", | |
| "preset_detailed_art": "Detailed Art", | |
| "preset_detailed_art_desc": "High detail tags: highres, absurdres, incredibly absurdres.", | |
| "preset_moe_blobs": "Moe Blobs", | |
| "preset_moe_blobs_desc": "Chibi, cute, soft Moe aesthetic with big eyes.", | |
| "preset_warrior": "Warrior", | |
| "preset_warrior_desc": "Action poses, armor, weapons, dynamic combat style.", | |
| "preset_retro": "Retro", | |
| "preset_retro_desc": "Vintage retro style with film grain and warm nostalgic colors.", | |
| "preset_steampunk": "Steampunk", | |
| "preset_steampunk_desc": "Brass gears, steam tech and Victorian sci-fi atmosphere.", | |
| "preset_magical_girl": "Magical Girl", | |
| "preset_magical_girl_desc": "Sparkles, magical outfits, transformation effects and cute expressions.", | |
| "preset_horror": "Horror", | |
| "preset_horror_desc": "Dark scary atmosphere, harsh lighting and frightening expressions.", | |
| "preset_winter": "Winter", | |
| "preset_winter_desc": "Snowy landscapes, cold colors and warm winter clothing.", | |
| "preset_summer": "Summer", | |
| "preset_summer_desc": "Bright sunny scenes, beach or meadow backgrounds and vibrant colors.", | |
| "preset_angelic": "Angelic", | |
| "preset_angelic_desc": "Holy ethereal glow, soft divine lighting and pure atmosphere.", | |
| "preset_slice_of_life": "Slice of Life", | |
| "preset_slice_of_life_desc": "Casual everyday scenes with natural poses and warm mood.", | |
| "preset_action": "Action", | |
| "preset_action_desc": "Dynamic movement, speed lines, impact sparks and energetic poses.", | |
| "preset_romantic": "Romantic", | |
| "preset_romantic_desc": "Soft romantic lighting, tender expressions and warm colors.", | |
| "preset_demon": "Demon", | |
| "preset_demon_desc": "Dark infernal aura, fiery effects and menacing expressions.", | |
| "preset_fantasy_creature": "Fantasy Creature", | |
| "preset_fantasy_creature_desc": "Mythical beasts, magical habitats and creature effects.", | |
| "preset_pirate": "Pirate / Nautical", | |
| "preset_pirate_desc": "Swashbuckling adventure, naval gear, ocean backgrounds.", | |
| "preset_sci_fi": "Sci-Fi Commander", | |
| "preset_sci_fi_desc": "Futuristic gear, energy weapons, neon and hologram effects.", | |
| "preset_medieval": "Medieval / Renaissance", | |
| "preset_medieval_desc": "Castles, knights, royal attire and torchlit atmosphere.", | |
| "preset_mecha_pilot": "Mecha Pilot", | |
| "preset_mecha_pilot_desc": "Cockpit view, pilot suits, giant robot controls.", | |
| "preset_maid_cafe": "Maid Cafe", | |
| "preset_maid_cafe_desc": "Maid outfits, cafe setting, sweet treats and warm colors.", | |
| "preset_holiday": "Holiday / Christmas", | |
| "preset_holiday_desc": "Festive decorations, holiday outfits, seasonal atmosphere.", | |
| "preset_furry_anthro": "Furry / Anthro", | |
| "preset_furry_anthro_desc": "Anthro characters, animal ears, fluffy tails, feral expressions.", | |
| "preset_school": "School / Uniform", | |
| "preset_school_desc": "School uniforms, classroom settings, youthful expressions.", | |
| "generate_btn": "✨ Generate", | |
| "generate_btn_loading": "⏳ Generating...", | |
| "mode_label": "Mode", | |
| "mode_desc": "Standard Vary: add category tags to your prompt. Full Rewrite: rebuild prompt from scratch using your concepts.", | |
| "mode_standard": "Standard Vary", | |
| "mode_rewrite": "Full Rewrite", | |
| "fx_label": "Effects Layer", | |
| "fx_desc": "Add an effects/lighting layer on top of the variations (off / light / rich).", | |
| "fx_off": "Off", | |
| "fx_light": "Light", | |
| "fx_rich": "Rich", | |
| "results_label": "Generated Prompts", | |
| "results_desc": "Enhanced prompt variations. Click 📋 to copy.", | |
| "copy_btn": "Copy", | |
| "copied_btn": "Copied!", | |
| "hotkeys_hint": "Hotkeys: Ctrl+Shift+Enter = Generate, Ctrl+Shift+X = Clear prompt", | |
| "seed_label": "Seed", | |
| "seed_info": "Leave empty for random", | |
| "reload_btn": "🔄 Reload Data", | |
| "result_placeholder": "Click '✨ Generate' to create variations", | |
| "neg_placeholder": "Negative prompt (auto-generated)", | |
| "no_results": "Click '✨ Generate' to create prompt variations", | |
| "error_parse": "Could not parse prompt. Include a subject (e.g. 1girl, 1boy).", | |
| "language_label": "Language", | |
| "lang_en": "EN", | |
| "lang_ru": "RU", | |
| "similar_artists": "Similar artists", | |
| "top_artists_in_style": "Top artists in this style", | |
| "danbooru_link": "\U0001f5bc\ufe0f Danbooru \u2197", | |
| "generation_error": "Generation error: {exc}", | |
| "analyzer_section": "Prompt Analysis", | |
| "analyzer_desc": "Live analysis of your prompt structure and recommendations.", | |
| "history_section": "History & Favorites", | |
| "history_desc": "Recent generations and your liked prompts.", | |
| "history_empty": "No generations yet. Generate some prompts first!", | |
| "history_prompt": "Prompt", | |
| "history_restore": "Restore", | |
| "history_liked": "Liked prompts", | |
| "history_no_likes": "No liked prompts yet. Click ♥ on a result to favorite it.", | |
| "like_btn": "♥", | |
| "liked_btn": "♥", | |
| "favorites_label": "Favorites", | |
| "web_search_label": "🌐 Web Tag Search", | |
| "web_search_desc": "Search Danbooru for related tags, or browse local tags by keyword.", | |
| "web_search_placeholder": "Search tags (e.g. 1girl, sunset, blue_hair)...", | |
| "web_search_btn": "Search", | |
| "web_search_offline": "Local results (offline)", | |
| "web_search_online": "Danbooru results", | |
| "web_search_error": "Search error: {exc}", | |
| "web_search_empty": "Enter a keyword to search tags.", | |
| "web_enrich_label": "🌐 Web Enrich", | |
| "web_enrich_desc": "Auto-enrich prompt with tags fetched from Danbooru. Falls back to offline co-occurrence data.", | |
| "web_enrich_on": "On", | |
| "web_enrich_off": "Off", | |
| "web_enrich_no_results": "No enrichment tags found.", | |
| "web_enrich_applied": "+{n} enrichment tags applied", | |
| "analyzer_parse_error": "Could not parse prompt.", | |
| "analyzer_subject": "Subject", | |
| "analyzer_character": "Character", | |
| "analyzer_series": "Series", | |
| "analyzer_artists": "Artists", | |
| "analyzer_tags": "Tags", | |
| "analyzer_quality": "Quality", | |
| "analyzer_meta": "Meta", | |
| "analyzer_general": "General", | |
| "analyzer_tokens": "Tokens", | |
| "analyzer_natural_lang": "\U0001f310 Natural Language", | |
| "analyzer_status_good": "\u2705 Good", | |
| "analyzer_status_missing": "\u274c Missing", | |
| "analyzer_status_conflict": "\u26a0\ufe0f Conflict", | |
| "analyzer_status_low": "\u26a0\ufe0f Low", | |
| "analyzer_conflict": "(conflict)", | |
| "analyzer_duplicate": "(duplicate)", | |
| "rec_missing_subject": "Add a subject tag (1girl, 1boy, etc.)", | |
| "rec_unrecognized": "Could not recognize prompt structure", | |
| "rec_nl_only": "Natural language detected — consider adding comma-separated tags for better results", | |
| "rec_quality_missing": "No quality tags — add masterpiece, best quality", | |
| "rec_quality_conflict": "Mixed positive & negative quality tags", | |
| "rec_quality_low": "Consider adding masterpiece / best quality", | |
| "rec_safety_missing": "No safety tag (safe/sensitive/nsfw/explicit)", | |
| "rec_artist_missing": "Consider adding an artist tag (artist:name)", | |
| "rec_token_clip": "Prompt exceeds ~{n} CLIP tokens — may be truncated", | |
| "rec_token_t5": "Prompt exceeds ~{n} T5 tokens", | |
| "rec_tag_conflicts": "Conflicting tags detected", | |
| "rec_duplicate_tags": "Duplicate tags detected", | |
| "rec_too_many_tags": "Too many general tags — consider being more selective", | |
| "rec_character_series_missing": "Consider adding a character and series name", | |
| "rec_too_many_artists": "More than 3 artists may confuse the model", | |
| "analyzer_category_overload": "(category overload)", | |
| "analyzer_theme_overload": "(theme overload)", | |
| "analyzer_intent_mismatch": "(intent mismatch)", | |
| "rec_theme_overload": "Too many tags from one theme group — consider diversifying", | |
| "rec_intent_mismatches": "Some tags conflict with detected intent", | |
| "rec_low_core_ratio": "Too few core tags (subject, character, body) — add fundamental descriptors first", | |
| "rec_high_core_ratio": "Mostly core tags — add decorative elements for richness", | |
| "tagger_section": "Image Tagger", | |
| "tagger_desc": "Upload an image to automatically recognize Danbooru-style tags using WD EVA02-Large model.", | |
| "tagger_image": "Upload Image", | |
| "tagger_gen_threshold": "General Threshold", | |
| "tagger_gen_threshold_desc": "Tags below this confidence are skipped (default: 0.35)", | |
| "tagger_char_threshold": "Character Threshold", | |
| "tagger_char_threshold_desc": "Higher threshold for character tags (default: 0.75)", | |
| "tagger_btn": "Tag Image", | |
| "tagger_no_image": "Please upload an image first.", | |
| "tagger_unavailable": "Image tagger is unavailable. Install the optional dependencies (torch, timm) and set WHYX_ENABLE_TAGGER=1 to enable it.", | |
| "tagger_error": "Tagging error: {exc}", | |
| "tagger_processing": "Analyzing image…", | |
| "tagger_results": "Recognized Tags", | |
| "tagger_ratings": "Ratings", | |
| "tagger_characters": "Characters", | |
| "tagger_apply_btn": "Apply Tags to Prompt", | |
| "tagger_ratings_label": "Classifying…", | |
| "tagger_confidence": "Conf.", | |
| "tagger_top_general": "Top General Tags", | |
| "tagger_no_tags": "No tags above threshold. Try lowering the confidence threshold.", | |
| "output_format_label": "Tag output format", | |
| "output_format_desc": "Prompt: spaces, e.g. 'animal ears' (Anima/Illustrious ready). Booru: underscores, e.g. 'animal_ears'. score_N always keeps its underscore.", | |
| "advanced_desc": "Optional hygiene layer applied to every generation: strip quality/artist/LoRA/metadata tags, blacklist unwanted tags (mirrored to negatives), and top up short prompts. Expand to configure.", | |
| "app_subtitle": "Prompt Enhancement Studio — Anima & Illustrious XL", | |
| "theme_label": "Theme", | |
| "theme_dark": "Dark", | |
| "theme_light": "Light", | |
| "output_format_prompt": "Prompt (spaces)", | |
| "output_format_booru": "Booru (underscores)", | |
| "tagger_format_label": "Tag format", | |
| "tagger_format_desc": "Prompt-ready escapes parentheses; Raw keeps booru underscores.", | |
| "tagger_format_prompt": "Prompt-ready", | |
| "tagger_format_raw": "Raw (booru)", | |
| "tagger_model_label": "Model", | |
| "tagger_mode_label": "Ensemble mode", | |
| "tagger_pose_toggle_label": "Pose analysis", | |
| "tagger_pose_toggle_info": "Enable YOLO pose detection (adds people/pose metadata)", | |
| "tagger_mode_info": "Combine multiple WD14 taggers for broader coverage", | |
| "tagger_mode_ensemble": "Ensemble (best)", | |
| "tagger_mode_eva": "WD14 EVA02", | |
| "tagger_mode_swinv2": "WD14 SwinV2", | |
| # --- tagger / ensemble --- | |
| # --- tagger / ensemble --- | |
| "tagger_mode_vit": "WD14 ViT", | |
| "tagger_mode_qwen": "Qwen3-VL (NL caption)", | |
| "tagger_mode_qwen_desc": "Qwen3-VL (Natural-language caption)", | |
| "tagger_pose_label": "Pose", | |
| "tagger_pose_single": "{n} person detected", | |
| "tagger_pose_many": "{n} people detected", | |
| "tagger_caption_label": "Natural-language caption", | |
| "tagger_chips_label": "Detected tags (click to toggle)", | |
| "tagger_chars_label": "Detected characters", | |
| "tagger_tags_label": "Tags to use", | |
| "tagger_tags_desc": "Edit the list, then Apply or Copy. Built from the toggled tags above.", | |
| "tagger_tags_ph": "Recognized tags will appear here…", | |
| "tagger_copy": "Copy", | |
| "tab_generate": "Generate", | |
| "tab_tagger": "Tagger", | |
| "tab_tools": "Tools", | |
| "tab_history": "History", | |
| "advanced_label": "Advanced & Cleanup", | |
| "cleanup_label": "Cleanup & Blacklist", | |
| "blacklist_label": "Tags to remove (blacklist)", | |
| "blacklist_desc": "Comma- or newline-separated tags excluded from every variation (mirrors Booru Prompt Gallery' Tags to remove').", | |
| "blacklist_ph": "e.g. simple background, watermark, patreon logo", | |
| "blacklist_mirror": "Also add blacklisted tags to the negative prompt", | |
| "strip_quality": "Strip quality tags", | |
| "strip_artist": "Strip artist tags", | |
| "strip_lora": "Strip LoRA / embedding triggers", | |
| "strip_meta": "Strip meta tags", | |
| "min_tags_label": "Minimum tag count", | |
| "min_tags_desc": "Top up each variation to at least this many general tags by pulling safe pool tags.", | |
| "user_presets_label": "My Presets", | |
| "user_preset_name": "Preset name", | |
| "user_preset_name_ph": "e.g. my_style", | |
| "user_preset_tags": "Preset tags", | |
| "user_preset_tags_ph": "comma-separated tags to store, e.g. neon glow, lens flare, cyberpunk", | |
| "user_preset_save": "Save preset", | |
| "user_preset_delete": "Delete preset", | |
| "user_preset_select": "Saved presets", | |
| "user_preset_apply": "Apply to generation", | |
| "user_preset_need_name": "Enter a preset name first.", | |
| "user_preset_saved": "Preset '{name}' saved.", | |
| "user_preset_pick": "Pick a saved preset first.", | |
| "user_preset_applied": "Preset '{name}' added to generation.", | |
| "user_preset_deleted": "Preset '{name}' deleted.", | |
| }, | |
| "ru": { | |
| "app_title": "Whyx-PROmpTea", | |
| "app_subtitle": "Студия улучшения промптов — Anima & Illustrious XL", | |
| "input_label": "Ваш промпт", | |
| "input_placeholder": "Вставьте промпт сюда...\nПример: masterpiece, best quality, 1girl, hatsune miku, vocaloid, smile, blue hair, twintails", | |
| "input_desc": "Введите текстовый промпт. Для лучшего результата укажите subject (1girl, 1boy). Поддерживаются теги художников: artist:hews.", | |
| "model_label": "Модель", | |
| "model_desc": "Anima: SD модель для аниме-стиля. Illustrious XL: универсальная SDXL модель высокого качества.", | |
| "anima": "Anima", | |
| "illustrious": "Illustrious XL", | |
| "rating_label": "Рейтинг", | |
| "rating_desc": "Уровень безопасности контента. PG-PG13 — безобидный. R-R+ допускает откровенный контент.", | |
| "rating_pg": "PG (SFW)", | |
| "rating_pg13": "PG-13", | |
| "rating_pg16": "PG-16+", | |
| "rating_r": "R", | |
| "rating_rplus": "R+", | |
| "variations_label": "Вариации", | |
| "variations_desc": "Количество вариаций промпта (1-10). Больше = разнообразнее результаты.", | |
| "creativity_label": "Креативность", | |
| "creativity_desc": "6 уровней: Very Low (1 тег/кат, 10% замены ваших тегов, без перемешивания) → Extreme (5-10 тегов/кат, 60% замены, межкатегор. инъекция через rewrite_map, до 3 случайных категорий, 30% замена синонимов, полное перемешивание, низкий порог разнообразия). Влияет на количество новых тегов и агрессивность замены существующих.", | |
| "creativity_very_low": "Очень низкая", | |
| "creativity_low": "Низкая", | |
| "creativity_medium": "Средняя", | |
| "creativity_high": "Высокая", | |
| "creativity_very_high": "Очень высокая", | |
| "creativity_extreme": "Экстрим", | |
| "weight_label": "Веса тегов", | |
| "weight_desc": "Выкл: обычные теги. Легкие: качественные теги (masterpiece, best quality), художники (1.2-1.4x) и значимые эффекты (bloom, depth of field, dramatic lighting и др.) получают усиление. Вкл: все теги получают случайные веса (0.9-1.1x).", | |
| "weight_off": "Выкл", | |
| "weight_light": "Легкие", | |
| "weight_on": "Вкл", | |
| "categories_label": "Категории улучшения", | |
| "categories_desc": "Выберите категории тегов для улучшения промпта. Каждая категория добавляет контекстно-зависимые теги с авто-фильтрацией конфликтов, дедупликацией (точная + синонимы + нечёткая) и опциональным обогащением через Danbooru. Уровень креативности определяет количество тегов на категорию и агрессивность замены существующих тегов.", | |
| "enable_cat": "Включить {}", | |
| "quality": "Качество", | |
| "quality_desc": "Качество и рейтинг: masterpiece, best quality, score_9", | |
| "lighting": "Освещение", | |
| "lighting_desc": "Типы освещения: sunlight, neon glow, god rays", | |
| "composition": "Композиция", | |
| "composition_desc": "Типы кадров: dutch angle, aerial shot", | |
| "effects": "Визуальные эффекты", | |
| "effects_desc": "Пост-обработка FX: bloom, depth of field, glitch", | |
| "atmosphere": "Атмосфера", | |
| "atmosphere_desc": "Настроение: dreamy, foreboding, nostalgic", | |
| "framing": "Кадр", | |
| "framing_desc": "Ракурсы: from above, rule of thirds", | |
| "style": "Стиль", | |
| "style_desc": "Жанры: ukiyo-e, ghibli, oil painting", | |
| "colors": "Цвета", | |
| "colors_desc": "Цветокоррекция: teal & orange, sepia, duotone", | |
| "background": "Фон", | |
| "background_desc": "Локации: city street, castle ruins, shrine", | |
| "pose": "Поза", | |
| "pose_desc": "Позы: fighting stance, mid-air, meditating", | |
| "expression": "Выражение", | |
| "expression_desc": "Выражения: blush, smug, tsundere", | |
| "clothing": "Одежда", | |
| "clothing_desc": "Одежда: hoodie, kimono, armor", | |
| "special_fx": "Спецэффекты", | |
| "special_fx_desc": "Магия и FX: magic circle, portal, lightning aura", | |
| "nsfw": "NSFW", | |
| "nsfw_desc": "Взрослые теги: ahegao, nude, bondage", | |
| "year_meta": "Год / Мета", | |
| "year_meta_desc": "Год и мета: year 2025, highres, absurdres", | |
| "animal": "Животные", | |
| "animal_desc": "Черты: cat ears, wings, dragon", | |
| "furry": "Фурри", | |
| "furry_desc": "Фурри: nekomimi, fluffy tail, paw pads", | |
| "object": "Предметы", | |
| "object_desc": "Предметы: sword, glasses, umbrella", | |
| "food": "Еда", | |
| "food_desc": "Еда: sushi, ramen, cake", | |
| "vehicle": "Транспорт", | |
| "vehicle_desc": "Машины, корабли, меха и транспорт", | |
| "weapon": "Оружие", | |
| "weapon_desc": "Мечи, луки, пушки и вооружение", | |
| "architecture": "Архитектура", | |
| "architecture_desc": "Замки, башни, руины и строения", | |
| "demon": "Демон", | |
| "demon_desc": "Демонические ауры, адский огонь, тёмная магия и темы преисподней", | |
| "angelic": "Ангельское", | |
| "angelic_desc": "Священные ауры, божественный свет, крылья ангелов и святые темы", | |
| "hair": "Волосы", | |
| "hair_desc": "Цвета, стили и аксессуары: twintails, ahoge, kanzashi", | |
| "body": "Тело", | |
| "body_desc": "Части тела: collarbone, navel, freckles, abs", | |
| "accessory": "Аксессуары", | |
| "accessory_desc": "Украшения: earrings, choker, goggles, sash", | |
| "season": "Сезон", | |
| "season_desc": "Сезоны, праздники, погода: cherry blossoms, snow, christmas", | |
| "artist_section": "Стиль художника", | |
| "artist_label": "Художник", | |
| "artist_style_placeholder": "Фильтр по стилю...", | |
| "artist_style_desc": "Фильтр художников по стилю: vibrant, dark, cute, elegant и др.", | |
| "artist_all": "Все", | |
| "artist_select": "Выбрать художников", | |
| "artist_search_label": "Поиск художников", | |
| "artist_search_placeholder": "Введите имя, стиль или тег...", | |
| "artist_search_desc": "Поиск по имени, стилю или signature-тегам. По умолчанию показаны топ-50 популярных.", | |
| "artist_preview_title": "Превью художника", | |
| "artist_preview_empty": "Выберите художника, чтобы увидеть описание, похожих авторов и ссылку на Danbooru.", | |
| "artist_select_desc": "Выберите конкретных художников Danbooru. Их signature style теги будут добавлены. Рекомендуется до 3.", | |
| "artist_placeholder": "Выберите...", | |
| "tandem_section": "Тандемы художников", | |
| "tandem_label": "Тандемы", | |
| "tandem_random": "Случайный тандем", | |
| "tandem_random_desc": "Включите для случайного выбора совместимой пары художников при каждой генерации.", | |
| "tandem_select": "Выбрать тандем", | |
| "tandem_select_desc": "Выберите готовую пару художников с совместимыми стилями.", | |
| "tandem_placeholder": "Выбрать...", | |
| "tandem_blend": "Смешение стилей", | |
| "presets_label": "Быстрые пресеты", | |
| "presets_desc": "Готовые комбинации для популярных стилей одним нажатием.", | |
| "preset_cinematic": "Кино", | |
| "preset_cinematic_desc": "Кинематографическое качество с драматичным освещением и атмосферой.", | |
| "preset_dreamy": "Мечта", | |
| "preset_dreamy_desc": "Мягкая, эфирная, пастельная атмосфера с мечтательным настроением.", | |
| "preset_vibrant": "Яркий", | |
| "preset_vibrant_desc": "Яркие цвета, flat color, толстые контуры в стиле поп-арт.", | |
| "preset_natural": "Натурал", | |
| "preset_natural_desc": "Реалистичное освещение, натуральные цвета, минимум эффектов.", | |
| "preset_dramatic": "Драма", | |
| "preset_dramatic_desc": "Высокий контраст, драматичное освещение, смелые композиции.", | |
| "preset_kawaii": "Кавай", | |
| "preset_kawaii_desc": "Милый, мягкий, пастельные цвета в кавай-стиле.", | |
| "preset_gothic": "Готика", | |
| "preset_gothic_desc": "Тёмная, мрачная атмосфера с готическими элементами.", | |
| "preset_cyberpunk": "Киберпанк", | |
| "preset_cyberpunk_desc": "Неон, футуризм, техно-нуар атмосфера.", | |
| "preset_watercolor": "Акварель", | |
| "preset_watercolor_desc": "Мягкая художественная акварельная эстетика.", | |
| "preset_portrait": "Портрет", | |
| "preset_portrait_desc": "Портретный кадр с детализированным лицом и мягким освещением.", | |
| "preset_landscape": "Пейзаж", | |
| "preset_landscape_desc": "Широкий кадр, детализированный фон, природа или городской пейзаж.", | |
| "preset_mecha": "Меха", | |
| "preset_mecha_desc": "Механические элементы, детализированные роботы, sci-fi стиль.", | |
| "preset_fantasy": "Фэнтези", | |
| "preset_fantasy_desc": "Магические эффекты, фэнтези-атмосфера, мифические существа.", | |
| "preset_noir": "Нуар", | |
| "preset_noir_desc": "Тёмная нуарная эстетика с драматичными тенями.", | |
| "preset_sakura": "Сакура", | |
| "preset_sakura_desc": "Японская эстетика с сакурой, традиционные элементы.", | |
| "preset_underwater": "Подводный", | |
| "preset_underwater_desc": "Подводные эффекты, водная атмосфера, синие тона.", | |
| "preset_space": "Космос", | |
| "preset_space_desc": "Космический фон, звёзды, планеты, sci-fi атмосфера.", | |
| "preset_detailed_art": "Детализированное", | |
| "preset_detailed_art_desc": "Теги высокой детализации: highres, absurdres, incredibly absurdres.", | |
| "preset_moe_blobs": "Моэ", | |
| "preset_moe_blobs_desc": "Чиби, милое, мягкое моэ-эстетика с большими глазами.", | |
| "preset_warrior": "Воин", | |
| "preset_warrior_desc": "Динамичные позы, броня, оружие, боевой стиль.", | |
| "preset_retro": "Ретро", | |
| "preset_retro_desc": "Винтажный ретро-стиль с фильм-грейном и тёплыми ностальгическими цветами.", | |
| "preset_steampunk": "Стимпанк", | |
| "preset_steampunk_desc": "Латунные шестерёнки, паровые технологии и викторианская sci-fi атмосфера.", | |
| "preset_magical_girl": "Девочка-волшебница", | |
| "preset_magical_girl_desc": "Блёстки, волшебные наряды, эффекты трансформации и милые выражения.", | |
| "preset_horror": "Хоррор", | |
| "preset_horror_desc": "Тёмная страшная атмосфера, жёсткое освещение и пугающие выражения.", | |
| "preset_winter": "Зима", | |
| "preset_winter_desc": "Снежные пейзажи, холодные цвета и тёплая зимняя одежда.", | |
| "preset_summer": "Лето", | |
| "preset_summer_desc": "Яркие солнечные сцены, пляж или луг на фоне и насыщенные цвета.", | |
| "preset_angelic": "Ангельский", | |
| "preset_angelic_desc": "Священное эфирное сияние, мягкое божественное освещение и чистая атмосфера.", | |
| "preset_slice_of_life": "Повседневность", | |
| "preset_slice_of_life_desc": "Повседневные сцены с естественными позами и тёплым настроением.", | |
| "preset_action": "Экшн", | |
| "preset_action_desc": "Динамичное движение, линии скорости, искры удара и энергичные позы.", | |
| "preset_romantic": "Романтика", | |
| "preset_romantic_desc": "Мягкое романтическое освещение, нежные выражения и тёплые цвета.", | |
| "preset_demon": "Демон", | |
| "preset_demon_desc": "Тёмная преисподняя аура, огненные эффекты и угрожающие выражения.", | |
| "preset_fantasy_creature": "Фэнтези-создание", | |
| "preset_fantasy_creature_desc": "Мифические звери, волшебные места обитания и эффекты существ.", | |
| "preset_pirate": "Пират / Море", | |
| "preset_pirate_desc": "Приключения, морская амуниция, океанские фоны.", | |
| "preset_sci_fi": "Научная фантастика", | |
| "preset_sci_fi_desc": "Футуристическая экипировка, энергетическое оружие, неон и голограммы.", | |
| "preset_medieval": "Средневековье", | |
| "preset_medieval_desc": "Замки, рыцари, королевские одежды и атмосфера факелов.", | |
| "preset_mecha_pilot": "Пилот меха", | |
| "preset_mecha_pilot_desc": "Вид из кабины, костюмы пилота, управление гигантскими роботами.", | |
| "preset_maid_cafe": "Мейд-кафе", | |
| "preset_maid_cafe_desc": "Формы горничных, кафе, десерты и тёплые цвета.", | |
| "preset_holiday": "Праздник", | |
| "preset_holiday_desc": "Праздничные украшения, наряды, сезонная атмосфера.", | |
| "preset_furry_anthro": "Фурри", | |
| "preset_furry_anthro_desc": "Антропоморфные персонажи, уши, хвосты, звериные выражения.", | |
| "preset_school": "Школа", | |
| "preset_school_desc": "Школьная форма, классы, юные выражения.", | |
| "generate_btn": "✨ Создать", | |
| "generate_btn_loading": "⏳ Создание...", | |
| "mode_label": "Режим", | |
| "mode_desc": "Стандартная вариация: добавляет теги категорий к вашему промпту. Полная пересборка: перестраивает промпт с нуля, используя ваши концепты.", | |
| "mode_standard": "Стандартная вариация", | |
| "mode_rewrite": "Полная пересборка", | |
| "fx_label": "Слой эффектов", | |
| "fx_desc": "Добавить слой эффектов/освещения поверх вариаций (выкл / легко / насыщенно).", | |
| "fx_off": "Выкл", | |
| "fx_light": "Легко", | |
| "fx_rich": "Насыщенно", | |
| "results_label": "Готовые промпты", | |
| "results_desc": "Улучшенные вариации промпта. Нажмите 📋 для копирования.", | |
| "copy_btn": "Копировать", | |
| "copied_btn": "Скопировано!", | |
| "hotkeys_hint": "Горячие клавиши: Ctrl+Shift+Enter — Создать, Ctrl+Shift+X — Очистить промпт", | |
| "seed_label": "Зерно (Seed)", | |
| "seed_info": "Оставьте пустым для случайного значения", | |
| "reload_btn": "🔄 Обновить данные", | |
| "result_placeholder": "Нажмите «✨ Создать» для генерации", | |
| "neg_placeholder": "Негативный промпт (авто-генерация)", | |
| "no_results": "Нажмите «✨ Создать» для генерации вариаций", | |
| "error_parse": "Ошибка разбора. Укажите тему (1girl, 1boy и т.д.).", | |
| "language_label": "Язык", | |
| "lang_en": "EN", | |
| "lang_ru": "RU", | |
| "similar_artists": "Похожие художники", | |
| "top_artists_in_style": "Топ художников в этом стиле", | |
| "danbooru_link": "\U0001f5bc\ufe0f Danbooru \u2197", | |
| "generation_error": "Ошибка генерации: {exc}", | |
| "analyzer_section": "Анализ промпта", | |
| "analyzer_desc": "Анализ структуры промпта в реальном времени и рекомендации.", | |
| "history_section": "История и избранное", | |
| "history_desc": "Последние генерации и отмеченные промпты.", | |
| "history_empty": "История пуста. Сначала сгенерируйте промпты!", | |
| "history_prompt": "Промпт", | |
| "history_restore": "Восстановить", | |
| "history_liked": "Понравившиеся промпты", | |
| "history_no_likes": "Пока нет понравившихся промптов. Нажмите ♥ на результате, чтобы добавить в избранное.", | |
| "like_btn": "♥", | |
| "liked_btn": "♥", | |
| "favorites_label": "Избранное", | |
| "web_search_label": "🌐 Поиск тегов", | |
| "web_search_desc": "Поиск тегов на Danbooru или в локальном пуле по ключевым словам.", | |
| "web_search_placeholder": "Поиск тегов (например: 1girl, sunset, blue_hair)...", | |
| "web_search_btn": "Искать", | |
| "web_search_offline": "Локальные результаты", | |
| "web_search_online": "Результаты Danbooru", | |
| "web_search_error": "Ошибка поиска: {exc}", | |
| "web_search_empty": "Введите ключевое слово для поиска тегов.", | |
| "web_enrich_label": "🌐 Веб-обогащение", | |
| "web_enrich_desc": "Автоматическое обогащение промпта тегами с Danbooru. При ошибке сети — локальная база co-occurrence.", | |
| "web_enrich_on": "Вкл", | |
| "web_enrich_off": "Выкл", | |
| "web_enrich_no_results": "Теги для обогащения не найдены.", | |
| "web_enrich_applied": "+{n} тегов обогащения добавлено", | |
| "analyzer_parse_error": "Не удалось разобрать промпт.", | |
| "analyzer_subject": "Субъект", | |
| "analyzer_character": "Персонаж", | |
| "analyzer_series": "Серия", | |
| "analyzer_artists": "Художники", | |
| "analyzer_tags": "Теги", | |
| "analyzer_quality": "Качество", | |
| "analyzer_meta": "Мета", | |
| "analyzer_general": "Общие", | |
| "analyzer_tokens": "Токены", | |
| "analyzer_natural_lang": "\U0001f310 Естественный язык", | |
| "analyzer_status_good": "\u2705 Хорошо", | |
| "analyzer_status_missing": "\u274c Отсутствуют", | |
| "analyzer_status_conflict": "\u26a0\ufe0f Конфликт", | |
| "analyzer_status_low": "\u26a0\ufe0f Низкое", | |
| "analyzer_conflict": "(конфликт)", | |
| "analyzer_duplicate": "(дубликат)", | |
| "rec_missing_subject": "Добавьте тег субъекта (1girl, 1boy и т.д.)", | |
| "rec_unrecognized": "Не удалось распознать структуру промпта", | |
| "rec_nl_only": "Обнаружен естественный язык — добавьте теги через запятую для лучшего результата", | |
| "rec_quality_missing": "Нет тегов качества — добавьте masterpiece, best quality", | |
| "rec_quality_conflict": "Смешаны положительные и отрицательные теги качества", | |
| "rec_quality_low": "Рекомендуется добавить masterpiece / best quality", | |
| "rec_safety_missing": "Нет тега безопасности (safe/sensitive/nsfw/explicit)", | |
| "rec_artist_missing": "Рекомендуется добавить тег художника (artist:name)", | |
| "rec_token_clip": "Промпт превышает ~{n} токенов CLIP — может быть обрезан", | |
| "rec_token_t5": "Промпт превышает ~{n} токенов T5", | |
| "rec_tag_conflicts": "Обнаружены конфликтующие теги", | |
| "rec_duplicate_tags": "Обнаружены дублирующиеся теги", | |
| "rec_too_many_tags": "Слишком много общих тегов — будьте избирательнее", | |
| "rec_character_series_missing": "Рекомендуется добавить персонажа и название серии", | |
| "rec_too_many_artists": "Более 3 художников могут запутать модель", | |
| "analyzer_category_overload": "(перегрузка категории)", | |
| "analyzer_theme_overload": "(перегрузка темы)", | |
| "analyzer_intent_mismatch": "(несоответствие интенту)", | |
| "rec_theme_overload": "Слишком много тегов из одной темы — добавьте разнообразие", | |
| "rec_intent_mismatches": "Некоторые теги противоречат определённому интенту сцены", | |
| "rec_low_core_ratio": "Слишком мало основных тегов (subject, character, body) — сначала добавьте базовые дескрипторы", | |
| "rec_high_core_ratio": "Преимущественно базовые теги — добавьте декоративные элементы для насыщенности", | |
| "tagger_section": "Теги изображения", | |
| "tagger_desc": "Загрузите изображение для автоматического распознавания тегов в стиле Danbooru с помощью модели WD EVA02-Large.", | |
| "tagger_image": "Загрузить изображение", | |
| "tagger_gen_threshold": "Общий порог", | |
| "tagger_gen_threshold_desc": "Теги ниже этого порога пропускаются (по умолчанию: 0.35)", | |
| "tagger_char_threshold": "Порог персонажей", | |
| "tagger_char_threshold_desc": "Более высокий порог для тегов персонажей (по умолчанию: 0.75)", | |
| "tagger_btn": "Распознать теги", | |
| "tagger_no_image": "Сначала загрузите изображение.", | |
| "tagger_unavailable": "Имидж-теггер недоступен. Установите опциональные зависимости (torch, timm) и задайте WHYX_ENABLE_TAGGER=1, чтобы включить его.", | |
| "tagger_error": "Ошибка распознавания: {exc}", | |
| "tagger_processing": "Анализ изображения…", | |
| "tagger_results": "Распознанные теги", | |
| "tagger_ratings": "Рейтинги", | |
| "tagger_characters": "Персонажи", | |
| "tagger_apply_btn": "Применить теги в промпт", | |
| "tagger_ratings_label": "Классификация…", | |
| "tagger_confidence": "Увер.", | |
| "tagger_top_general": "Основные теги", | |
| "tagger_no_tags": "Нет тегов выше порога. Попробуйте снизить порог уверенности.", | |
| "output_format_label": "Формат вывода тегов", | |
| "output_format_desc": "Промпт: пробелы, напр. «animal ears» (для Anima/Illustrious). Booru: подчёркивания, напр. «animal_ears». score_N всегда сохраняет подчёркивание.", | |
| "output_format_prompt": "Промпт (пробелы)", | |
| "output_format_booru": "Booru (подчёркивания)", | |
| "tagger_format_label": "Формат тегов", | |
| "tagger_format_desc": "Prompt-ready экранирует скобки; Raw сохраняет booru-подчёркивания.", | |
| "tagger_format_prompt": "Для промпта", | |
| "tagger_format_raw": "Исходный (booru)", | |
| "tagger_model_label": "Модель", | |
| "tagger_mode_label": "Режим ансамбля", | |
| "tagger_pose_toggle_label": "Определение позы", | |
| "tagger_pose_toggle_info": "Включает YOLO-распознавание поз (добавляет метаданные людей/поз)", | |
| "tagger_mode_info": "Комбинируйте несколько WD14-теггеров для большего покрытия", | |
| "tagger_mode_ensemble": "Ансамбль (лучший)", | |
| "tagger_mode_eva": "WD14 EVA02", | |
| "tagger_mode_swinv2": "WD14 SwinV2", | |
| "tagger_mode_vit": "WD14 ViT", | |
| "tagger_mode_qwen": "Qwen3-VL (NL описание)", | |
| "tagger_mode_qwen_desc": "Qwen3-VL (Подробное описание изображения)", | |
| "tagger_pose_label": "Поза", | |
| "tagger_pose_single": "Обнаружен {n} человек", | |
| "tagger_pose_many": "Обнаружено {n} человек", | |
| "tagger_caption_label": "Языковое описание сцены", | |
| "tagger_chips_label": "Распознанные теги (клик — вкл/выкл)", | |
| "tagger_chars_label": "Распознанные персонажи", | |
| "tagger_tags_label": "Теги для использования", | |
| "tagger_tags_desc": "Отредактируйте список, затем «Применить» или «Копировать». Собран из отмеченных выше тегов.", | |
| "tagger_tags_ph": "Здесь появятся распознанные теги…", | |
| "tagger_copy": "Копировать", | |
| "tab_generate": "Генерация", | |
| "tab_tagger": "Теггер", | |
| "tab_tools": "Инструменты", | |
| "tab_history": "История", | |
| "advanced_desc": "Необязательный слой гигиены, применяемый к каждой генерации: убрать теги качества/художника/LoRA/метаданных, чёрный список ненужных тегов (зеркалится в негатив) и добор коротких промптов. Раскройте для настройки.", | |
| "theme_label": "Тема", | |
| "theme_dark": "Тёмная", | |
| "theme_light": "Светлая", | |
| "advanced_label": "Дополнительно и очистка", | |
| "cleanup_label": "Очистка и чёрный список", | |
| "blacklist_label": "Теги для удаления (чёрный список)", | |
| "blacklist_desc": "Теги через запятую или с новой строки, исключаемые из каждой вариации (как «Tags to remove» в Booru Prompt Gallery).", | |
| "blacklist_ph": "напр. simple background, watermark, patreon logo", | |
| "blacklist_mirror": "Также добавить удаляемые теги в негативный промпт", | |
| "strip_quality": "Убрать теги качества", | |
| "strip_artist": "Убрать теги художников", | |
| "strip_lora": "Убрать триггеры LoRA / эмбеддингов", | |
| "strip_meta": "Убрать мета-теги", | |
| "min_tags_label": "Минимальное число тегов", | |
| "min_tags_desc": "Дополнить каждую вариацию до как минимум такого числа общих тегов из пулов.", | |
| "user_presets_label": "Мои пресеты", | |
| "user_preset_name": "Название пресета", | |
| "user_preset_name_ph": "напр. my_style", | |
| "user_preset_tags": "Теги пресета", | |
| "user_preset_tags_ph": "теги через запятую, напр. neon glow, lens flare, cyberpunk", | |
| "user_preset_save": "Сохранить пресет", | |
| "user_preset_delete": "Удалить пресет", | |
| "user_preset_select": "Сохранённые пресеты", | |
| "user_preset_apply": "Применить к генерации", | |
| "user_preset_need_name": "Сначала введите название пресета.", | |
| "user_preset_saved": "Пресет «{name}» сохранён.", | |
| "user_preset_pick": "Сначала выберите сохранённый пресет.", | |
| "user_preset_applied": "Пресет «{name}» добавлен к генерации.", | |
| "user_preset_deleted": "Пресет «{name}» удалён.", | |
| }, | |
| } | |
| def t(key: str, lang: str = "en") -> str: | |
| return L10N.get(lang, L10N["en"]).get(key, key) | |