UNPKG

i18ntk

Version:

i18n Tool Kit - Zero-dependency internationalization toolkit for setup, scanning, analysis, validation, auto translation, fixing, reporting, and runtime translation loading.

780 lines 155 kB
{ "meta": { "version": "4.7.0", "updated": "2026-07-07", "lang": "sv" }, "common": { "welcome": "Välkomna", "hello": "Hej", "goodbye": "Adjö", "yes": "Ja", "no": "Inga", "save": "Spara", "cancel": "Avboka", "delete": "Radera", "edit": "Redigera", "loading": "Belastning...", "offlineTitle": "Du är offline", "offlineMessage": "Kontrollera din internetanslutning", "tryReconnect": "Försök att återansluta", "logout": "Utloggning", "login": "Inloggning", "amount": "Belopp", "success": "Framgång", "error": "Fel", "warning": "Varning", "info": "Info:", "debug": "Felsök", "progress": "Framsteg:", "remaining": "Återstående:", "total": "Total:", "completed": "7. Slutfört framgångsrikt!", "missing": "Saknad", "partial": "Partiell", "sameAsSource": "Samma som källa:", "formatMismatch": "Format som inte matchar:", "typeMismatch": "Typ som inte matchar:", "structureMismatch": "Strukturfel matchar:", "invalidOption": "Ogiltigt alternativ", "separator": "==================================================", "initializationFailed": "❌ Initieringen misslyckades: {error}", "stackTrace": "Stackspår: {stack}", "pressEnterToContinue": "Tryck på Enter för att fortsätta...", "pressEnterToReturn": "Tryck på Enter för att återgå till huvudmenyn...", "stepCompleted": "Steg '{stepName}' slutfört.", "stepFailed": "Steg '{stepName}' misslyckades.", "runningStep": "Löpningssteg: {stepName}", "command": "Kommando: {command}", "startingWorkflow": "Startar arbetsflöde...", "workflowCompleted": "Arbetsflödet avslutat.", "checkReports": "Kontrollera rapporter för detaljer.", "errorExecutingCommand": "Fel vid exekvering av kommando: {error}", "genericError": "❌ Fel: {error}", "errors": { "errors": "Fel:", "genericError": "❌ Fel: {error}", "initializationFailed": "❌ Initieringen misslyckades: {error}", "initializationCancelled": "❌ Initiering avbröts av användaren.", "translationKeyNotFound": "Översättningsnyckel hittades inte: {key}", "sourceDirectoryNotFound": "Källkatalogen hittades inte: {directory}", "configLoadingFailed": "Konfigurationsladdningen misslyckades", "invalidSourceDirectory": "Ogiltig källkatalog: {directory}", "securityViolation": "Säkerhetsbrott upptäckt", "authenticationFailed": "Autentiseringen misslyckades", "sourceEqualsI18nWarn": "⚠️ sourceDir är lika med i18nDir ({sourceDir}). Faller tillbaka till {fallback} för källsökning." }, "errorGeneratingStatusSummary": "Fel vid generering av statusöversikt: {error}", "errorRunningDebugTool": "Fel vid körning av felsökningsverktyget{displayName}': {error}", "errorReadingDebugLogs": "Fel vid läsning av felsökningsloggar: {error}", "errorAnalyzingLogFile": "Fel vid analys av loggfil: {error}", "errorAnalyzingTranslationKeys": "Fel vid analys av översättningsnycklar: {error}", "errorAnalyzingTranslationCompleteness": "Det gick inte att analysera översättningens fullständighet: {error}", "analyzingTranslationCompleteness": "Analyserar översättningens fullständighet på alla språk...", "i18nDirectoryNotFound": "⚠️ i18n-katalogen hittades inte: {i18nDir}", "translationCompletenessAnalysisFailed": "⚠️ Analys av översättningens fullständighet misslyckades: {error}", "failedToAnalyzeLanguage": "❌ Det gick inte att analysera språket {language}: {error}", "errorReadingI18nDirectory": "❌ Fel vid läsning av i18n-katalogen:", "languageCompletenessTitle": "📈 ÖVERSÄTTNINGSFULLSTÄNDIGHET PÅ SPRÅK", "errorAnalyzingTranslationFormat": "Fel vid analys av översättningsformat: {error}", "errorAnalyzingTranslationType": "Fel vid analys av översättningstyp: {error}", "errorAnalyzingTranslationStructure": "Fel vid analys av översättningsstruktur: {error}", "errorAnalyzingTranslationFormatMismatch": "Fel vid analys av översättningsformat som inte matchar: {error}", "errorAnalyzingTranslationTypeMismatch": "Fel vid analys av översättningstyp som inte matchar: {error}", "errorAnalyzingTranslationStructureMismatch": "Det gick inte att analysera översättningsstruktur som inte matchar: {error}", "errorAnalyzingTranslationSameAsSource": "Fel vid analys av översättning samma som källa: {error}", "title": "Status", "nextStep1": "1. Kontrollera användningsanalys:", "nextStep2": "2. Validera översättningar:", "nextStep3": "3. Analysera fullständighet:", "nextStep4": "4. Komplettera saknade översättningar:", "nextStep5": "5. Skapa en sammanfattande rapport:", "nextStep6": "6. Granska och slutför översättningar:", "generating": "Genererar sammanfattande rapport...", "review": "Granskar översättningar...", "finalizing": "Slutför översättningar...", "finalized": "Slutfördes framgångsrikt!", "warnings": "Varningar:", "completedKeys": "Färdiga nycklar:", "missingKeys": "Saknade nycklar:", "partialKeys": "Delvis nycklar:", "home": "Hem", "settings": "Inställningar", "startingSettings": "🎛️ Startinställningar CLI...", "confirm": "Bekräfta", "errorExiting": "Fel vid avslutandet." }, "errors": { "invalidOption": "❌ Ogiltigt alternativ: {option}. Försök igen.", "readlineClosed": "Ingångsströmmen är stängd; körs i icke-interaktivt läge.", "noPackageJson": "Inget package.json hittades. Kan inte automatiskt upptäcka i18n-ramverket.", "noI18nDir": "Ingen i18n-katalog hittades i projektets rot.", "noI18nConfig": "Ingen i18n-konfigurationsfil hittades i projektets rot.", "errorReadingDebugLogs": "Fel vid läsning av felsökningsloggar: {error}" }, "scanner": { "help_message": "I18n Text Scanner Användning: nod i18ntk-scanner.js [options] Alternativ: --source-dir <dir> Källkatalog att skanna (standard: ./src) --output <file> Utdatafil för skanningsresultat (standard: ./i18ntk-scanner-report.json) --framework <name> Ramverk att rikta in sig på (reagera, vue, vinkel, vanilj) --mönster <patterns> Anpassade regexmönster (kommaseparerade) --include-tests Inkludera testfiler i scan --exclude-dirs <dirs> Kataloger att exkludera (kommaseparerade) --help Visa denna hjälp Exempel: nod i18ntk-scanner.js --source-dir=./src --framework=reagera nod i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests nod iscanner.jtsk --output=./scan-results.json", "help_options": { "source_dir": "Källkatalog för att söka efter i18n-problem", "output_dir": "Katalog för skanningsrapporter och resultat", "framework": "Målramverk (reagera, vue, vinkel, vanilj)", "patterns": "Anpassade regexmönster för textidentifiering", "exclude": "Filmönster som ska uteslutas från skanning", "output_report": "Skapa en detaljerad skanningsrapport", "min_length": "Minsta textlängd att överväga för översättning", "max_length": "Maximal textlängd att överväga för översättning", "include_tests": "Inkludera testfiler i skanningsprocessen" }, "starting": "🔍 Startar textskanner för ramverk: {framework}", "sourceDirectory": "📁 Skanning av katalog: {sourceDir}", "frameworkDetected": "🎯 Upptäckt ram: {framework}", "scanningFiles": "📊 Skanning {fileCount} filer...", "foundTexts": "📝 Hittade {textCount} texter som kräver översättning", "generatingReport": "📊 Genererar detaljerad rapport...", "reportSaved": "💾 Skanningsrapport sparad till: {reportPath}", "noTextsFound": "✅ Inga hårdkodade engelska texter hittades", "scanComplete": "🎉 Skanningen slutförd framgångsrikt!", "analysisTitle": "🔍 ÖVERSÄTTNING SKANNA ANALYS", "fileSummary": "📄 {file}: {count} texter hittade", "textLocation": "📍 Linje {line}: {text}", "foundText": "Hittade {count} potentiella hårdkodade textinstanser", "context": "📝 Sammanhang: {context}", "severity": "⚠️ Allvarlighetsgrad: {severity}", "recommendation": "💡 Rekommendation: {recommendation}", "welcome": { "title": "🎯 Välkommen till textskannern!", "description": "Det här verktyget skannar din källkod efter hårdkodad engelsk text som kan behöva översättas." }, "frameworkPrompt": { "title": "🎯 Välj Framework", "available": "Tillgängliga ramverk: react, vue, angular, vanilj", "description": "Ange ramtypen (eller tryck på Enter för automatisk upptäckt):", "input": "Ram:" }, "directoryPrompt": { "title": "📁 Välj källkatalog", "current": "Aktuell katalog: {dir}", "description": "Gå in i katalogen för att skanna (eller tryck på Enter för aktuell):", "input": "Katalog:" }, "options": { "includeTests": "Inkludera testfiler?", "excludeDirs": "Kataloger att utesluta (kommaseparerade):", "customPatterns": "Anpassade mönster att skanna efter (regex):" }, "reportGenerated": "Skanningsrapport genererad: {path}" }, "fixer": { "help_message": "I18n Translation Fixer Användning: nod i18ntk-fixer.js [options] Alternativ: --source-dir <dir> Källkatalog att skanna (standard: ./locales) --languages <langs> Kommaseparerad lista över språk för att fixa --markers <markers> Kommaseparerade markörer att behandla som oöversatta --no-backup Hoppa över automatisk säkerhetskopiering --help Visa denna hjälp Exempel: node i18ntk-fixer.js --languages ​​de,fr nod i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED nod i18ntk-fixer.js ---no-fixerback.", "starting": "🚀 Börjar fixa översättning för språk: {languages}", "sourceDirectory": "📁 Källkatalog: {sourceDir}", "sourceLanguage": "🔤 Källspråk: {sourceLanguage}", "markers": "🏷️ Markörer att fixa: {markers}", "scanningLanguage": "📊 Skanning {language}...", "noLanguages": "❌ Inga språk specificerade för fixering.", "allComplete": "🎉 Alla översättningar är redan klara!", "fullReportSaved": "📊 Hela rapporten sparad till: {reportPath}", "reviewReport": "Vänligen granska rapporten innan du fortsätter.", "backupCreated": "💾 Säkerhetskopiering skapad framgångsrikt.", "applyingFixes": "🔄 Tillämpar korrigeringar...", "fixingComplete": "✅ Översättningsfixering klar!", "operationCancelled": "❌ Operation avbruten av användaren.", "analysisTitle": "🔍 ÖVERSÄTTNING FIXANDE ANALYS", "analysisSeparator": "==================================================", "totalIssues": "Totalt antal problem som hittades: {totalIssues}", "missingTranslations": "Saknade översättningar: {missing}", "placeholderTranslations": "Platshållaröversättningar: {placeholder}", "noIssues": "✅ Inga problem hittades. Alla översättningar är färdiga.", "detailedIssues": "📋 DETAILED ISSUES:", "detailedSeparator": "--------------------------------------------------", "filePath": "📄 {file} → {path}", "missingKey": "❌ SAKNAS: {source} → {new}", "placeholderKey": "⚠️ PLATSHÅLLARE: \"{target}\" → \"{new}\"", "moreIssues": "... och {count} fler frågor. Kontrollera rapportfilen för fullständig information.", "confirmationTitle": "🤔 Vill du fortsätta med dessa korrigeringar?", "confirmationOptions": "Alternativ:", "optionYes": "y - Ja, tillämpa alla korrigeringar", "optionNo": "n - Nej, avbryt operationen", "optionShow": "s - Visa detaljerade problem", "choicePrompt": "Ditt val (y/n/s):", "nonInteractiveMode": "⚡ Icke-interaktivt läge upptäckts - tillämpar korrigeringar automatiskt...", "reportGenerated": "📊 Fixer rapport genererad: {path}", "summary": "Fixer sammanfattning:", "welcome": { "title": "🎯 Välkommen till Translation Fixer!", "description": "Det här verktyget hjälper dig att fixa trasiga översättningar och platshållare över dina språkfiler." }, "markerPrompt": { "title": "🏷️ Konfigurera platshållarmarkörer", "description": "Ange markörerna som indikerar oöversatt text (kommaseparerad):", "currentDefaults": "Standardmarkörer: {markers}", "input": "Markörer (eller tryck på Enter för standardinställningar):" }, "languagePrompt": { "title": "🌍 Välj språk att fixa", "available": "Tillgängliga språk: {languages}", "description": "Ange språk att fixa (kommaseparerade) eller tryck på Retur för alla:", "input": "Språk:", "noLanguages": "Inga språk hittades att fixa." }, "directoryPrompt": { "title": "📁 Välj Katalog", "current": "Aktuell katalog: {dir}", "description": "Ange katalogen som innehåller dina språkfiler (eller tryck på Enter för aktuell):", "input": "Katalog:" }, "backupLocation": "Säkerhetskopieringsplats: {dir}", "completed": "Fixering klar.", "creatingBackup": "Skapar backup i {dir}...", "dryRunMode": "Torrkörningsläge: {mode}", "error": "Fixer misslyckades: {error}", "fixing": "Fixering {language}...", "foundLanguages": "Hittade {count} språk: {languages}", "languageFixed": "{language}: fixat {fixed} nyckel(ar), överhoppad {skipped}.", "running": "Kör översättningsfixer...", "totalFixed": "Totalt fast: {count}" }, "autorun": { "stepAnalyzeTranslations": "Analysera översättningar", "stepCompletedWithIcon": "✅ Avslutat: {stepName}", "stepValidateTranslations": "Validera översättningar", "stepRunning": "▶️ Steg {stepNumber}/{totalSteps}: {stepName}", "separator": "==================================================", "stepFailed": "❌ Misslyckades: {stepName}", "errorLabel": "Fel", "autoRunScriptTitle": "🧪 Autokör arbetsflöde", "usageTitle": "Användande", "runAllSteps": "Kör: nod i18ntk-autorun.js", "configureSettingsFirst": "Config: i18ntk-config.json eller CLI-flaggor", "runSpecificSteps": "Använd --steps=1,3 eller --list för att visa steg", "showHelp": "--hjälp för mer info", "examplesTitle": "Exempel", "configExample": "nod i18ntk-autorun.js --ui-language=zh", "stepsExample1": "nod i18ntk-autorun.js --steps=analysera, validera", "stepsExample2": "nod i18ntk-autorun.js --list", "customSettingsConfiguration": "Anpassade autoruninställningar", "availableSteps": "Tillgängliga steg", "startingAutoRunWorkflow": "🚀 Startar Auto-Run Workflow...", "workflowIncludesSteps": "Arbetsflöde inkluderar {count} steg:", "missingRequiredFile": "En obligatorisk fil saknas: {file}", "workflowStopped": "Arbetsflödet stoppades på grund av ett fel.", "workflowCompleted": "🎉 Arbetsflödet avslutat!", "successfulSteps": "Framgångsrika steg: {count}", "failedSteps": "Misslyckade steg: {count}", "stepInitializeProject": "Initiera projektet", "stepCheckUsage": "Kontrollera nyckelanvändningen", "stepGenerateSummary": "Skapa sammanfattande rapport", "runInitializationFirst": "Kör initiering först.", "initializationCheckPassed": "Initieringskontrollen godkänd.", "runningStep": "Löpningssteg: {stepName}", "commandLabel": "Kommando: {command}", "stepCompletedWithTime": "Steg '{stepName}' slutfört i {duration}ms.", "stepCompleted": "Steg '{stepName}' slutfört.", "stepFailedWithError": "Steg '{stepName}' misslyckades med fel: {error}", "requiredStepFailed": "Det obligatoriska steget misslyckades. Stoppar arbetsflödet.", "optionalStepFailed": "Valfritt steg misslyckades. Fortsatt arbetsflöde.", "stepRequired": "(Nödvändig)", "stepOptional": "(Frivillig)", "startingExecution": "Börjar köra...", "pressEnterToContinue": "Tryck på Enter för att fortsätta...", "runningSelectedSteps": "Kör valda steg...", "invalidStepNumber": "Ogiltigt stegnummer: {stepNum}", "executionReport": "Utföranderapport:", "requiredFailedSteps": "Nödvändiga steg misslyckades: {count}", "stepDetails": "Stegdetaljer:", "reportSavedTo": "Rapport sparad till: {path}", "overallStatusSuccess": "SUCCESS", "overallStatusFailed": "FAILED", "overallStatus": "Övergripande status: {status}", "pressEnterForDefaults": "Tryck på Enter för att använda standardinställningarna för valfri prompt.", "sourceDirPrompt": "Ange källkatalog (standard: {default}):", "sourceLangPrompt": "Ange källspråk (standard: {default}):", "targetLangsPrompt": "Ange målspråk (kommaseparerade, standard: {default}):", "translationMarkerPrompt": "Ange översättningsmarkör (standard: {default}):", "outputDirPrompt": "Ange utdatakatalog för rapporter (standard: {default}):", "settingsUpdatedSuccessfully": "Inställningarna har uppdaterats!", "errorConfiguringSettings": "Fel vid konfigurering av inställningar: {error}", "configurationComplete": "Konfigurationen är klar.", "runAutoRunCommand": "Nu kan du köra kommandot auto-run.", "configurationFailed": "Konfigurationen misslyckades: {error}", "noValidStepNumbers": "Inga giltiga stegnummer har angetts.", "autoRunFailed": "Automatisk körning misslyckades: {error}", "stepCompleteTranslations": "Kompletta översättningar", "stepAnalyzeSizing": "Analysera storlek", "stepCompletedIcon": "✅", "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Steg '{stepName}'springer...", "stepFailedIcon": "❌", "translationLoadWarning": "Varning: Kunde inte ladda {lang} översättningar", "configReadError": "Fel vid läsning {file}" }, "analyze": { "help_message": "I18n Translation Analyzer Användning: nod i18ntk-analyze.js [options] Alternativ: --source-dir <dir> Källkatalog att skanna (standard: ./src) --i18n-dir <dir> I18n-katalog (standard: ./src/locales) --output-report Generera detaljerad rapport --output-dir <dir> Utdatakatalog för rapporter (standard: ./reports) --help Visa den här hjälpen Exempel: nod i18ntk-analyze.js --output-report nod i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales nod i18ntk-analyze.js --isreport-utmatning.", "source_directory": "📁 Källkatalog: {sourceDir}", "i18n_directory": "🌐 I18n-katalog: {i18nDir}", "loading_translation_files": "📋 Laddar översättningsfiler...", "sourceDirectoryLabel": "📁 Källkatalog: {sourceDir}", "sourceLanguageLabel": "🌍 Källspråk: {sourceLanguage}", "strictModeLabel": "⚙️ Strikt läge: {mode}", "found_translation_files_count": "✅ Hittade {count} översättningsfiler", "analyzing_translations": "🔍 Analyserar översättningar...", "analysis_completed_successfully": "🎉 Analys slutförd framgångsrikt!", "analysis_results": "📊 ANALYSIS RESULTS", "language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% översatta)", "sample_missing_keys": "Exempel på saknade nycklar:", "missing_key": "- {key}", "and_more_missing": "...och {count} mer.", "sample_unused_keys": "Exempel på oanvända nycklar:", "unused_key": "- {key}", "and_more_unused": "...och {count} mer.", "recommendations": "📋 REKOMMENDATIONER", "add_missing_translations": "💡 Lägg till saknade översättningar för att förbättra täckningen.", "remove_unused_translations": "💡 Ta bort oanvända översättningar för att hålla ditt projekt rent.", "next_steps": "📋 NEXT STEPS", "review_analysis_results": "1. Granska analysresultaten i konsolen eller den genererade rapporten.", "run_with_output_report": "2. Kör med --output-report för detaljerad rapport.", "add_or_remove_translations": "3. Lägg till saknade översättningar eller ta bort oanvända.", "rerun_analysis": "4. Kör analys igen för att verifiera förbättringar.", "analysis_summary": "📊 ANALYSIS SUMMARY", "source_files_scanned": "Skannade källfiler: {fileCount}", "translation_files_checked": "Översättningsfiler kontrollerade: {translationFileCount}", "total_keys": "Totalt antal nycklar: {totalKeys}", "translated_keys": "Översatta nycklar: {translatedKeys}", "missing_keys": "Saknade nycklar: {missingKeys}", "unused_keys": "Oanvända nycklar: {unusedKeys}", "translation_coverage": "Översättningstäckning: {coverage}%", "analysis_passed_for_language": "✅ Analys godkänd {language}", "analysis_failed_for_language": "❌ Analys misslyckades för {language} ({missingKeys} saknad, {unusedKeys} oanvänd)", "starting": "🔍 Startar översättningsanalys...", "foundLanguages": "📋 Hittade {count} Språk att analysera: {languages}", "analyzing": "🔄 Analyserar {language}...", "reportTitle": "📊 ÖVERSÄTTNINGSANALYS-RAPPORT", "generated": "Genererad: {timestamp}", "status": "Status: {translated}/{total} nycklar ({percentage}% översatta)", "filesAnalyzed": "Filer analyserade: {analyzed}/{total}", "keysNeedingTranslation": "Nycklar som behöver översättas: {count}", "fileBreakdown": "📋 FILUPPLYSNING", "error": "Fel", "completed": "✅ Analys genomförd för {language}", "progress": "📊 Övergripande framsteg: {translated}/{total} språk som bearbetas", "reportSaved": "Rapport sparad: {reportPath}", "summary": "📊 ANALYSIS SUMMARY", "finished": "✅ Analys slutförd framgångsrikt!", "statusFileMissing": "❌ Översättningsfil saknas", "sourceKeys": "📊 Källnycklar: {count}", "translation": "📊 Översättning: {translated}/{total} ({percentage}%)", "structure": "🗂️ Struktur: {status}", "consistent": "Konsekvent", "inconsistent": "Inkonsekvent", "missingKeys": "Saknade nycklar: {count}", "extraKeys": "Extra nycklar: {count}", "issues": "⚠️ Hittade problem: {count}", "issueType": { "not_translated": "Ej översatt: {count}", "empty_value": "Tomma värden: {count}", "partial_translation": "Partiella översättningar: {count}", "format_mismatch": "Format som inte matchar: {count}", "type_mismatch": "Typ som inte matchar: {count}", "structure_mismatch": "Strukturfel matchar: {count}", "same_as_source": "Samma som källa: {count}" }, "keysToTranslate": "📋Nycklar att översätta", "key": "Nyckel", "english": "engelska", "needsTranslation": "BEHÖVER ÖVERSÄTTNING", "andMoreKeys": "...och {count} fler nycklar.", "noLanguages": "⚠️ Inga målspråk hittades.", "languageStats": "{language}: {percentage}% klar ({translated}/{total} nycklar)", "invalidReportFilePath": "Ogiltig sökväg till rapportfilen", "failedToWriteReportFile": "Det gick inte att skriva rapportfilen säkert" }, "complete": { "configLoadedSuccessfully": "Konfigurationen har lästs in", "configLoadingFailed": "Konfigurationsladdningen misslyckades", "sourceLanguageNotFound": "Källspråkskatalogen hittades inte: {sourceLanguage}", "couldNotParseTarget": "Kunde inte analysera målfilen: {file}", "couldNotParseSource": "Kunde inte analysera källfilen: {file}", "reportGenerated": "Rapport genererad: {path}", "generateReportPrompt": "Vill du ha en rapport genererad?", "title": "🌍 I18NTK ÖVERSÄTTNING SLUTFÖRD", "separator": "============================================================", "sourceDir": "📁 Källkatalog: {sourceDir}", "sourceLanguage": "🌐 Källspråk: {sourceLanguage}", "dryRunMode": "🧪 Torrkörningsläge - inga ändringar kommer att göras", "languages": "🌍 Tillgängliga språk: {languages}", "addingMissingKeys": "➕ Lägger till saknade nycklar till översättningsfiler...", "processing": "🔄 Bearbetning {language}...", "addedKeys": "✅ Tillagd {count} saknade nycklar", "noChangesNeeded": "✅ Inga ändringar behövs för {language}", "summaryTitle": "📊 SAMMANFATTNING AV SLUTFÖRANDE", "totalChanges": "📝 Totala ändringar: {totalChanges}", "languagesProcessed": "🌍 Behandlade språk: {languagesProcessed}", "missingKeysAdded": "➕ Saknade nycklar tillagda: {missingKeysAdded}", "nextStepsTitle": "📋 NEXT STEPS", "nextStep1": "1. Kör användningsanalys:", "nextStep2": "nod i18ntk-usage.js --output-report", "nextStep3": "2. Validera översättningar:", "nextStep4": "nod i18ntk-validate.js", "nextStep5": "3. Analysera mönster:", "nextStep6": "nod i18ntk-analyze.js", "allKeysAvailable": "🎉 Alla översättningsnycklar är nu tillgängliga!", "runWithoutDryRun": "💡 Kör utan --torkkör för att tillämpa ändringar", "deletingOldReport": "🗑️ Raderar gammal rapport...", "generatingFreshAnalysis": "📊 Genererar färsk användningsanalys...", "couldNotGenerate": "❌ Kunde inte generera användningsanalys", "reportNotFound": "📋 Användningsrapport hittades inte. Använder vanliga nycklar...", "foundMissingKeys": "📋 Hittade {count} saknade nycklar från användningsanalys", "couldNotParse": "❌ Det gick inte att analysera användningsrapporten. Använder vanliga nycklar...", "errorDuringCompletion": "❌ Fel under slutförandet: {error}", "fatalError": "❌ Allvarligt fel: {error}", "configurationValidationFailed": "Konfigurationsvalideringen misslyckades: obligatoriska fält saknas" }, "sizing": { "separator": "================================================================================", "lineSeparator": "--------------------------------------------------------------------------------", "analysisStats": "{stats}", "sourceDirectoryLabel": "📁 Källkatalog: {sourceDir}", "sourceLanguageLabel": "🌍 Källspråk: {sourceLanguage}", "strictModeLabel": "⚙️ Strikt läge: {mode}", "invalidSourceDirectoryError": "Ogiltig sökväg till källkatalogen: {sourceDir}", "sourceDirectoryNotFoundError": "Källkatalogen hittades inte: {sourceDir}", "invalidOutputDirectoryError": "Ogiltig sökväg för utdatakatalog: {outputDir}", "invalidReportFileError": "Ogiltig sökväg till rapportfilen", "problematic_keys": "Problematiska nycklar: {problematicKeys}", "problematicKeysLabel": "Problematiska nycklar: {problematicKeys}", "long_translations": "Långa översättningar: {longTranslations}", "failedToSaveReportError": "Det gick inte att spara rapporten säkert", "invalidCsvFileError": "Ogiltig CSV-filsökväg", "failedToSaveCsvError": "Det gick inte att spara CSV-rapporten säkert", "fatalError": "❌ Storleksanalys misslyckades: {error}", "starting_i18n_sizing_analysis": "Startar i18n storleksanalys...", "source_directory": "Källkatalog: {sourceDir}", "found_languages": "Hittade språk: {languages}", "analyzing_file_sizes": "Analyserar filstorlekar...", "analyzing_translation_content": "Analyserar översättningsinnehåll...", "generating_size_comparisons": "Genererar storleksjämförelser...", "no_languages_found_for_comparison": "Inga språk hittades för jämförelse", "sizing_analysis_results": "I18n Resultat av storleksanalys", "file_sizes_title": "Filstorlekar", "file_sizes_header": "Språkstorlek (KB) Rader Tecken", "file_size_row": "{lang} {sizeKB} {lines} {characters}", "language_statistics_title": "Språkstatistik", "language_stats_header": "Språktangenter Tecken Genomsnittlig längd Maxlängd Tom Lång", "language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}", "size_variations_title": "Storleksvariationer", "size_variations_header": "Språk Char Diff % Diff Problematiskt", "size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}", "problematic_yes": "Ja", "problematic_no": "Inga", "recommendations_title": "Rekommendationer", "recommendation_item": "{index}. {recommendation}", "problematic_key_detail": "{index}. Nyckel: '{key}' - Variationer: {variations}", "generating_detailed_report": "Genererar detaljerad rapport...", "keysHaveSignificantSizeVariations": "nycklar har betydande storleksvariationer", "longTranslationsDetected": "${lang} har ${data.longKeys} översättningar längre än 100 tecken - överväg att dela upp dem", "longer": "längre", "shorter": "kortare", "review_translations": "Överväg att granska {lang} översättningar - de är {percentageDifference}% {comparison} än baslinjen", "report_saved_to": "Rapport sparad till: {reportPath}", "considerReviewingTranslations": "Överväg att granska ${lang} översättningar - de är ${data.percentageDifference}% längre än baslinjen", "csv_report_saved_to": "CSV-rapport sparad till: {csvPath}", "human_report_saved": "Läsbar rapport sparad: {reportPath}", "folder_summary_title": "Mappsammanfattning", "folder_summary_table_header": "Språk Storlek (KB) Nycklar Genomsnittlig längd Totalt tecken", "folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}", "language_comparison_title": "Språkjämförelse", "language_comparison_row": "{lang}: {diff} tecken ({percent}%) {status}", "summary_stats": "📊 Sammanfattning: {totalLanguages} språk, {totalKeys} nycklar - Rapporter sparade till {reportPath}", "detailedKeysDescription": "Visa detaljerad analys på nyckelnivå i konsolen", "too_many_keys_warning": "⚠️ För många nycklar för att visa i konsolen - kontrollera den detaljerade rapportfilen för fullständig analys", "no_translation_files_found": "Inga översättningsfiler hittades", "analysis_completed": "Analys genomförd i {duration}ms", "analysis_failed": "Analys misslyckades: {errorMessage}", "starting_analysis": "Startar analys...", "found_files": "Hittade {count} filer", "failed_to_parse_language_error": "Det gick inte att analysera {language} översättningar: {errorMessage}", "recommendations": { "keys_have_significant_size_variations": "nycklar har betydande storleksvariationer", "consider_reviewing_translations": "Överväg att granska {lang} översättningar - de är {percentageDifference}% {comparison} än baslinjen", "long_translations_detected": "{lang} har {longKeys} översättningar längre än {threshold} karaktärer – överväg att bryta ner dem" }, "detailed_key_analysis_title": "Detaljerad nyckelanalys", "key_analysis_detail": "{lang}: {length} tecken ({status}) - {translation}", "key_analysis_header": "Nyckel: {key}", "status_empty": "tömma", "status_long": "lång", "status_ok": "ok" }, "usage": { "help_message": "I18n Usage Analyzer Användning: nod i18ntk-usage.js [options] Alternativ: --source-dir <dir> Källkatalog att skanna (standard: ./src) --i18n-dir <dir> I18n-katalog (standard: ./src/locales) --output-report Generera detaljerad rapport --output-dir <dir> Utdatakatalog för rapporter (standard: ./reports) --help Visa den här hjälpen Exempel: nod i18ntk-usage.js --output-report nod i18ntk-usage.js --source-dir=./app --i18n-dir=./locales nod i18ntk-usage.js.=reputation-usage.js.", "source_directory_thissourcedir": "📁 Källkatalog: {sourceDir}", "translationCompletenessTitle": "🌍 Översättningens fullständighet:", "i18n_directory_thisi18ndir": "🌐 I18n-katalog: {i18nDir}", "failed_to_parse_filename_error": "⚠️ Det gick inte att tolka {fileName}: {errorMessage}", "analyzing_source_files": "🔍 Analyserar källfiler...", "found_files_in_source": "📂 Hittade {numFiles} filer i källkatalogen", "found_thisusedkeyssize_unique_": "🎯 Hittade {usedKeysSize} unika begagnade nycklar", "total_key_usages_totalkeysfoun": "📊 Totala nyckelanvändningar: {totalKeysFound}", "loading_available_translation_": "📋 Laddar tillgängliga översättningsnycklar...", "found_thisavailablekeyssize_av": "✅ Hittade {availableKeysSize} tillgängliga nycklar", "foundTranslationFiles": "✅ Hittade {count} översättningsfiler", "errorReadingI18nDirectory": "⚠️ Fel vid läsning av i18n-katalogen: {error}", "pressEnterToReturnToMenu": "📝 Tryck på Enter för att återgå till huvudmenyn...", "notTranslatedKeysTotal": "⚠️ Ej översatta nycklar: {total}", "noSourceFilesFound": "⚠️ Inga källfiler hittades i källkatalogen.", "reviewNotTranslatedKeys": "💡 Recension ej översatta nycklar", "analysisCompletedSuccessfully": "🎉 Analys slutförd framgångsrikt!", "detectedSourceDirectory": "Upptäckt källkatalog: {sourceDir}", "detectedI18nDirectory": "Upptäckt i18n-katalog: {i18nDir}", "fileInfo": "📄 {namespace}: {keys} nycklar", "failedToAnalyzeUsage": "❌ Det gick inte att analysera användning: {error}", "failedToAnalyzeFile": "❌ Det gick inte att analysera filen: {error}", "failedToExtractKeys": "❌ Det gick inte att extrahera nycklar från {filePath}: {error}", "analysisFailedError": "❌ Analys misslyckades: {error}", "analyzerInitialized": "Analysatorn initierad", "analyzerInitFailed": "Analysatorinitiering misslyckades: {error}", "argsParsed": "Argument analyserade", "processedFiles": "Bearbetas {processedFiles} av {totalFiles} filer.", "argsParseFailed": "Parsning av argument misslyckades: {error}", "translationDiscoveryError": "Översättningsupptäcktsfel: {error}", "fileTraversalError": "Filövergångsfel: {error}", "sourceEqualsI18nWarn": "{reason}. Användningsanalys kommer inte att skanna språkfiler som källkod.", "i18nEqualsSourceWarn": "⚠️ I18n-katalogen och källkatalogen är samma. Detta kan orsaka problem med analysen.", "usageAnalysisFailed": "⚠️ Användningsanalys misslyckades: {error}", "translationFileParseError": "⚠️ Översättningsfilens analysfel: {error}", "translationKeysLoadError": "⚠️ Översättningsnycklar laddningsfel: {error}", "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% översatta)", "missingKeysCount": "⚠️ Saknade nycklar: {count}", "analyzingTranslationCompleteness": "Analyserar översättningens fullständighet...", "unusedKeysCount": "Oanvända nycklar: {count}", "usedKeysCount": "Använda nycklar: {count}", "availableKeysCount": "Tillgängliga nycklar: {count}", "analysisResults": "Analysresultat:", "i18nDirectoryNotFound": "⚠️ I18n-katalogen hittades inte. Kontrollera sökvägen.", "sourceDirectoryNotFound": "⚠️ Källkatalogen hittades inte: {dir}", "checkUsage": { "title": "🔍 I18NTK USAGE ANALYSIS", "analyzing_source_files": "🔍 Analyserar källfiler...", "source_directory_thissourcedir": "📁 Källkatalog: {sourceDir}", "i18n_directory_thisi18ndir": "📁 i18n-katalog: {i18nDir}", "found_files_in_source": "✅ Hittade {numFiles} filer i källkatalogen", "no_source_files_found": "⚠️ Inga källfiler hittades i den angivna katalogen", "processedFiles": "📊 Bearbetad {processedFiles} av {totalFiles} filer", "failedToProcessFile": "❌ Det gick inte att bearbeta", "found_thisusedkeyssize_unique_": "🔍 Hittade {usedKeysSize} unika begagnade nycklar", "total_key_usages_totalkeysfoun": "📊 Totala nyckelanvändningar: {totalKeysFound}", "loading_available_translation_": "📂 Laddar tillgängliga översättningsnycklar...", "found_thisavailablekeyssize_av": "✅ Hittade {availableKeysSize} tillgängliga nycklar", "message": "Analyserar användningen av översättningsnyckeln i hela ditt projekt...", "usage_analysis_results": "📊 USAGE ANALYSIS RESULTS", "source_files_scanned_thisfileu": "📁 Skannade källfiler: {fileUsageSize}", "available_translation_keys_thi": "✅ Tillgängliga översättningsnycklar: {availableKeysSize}", "used_translation_keys_thisused": "🔍 Använda översättningsnycklar: {usedKeysSize}", "dynamic_keys_detected_dynamick": "⚡ Dynamiska nycklar upptäckt: {dynamicKeysLength}", "unused_keys_unusedkeyslength": "🗑️ Oanvända nycklar: {unusedKeysLength}", "missing_keys_missingkeyslength": "❌ Saknade nycklar: {missingKeysLength}", "translation_completeness_title": "📈 ÖVERSÄTTNINGSFULLSTÄNDIGHET", "language_completeness_stats": "{language}: {translated}/{total} nycklar ({percentage}%)", "n_sample_unused_keys": "🗑️ EXEMPEL OANVÄNDA NYCKLAR (de första 5):", "key": "🔑 {key}", "and_unusedkeyslength_5_more": "... och {count} fler oanvända nycklar", "n_sample_missing_keys": "❌ EXEMPEL SAKNADE NYCKLAR (de första 5):", "and_missingkeyslength_5_more": "... och {count} fler saknade nycklar", "n_generating_detailed_report": "📊 Genererar detaljerad rapport...", "report_saved_reportpath": "📄 Rapport sparad: {reportPath}", "n_recommendations": "💡 REKOMMENDATIONER:", "consider_removing_unused_trans": "🗑️ Överväg att ta bort oanvända översättningar för att minska paketstorleken", "add_missing_translation_keys_t": "➕ Lägg till saknade översättningsnycklar för att upprätthålla konsekvens", "review_dynamic_keys_manually_t": "🔍 Granska dynamiska nycklar manuellt (de kan vara giltiga)", "all_translation_keys_are_prope": "✅ Alla översättningsnycklar används korrekt!", "n_next_steps": "🎯 NEXT STEPS:", "2_check_the_detailed_report_fo": "2. Kontrollera den detaljerade rapporten för specifika problem", "help_message": "I18n Usage Analyzer Användning: nod i18ntk-usage.js [options] Alternativ: --source-dir <dir> Källkatalog att skanna (standard: ./src) --i18n-dir <dir> I18n-katalog (standard: ./src/locales) --output-report Generera detaljerad rapport --output-dir <dir> Utdatakatalog för rapporter (standard: ./reports) --help Visa den här hjälpen Exempel: nod i18ntk-usage.js --output-report nod i18ntk-usage.js --source-dir=./app --i18n-dir=./locales nod i18ntk-usage.js.=reputation-usage.js.", "1_review_the_analysis_results": "1. Granska analysresultaten i konsolen eller den genererade rapporten.", "2_run_with_outputreport_for_de": "2. Kör med --output-report för detaljerad rapport.", "3_remove_unused_keys_or_add_mi": "3. Ta bort oanvända nycklar eller lägg till saknade nycklar till din källkod.", "4_rerun_analysis_to_verify_imp": "4. Kör analys igen för att verifiera förbättringar.", "noSourceFilesFound": "Inga källfiler hittades att analysera.", "i18nDirectoryNotFound": "I18n-katalogen hittades inte: {i18nDir}", "noTranslationLanguagesFound": "Inga översättningsspråk hittades.", "failedToAnalyzeFile": "Det gick inte att analysera filen {filePath}: {error}", "failedToAnalyzeLanguage": "Det gick inte att analysera språket {language}: {error}", "translationCompletenessAnalysisFailed": "Analysen av översättningens fullständighet misslyckades: {error}", "n": "\\n" }, "complete": { "configLoadedSuccessfully": "Konfigurationen har lästs in", "configLoadingFailed": "Konfigurationsladdningen misslyckades", "title": "🌍 I18NTK ÖVERSÄTTNING SLUTFÖRD", "separator": "============================================================", "sourceDir": "📁 Källkatalog: {sourceDir}", "sourceLanguage": "🌐 Källspråk: {sourceLanguage}", "dryRunMode": "🧪 Torrkörningsläge - inga ändringar kommer att göras", "languages": "🌍 Tillgängliga språk: {languages}", "addingMissingKeys": "➕ Lägger till saknade nycklar till översättningsfiler...", "processing": "🔄 Bearbetning {language}...", "addedKeys": "✅ Tillagd {count} saknade nycklar", "changeDetails": "📝 {file}: {key}", "andMore": "...och {count} mer", "noChangesNeeded": "✅ Inga ändringar behövs för {language}", "summaryTitle": "📊 SAMMANFATTNING AV SLUTFÖRANDE", "totalChanges": "📝 Totala ändringar: {totalChanges}", "languagesProcessed": "🌍 Behandlade språk: {languagesProcessed}", "missingKeysAdded": "➕ Saknade nycklar tillagda: {missingKeysAdded}", "nextStepsTitle": "📋 NEXT STEPS", "nextStep1": "1. Kör användningsanalys:", "nextStep2": "nod i18ntk-usage.js --output-report", "nextStep3": "2. Validera översättningar:", "nextStep4": "nod i18ntk-validate.js", "nextStep5": "3. Analysera mönster:", "nextStep6": "nod i18ntk-analyze.js", "allKeysAvailable": "🎉 Alla översättningsnycklar är nu tillgängliga!", "runWithoutDryRun": "💡 Kör utan --torkkör för att tillämpa ändringar", "deletingOldReport": "🗑️ Raderar gammal rapport...", "generatingFreshAnalysis": "📊 Genererar färsk användningsanalys...", "couldNotGenerate": "❌ Kunde inte generera användningsanalys", "reportNotFound": "📋 Användningsrapport hittades inte. Använder vanliga nycklar...", "foundMissingKeys": "📋 Hittade {count} saknade nycklar från användningsanalys", "couldNotParse": "❌ Det gick inte att analysera användningsrapporten. Använder vanliga nycklar..." }, "noTranslationLanguagesFound": "Inga översättningsspråk hittades", "failedToAnalyzeLanguage": "Det gick inte att analysera språket", "translationCompletenessAnalysisFailed": "Analys av översättningens fullständighet misslyckades", "failedToProcessFile": "Det gick inte att bearbeta filen:", "failedToSaveReport": "Det gick inte att spara användningsrapporten: {error}", "i18nDirectoryDoesNotExist": "I18n-katalogen finns inte: {dir}", "reportSavedTo": "Användningsrapport sparad till: {reportPath}", "sourceDirectoryDoesNotExist": "Källkatalogen finns inte: {dir}", "noSourceDirectoryConfigured": "(ingen konfigurerad)" }, "validate": { "help_message": "I18n Translation Validator Användning: nod i18ntk-validate.js [options] Alternativ: --source-dir <dir> Källkatalog att skanna (standard: ./src) --i18n-dir <dir> I18n-katalog (standard: ./src/locales) --output-report Generera detaljerad rapport --output-dir <dir> Utdatakatalog för rapporter (standard: ./reports) --hjälp Visa denna hjälp Exempel: nod i18ntk-validate.js --output-report nod i18ntk-validate.js --source-dir=./app --i18n-dir=./locales nod i18ntk-output-analyskatalog ---port", "title": "🔍 I18n Översättningsvalidator", "message": "Startar valideringsprocessen...", "sourceDirectory": "📁 Källkatalog: {dir}", "sourceLanguage": "🌍 Källspråk: {sourceLanguage}", "strictMode": "⚙️ Strikt läge: {mode}", "noTargetLanguages": "Inga målspråk konfigurerade; hoppa över målvalidering. Lägg till språk via \"i18ntk init --languages=de,fr\".", "validatingLanguages": "🌍 Validera språk: {langs}", "validatingLanguage": "🔍 Validerande språk: {lang}", "filesCount": "📄 Filer: {count}", "keysCount": "🔑 Nycklar: {count}", "missingFilesCount": "📁 Saknade filer: {count}", "syntaxErrorsCount": "❌ Syntaxfel: {count}", "translationPercentage": "🎯 Översättning: {percentage}% ({translated}/{total} nycklar)", "validationSummary": "📊 SAMMANFATTNING AV VALIDERING", "validation_failed": "❌ Validering misslyckades: {error}", "totalErrors": "❌ Totalt antal fel: {count}", "totalWarnings": "⚠️ Totala varningar: {count}", "errorsSection": "❌ ERRORS", "warningsSection": "⚠️ WARNINGS", "recommendationsSection": "💡 REKOMMENDATIONER", "fixErrorsFirst": "1. Åtgärda alla fel först", "resolveMissingFilesAndSyntaxErrors": "1. Åtgärda saknade filer och syntaxfel", "fixStructuralInconsistencies": "2. Åtgärda strukturella inkonsekvenser", "completeMissingTranslations": "3. Komplettera saknade översättningar", "rerunValidation": "4. Kör valideringen igen för att verifiera korrigeringar", "addressWarnings": "Adressera varningar för att förbättra kvaliteten", "reviewWarnings": "Granska varningar och fixa där det är lämpligt", "considerRunningWithStrict": "2. Överväg att köra med flaggan --strict för strängare validering", "allValidationsPassed": "🎉 Alla valideringar godkända!", "considerRunningUsageAnalysis": "Överväg att köra användningsanalys: nod i18ntk-usage.js", "deletedOldReport": "🗑️ Raderad gammal valideringsrapport", "sourceDir": "📁 Källkatalog: {sourceDir}", "i18nDir": "🌐 I18n-katalog: {i18nDir}", "loadingTranslationFiles": "📋 Laddar översättningsfiler...", "foundTranslationFilesCount": "✅ Hittade {count} översättningsfiler", "analyzingTranslations": "🔍 Analyserar översättningar...", "validationCompletedSuccessfully": "🎉 Validering slutförd framgångsrikt!", "validationErrorsFound": "⚠️ Valideringsfel hittades: {count}", "validationWarningsFound": "⚠️ Valideringsvarningar hittades: {count}", "validationPassed": "✅ Validering godkänd utan fel", "validationFailed": "Validering misslyckades: {error}", "startingValidationProcess": "🔍 Startar valideringsprocessen...", "validationProcessCompletedSuccessfully": "✅ Valideringsprocess slutförd framgångsrikt", "stackTrace": "Stackspår: {stack}", "authenticationFailed": "❌ Autentisering misslyckades. Åtkomst nekad.", "fatalValidationError": "❌ Fatalt valideringsfel: {error}", "configAccess": "Åtkomst till konfiguration för validering", "configValidated": "Konfigurationen har validerats", "configError": "Konfigurationsfel: {error}", "validatorInit": "Initierar I18n validator", "validatorInitialized": "I18n validator initierades framgångsrikt", "validatorInitError": "Validatorinitieringsfel: {error}", "argsParsing": "Parsar kommandoradsargument", "argsParsed": "Kommandoradsargument tolkade framgångsrikt", "argsParseError": "Argumenttolkningsfel: {error}", "languagesScan": "Skannar tillgängliga språk", "languagesFound": "Hittade {count} språk", "languagesScanError": "Språkskanningsfel: {error}", "filesScan": "Hittade {count} filer i {language}", "filesScanError": "Filskanningsfel: {error}", "jsonValidated": "JSON-syntax validerad: {filePath}", "jsonValidationError": "JSON-valideringsfel: {error}", "languageValidation": "Validerande språk: {language}", "languageValidationError": "Språkvalideringsfel: {error}", "fileDeleted": "Filen raderad", "runStarted": "Startar valideringskörning", "runCompleted": "Valideringskörningen slutfördes", "runError": "Valideringskörningen misslyckades: {error}", "scriptExecution": "Utförande av skript", "validationCompleted": "Validering slutförd", "validationError": "Valideringsfel: {error}", "separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━", "languageHeader": "🌐 Språk: {language}", "validationResults": "📊 Valideringsresultat", "noErrors": "✅ Inga fel hittades", "noWarnings": "✅ Inga varningar hittades", "summaryHeader": "📋 OVERALL SUMMARY", "progressIndicator": "⏳ Bearbetar...", "completedIndicator": "✅ Avslutad", "errorIndicator": "❌ Fel", "warningIndicator": "⚠️ Varning", "infoIndicator": "ℹ️ Info", "sourceDirNotConfigured": "Källkatalogen är inte konfigurerad", "sourceLanguageNotConfigured": "Källspråket är inte konfigurerat", "translationFunctionNotInitialized": "Översättningsfunktionen är inte korrekt initierad", "sourceLanguageDirectoryNotFound": "Källspråkskatalogen hittades inte", "specifiedLanguageNotFound": "Det angivna språket hittades inte", "noJsonFilesFound": "Inga JSON-filer hittades i källkatalogen: {sourceDir}", "i18nDirectoryNotFound": "I18n-katalogen hittades inte: {i18nDir}", "invalidDirectoryPaths": "Ogiltiga katalogsökvägar upptäcktes", "invalidSampleFilePath": "Ogiltig sökväg till exempelfil", "failedToCreateSampleTranslationFile": "Det gick inte att skapa exempelöversättningsfil", "invalidFilePathDetected": "Ogiltig sökväg har upptäckts", "failedToWriteFile": "Det gick inte att skriva filen: {filePath}", "invalidSourceDirectory": "Ogiltig källkatalog: {sourceDir}", "invalidSourceLanguageDirectory": "Ogiltig källspråkskatalog: {sourceDir}" }, "adminCli": { "setupPinProtectionTitle": "🔐 Konfigurera Admin PIN-skydd", "setupPinProtectionDescription": "Detta kräver en 4-6-siffrig PIN-kod för administrativa åtgärder.", "enablePinProtectionPrompt": "Vill du aktivera admin PIN-skydd?", "setupCancelled": "Administratörs-PIN-skyddet avbröts.", "enterPinPrompt": "Ange en 4-6-siffrig PIN-kod:", "pinFormatError": "❌ PIN-koden måste vara 4-6 siffror. Försök igen.", "confirmPinPrompt": "Bekräfta PIN:", "pinMismatchError": "❌ PIN-koderna stämmer inte överens. Försök igen.", "pinProtectionEnabledSuccess": "✅ Admin PIN-skydd har aktiverats framgångsrikt!", "pinRecoveryWarning": "⚠️ Kom ihåg din PIN-kod - den kan inte återställas om den tappas bort.", "setupPinProtectionFailed": "❌ Det gick inte att ställa in admin PIN-skydd.", "errorSettingUpPin": "❌ Fel vid inställning av administratörs-PIN: {message}", "authRequiredForOperation": "🔐 Adminautentisering krävs för: {operation}", "invalidPinFormat": "❌ Ogiltigt PIN-format. PIN-koden måste vara 4-6 siffror.", "authenticationSuccess": "✅ Autentisering lyckad!", "invalidPinAttemptsRemaining": "❌ Ogiltig PIN-kod. {remaining} försök kvar.", "authenticationFailedAccessDenied": "❌ Autentisering misslyckades. Åtkomst nekad.", "authenticationError": "❌ Autentiseringsfel: {message}", "pinProtectionNotEnabled": "Admin PIN-skydd är för närvarande inte aktiverat.", "disablingPinProtectionTitle": "🔓 Inaktiverar Admin PIN-skydd", "confirmDisablePinProtection": "Är du säker på att du vill inaktivera administratörs-PIN-skydd?", "operationCancelled": "Åtgärden avbröts.", "pinProtectionDisabledSuccess": "✅ Admin PIN-skydd inaktiverat.", "disablePinProtectionFailed": "❌ Det gick inte att inaktivera admin PIN-skydd.", "errorDisablingPinProtection": "❌ Fel när administratörsskyddet inaktiverades: {message}", "adminProtectionStatusTitle": "🔐 Adminskyddsstatus", "statusEnabled": "Status: ✅ AKTIVERAD", "protectionDetails": "Skydd: 4-6-siffrig PIN-kod krävs för administratörsfunktioner", "lockoutDetails": "Lockout: 3 misslyckade försök = 15 minuters lockout", "statusDisabled": "Status: ❌ INaktiverad", "noAuthRequired": "Skydd: Ingen autentisering krävs", "unprotectedRisk": "Risk: Administrativ verksamhet är oskydd