diff --git a/src-tauri/src/engine/worker.rs b/src-tauri/src/engine/worker.rs index a815845..f7c6f6a 100644 --- a/src-tauri/src/engine/worker.rs +++ b/src-tauri/src/engine/worker.rs @@ -414,7 +414,8 @@ pub fn start_clicker(config: ClickerConfig, control: RunControl) -> RunOutcome { } } - let per_tick_clicks = batch_size.saturating_mul(if config.double_click_enabled { 2 } else { 1 }); + let per_tick_clicks = + batch_size.saturating_mul(if config.double_click_enabled { 2 } else { 1 }); let requested_clicks = if config.sequence_enabled && !config.sequence_points.is_empty() { sequence_clicks_remaining.min(per_tick_clicks) } else { diff --git a/src/components/panels/advanced/LimitsSection.tsx b/src/components/panels/advanced/LimitsSection.tsx index bd3826f..ba8da96 100644 --- a/src/components/panels/advanced/LimitsSection.tsx +++ b/src/components/panels/advanced/LimitsSection.tsx @@ -21,21 +21,21 @@ export default function LimitsSection({ settings, update, showInfo }: Props) { : "clicks", ); - useEffect(() => { - if ( - settings.timeLimitEnabled && - !settings.clickLimitEnabled && - mode !== "time" - ) { - setMode("time"); - } else if ( - settings.clickLimitEnabled && - !settings.timeLimitEnabled && - mode !== "clicks" - ) { - setMode("clicks"); + // Sync mode with settings if they change from the outside (e.g. presets) + const [prevSettings, setPrevSettings] = useState(settings); + if ( + settings.clickLimitEnabled !== prevSettings.clickLimitEnabled || + settings.timeLimitEnabled !== prevSettings.timeLimitEnabled + ) { + setPrevSettings(settings); + const nextMode = + settings.timeLimitEnabled && !settings.clickLimitEnabled + ? "time" + : "clicks"; + if (nextMode !== mode) { + setMode(nextMode); } - }, [settings.clickLimitEnabled, settings.timeLimitEnabled, mode]); + } useEffect(() => { if (settings.clickLimitEnabled && settings.timeLimitEnabled) { diff --git a/src/components/panels/advanced/shared.tsx b/src/components/panels/advanced/shared.tsx index 07cb9f7..118d551 100644 --- a/src/components/panels/advanced/shared.tsx +++ b/src/components/panels/advanced/shared.tsx @@ -224,7 +224,6 @@ export function InfoIcon({ text }: { text: string }) { return; } - updateTooltipPosition(); const id = window.requestAnimationFrame(updateTooltipPosition); const handleReposition = () => { diff --git a/src/i18n.ts b/src/i18n.ts index d2c9bff..937cd46 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -13,16 +13,18 @@ import ar from "./locales/ar.json"; import en from "./locales/en.json"; import es from "./locales/es.json"; import fr from "./locales/fr.json"; +import pt from "./locales/pt.json"; -export const LANGUAGE_CODES = ["en", "es", "fr", "ar"] as const; +export const LANGUAGE_CODES = ["ar", "en", "es", "fr", "pt"] as const; export type Language = (typeof LANGUAGE_CODES)[number]; export const DEFAULT_LANGUAGE: Language = "en"; export const LANGUAGE_OPTIONS: readonly { code: Language; label: string }[] = [ + { code: "ar", label: "العربية" }, { code: "en", label: "English" }, { code: "es", label: "Español" }, { code: "fr", label: "Français" }, - { code: "ar", label: "العربية" }, + { code: "pt", label: "Português (Brasil)" }, ]; type TranslationTree = typeof en; @@ -34,10 +36,11 @@ export type TranslationKey = DotKeys; type TranslationVars = Record; const translations: Record = { + ar, en, es, fr, - ar, + pt, }; type I18nContextValue = { diff --git a/src/locales/ar.json b/src/locales/ar.json index 13f9aa7..6e78c11 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -1,209 +1,91 @@ { - "language": { - "en": "English", - "es": "Español", - "fr": "Français", - "ar": "العربية" - }, - "common": { - "on": "تشغيل", - "off": "إيقاف", - "enabled": "مفعل", - "disabled": "معطل", - "reset": "إعادة ضبط", - "resetting": "جار الضبط...", - "notAvailable": "غير متاح", - "dark": "داكن", - "light": "فاتح" - }, - "titleBar": { - "simple": "بسيط", - "advanced": "متقدم", - "zones": "المناطق", - "settings": "الإعدادات", - "enableAlwaysOnTop": "تفعيل البقاء في المقدمة", - "disableAlwaysOnTop": "إيقاف البقاء في المقدمة", - "minimize": "تصغير", - "close": "إغلاق" - }, - "settings": { - "supportMe": "ادعمني", - "version": "الإصدار", - "usageData": "بيانات استخدامك", - "usageDataDescription": "إحصاءات النقر الخاصة بك، محفوظة محليا.", - "totalClicks": "إجمالي النقرات", - "totalTimeClicking": "إجمالي وقت النقر", - "averageCpu": "متوسط استخدام المعالج", - "sessions": "الجلسات", - "noRuns": "لا توجد تشغيلات مسجلة بعد", - "clearStats": "مسح الإحصاءات", - "clearStatsDescription": "حذف جميع بيانات الاستخدام المخزنة محلياً بشكل دائم.", - "alwaysOnTop": "البقاء في المقدمة", - "alwaysOnTopDescription": "يبقي التطبيق فوق النوافذ الأخرى.", - "stopHitboxOverlay": "طبقة منطقة الإيقاف", - "stopHitboxOverlayDescription": "تبدل عرض طبقة منطقة الإيقاف.", - "stopReasonAlert": "تنبيه سبب الإيقاف", - "stopReasonAlertDescription": "يعرض سبب توقف أداة النقر في شريط العنوان.", - "strictHotkeyModifiers": "مفاتيح تعديل الاختصار الصارمة", - "strictHotkeyModifiersDescription": "تشغيل: يعمل الاختصار فقط عند تطابق مفاتيح التعديل تماما. إيقاف: يتم تجاهل مفاتيح التعديل الإضافية المضغوطة.", - "language": "اللغة", - "languageDescription": "اختر لغة عرض التطبيق.", - "minimizeToTray": "التصغير إلى شريط النظام", - "minimizeToTrayDescription": "عند التفعيل، يؤدي إغلاق النافذة إلى إخفائها في شريط النظام بدلا من إنهاء التطبيق.", - "runOnStartup": "التشغيل عند بدء النظام", - "runOnStartupDescription": "يشغّل BlurAutoClicker مع ويندوز وهو مصغر إلى شريط النظام.", - "theme": "السمة", - "themeDescription": "التبديل بين السمة الداكنة والفاتحة.", - "accentColor": "لون التمييز", - "accentColorDescription": "خصص اللون الأساسي المستخدم للحالات النشطة.", - "presets": "الإعدادات المسبقة", - "presetsDescription": "احفظ وأعد استخدام إعدادات أداة النقر المسماة.", - "presetNamePlaceholder": "اسم الإعداد المسبق", - "saveNewPreset": "حفظ جديد", - "presetLimitReached": "تم الوصول إلى حد الإعدادات المسبقة. احذف واحدا قبل حفظ آخر.", - "presetActionsDisabled": "إجراءات الإعدادات المسبقة معطلة أثناء تشغيل أداة النقر.", - "noPresets": "لا توجد إعدادات مسبقة محفوظة بعد. احفظ واحدة من إعداداتك الحالية.", - "presetActive": "نشط", - "presetSave": "حفظ", - "presetCancel": "إلغاء", - "presetConfirmDelete": "تأكيد؟", - "presetApply": "تطبيق", - "presetUpdate": "تحديث", - "presetRename": "إعادة تسمية", - "presetDelete": "حذف", - "resetAll": "إعادة ضبط كل الإعدادات", - "resetAllDescription": "يعيد كل حقول الإدخال والإعدادات إلى القيم الافتراضية." - }, - "simple": { - "changeClickInterval": "تغيير فاصل النقر", - "switchMode": "التبديل بين وضع التبديل ووضع الضغط المستمر للاختصار", - "selectMouseButton": "اختر زر الماوس الذي سيتم النقر به", - "hold": "ضغط", - "holdDescription": "مدة إبقاء زر الماوس مضغوطا في كل نقرة", - "randomization": "عشوائية", - "randomizationDescription": "يغير سرعة النقر عشوائيا ضمن نطاق النسبة المئوية من CPS المحدد" - }, "advanced": { "cadence": "Cadence", "cadenceDescription": "Controls how quickly clicks are generated: either as clicks per interval (Rate) or as a fixed delay between clicks (Delay).", - "clicksPer": "نقرات لكل", - "hotkey": "الاختصار", - "hotkeyDescription": "Choose the key combo that starts and stops the clicker. Use Toggle for press-on/press-off, or Hold to click only while held.", - "mouseButton": "زر الماوس", - "mouseButtonDescription": "Select which mouse button the clicker will press on each click event.", - "dutyCycle": "دورة الضغط", - "dutyCycleDescription": "يعشوئ مدة بقاء زر الماوس مضغوطا بين النسب الدنيا والعليا لكل فاصل نقر.", - "speedVariation": "تباين السرعة", - "speedVariationDescription": "يعشوئ توقيت النقر حول السرعة المحددة حتى هذه النسبة.", - "doubleClick": "نقر مزدوج", - "doubleClickDescription": "يضغط الزر مرتين في كل فاصل مع تأخير قابل للضبط بين النقرات.", - "limits": "الحدود", "clickLimit": "حد النقرات", "clickLimitDescription": "Stops automatically after the selected number of clicks.", - "timeLimit": "حد الوقت", - "timeLimitDescription": "Stops automatically after the selected duration.", + "clickLimitUnavailable": "Enable Click Limit to stop automatically after a set number of clicks.", + "clicksPer": "نقرات لكل", + "clicksUnit": "نقرات", "cornerStop": "إيقاف الزاوية", "cornerStopDescription": "يوقف أداة النقر عندما يدخل المؤشر زاوية الشاشة. أبقه كوسيلة أمان.", + "cornerStopUnavailable": "Enable Corner Stop to edit the corner failsafe hitboxes.", + "customStopZone": "منطقة إيقاف مخصصة", + "customStopZoneDescription": "توقف أداة النقر عندما يدخل المؤشر هذه المنطقة المستطيلة باستخدام إحداثيات مطلقة قد تمتد عبر عدة شاشات.", + "customStopZoneSetBottomRight": "تحديد أسفل اليمين", + "customStopZoneSetTopLeft": "تحديد أعلى اليسار", + "delay": "تأخير", + "doubleClick": "نقر مزدوج", + "doubleClickContentUnavailable": "Enable Double Click to adjust the delay between the first and second click.", + "doubleClickDescription": "يضغط الزر مرتين في كل فاصل مع تأخير قابل للضبط بين النقرات.", + "doubleClickUnavailable": "Double Click is unavailable at {cps} clicks/sec. Lower the effective click rate below 50 clicks/sec to turn it on.", + "dutyCycle": "دورة الضغط", + "dutyCycleDescription": "يعشوئ مدة بقاء زر الماوس مضغوطا بين النسب الدنيا والعليا لكل فاصل نقر.", + "dutyCycleUnavailable": "Enable Duty Cycle to edit how long each click is held.", "edgeStop": "إيقاف الحافة", "edgeStopDescription": "يوقف أداة النقر عندما يصل المؤشر إلى حافة الشاشة. أبقه كوسيلة أمان.", - "position": "الموضع", - "positionDescription": "ينقل المؤشر إلى النقطة المحفوظة قبل كل نقرة عند التفعيل.", - "delay": "تأخير", - "clicksUnit": "نقرات", + "edgeStopUnavailable": "Enable Edge Stop to edit the edge failsafe hitboxes.", + "hotkey": "الاختصار", + "hotkeyDescription": "Choose the key combo that starts and stops the clicker. Use Toggle for press-on/press-off, or Hold to click only while held.", + "limits": "الحدود", + "mouseButton": "زر الماوس", + "mouseButtonDescription": "Select which mouse button the clicker will press on each click event.", "pick": "اختيار", + "pickCountdownSingularUnavailable": "Position capture starts in 1 second. Move your cursor to the target spot and wait for it to be saved.", + "pickCountdownUnavailable": "Position capture starts in {seconds} seconds. Move your cursor to the target spot and wait for it to be saved.", + "pickInProgressUnavailable": "Position capture is already in progress. Wait for the current pick to finish.", "picking": "جار الاختيار...", "pickingIn": "الاختيار خلال {seconds}", + "position": "الموضع", + "positionDescription": "ينقل المؤشر إلى النقطة المحفوظة قبل كل نقرة عند التفعيل.", + "positionUnavailable": "Enable Position to edit or pick a fixed cursor target before each click.", + "sequenceAddCurrentCursor": "إضافة موضع المؤشر الحالي", "sequenceClicking": "النقر التسلسلي", "sequenceClickingDescription": "ينتقل بين مواضع المؤشر المحفوظة بالتتابع، مع تطبيق إعدادات التوقيت والنقر العامة عند كل نقطة.", - "sequenceEmpty": "لا توجد نقاط تسلسل محفوظة بعد.", - "sequenceMoveUp": "أعلى", - "sequenceMoveDown": "أسفل", "sequenceDelete": "حذف", - "sequenceAddCurrentCursor": "إضافة موضع المؤشر الحالي", + "sequenceEmpty": "لا توجد نقاط تسلسل محفوظة بعد.", "sequenceEndOfList": "هذا كل شيء :)", - "customStopZone": "منطقة إيقاف مخصصة", - "customStopZoneDescription": "توقف أداة النقر عندما يدخل المؤشر هذه المنطقة المستطيلة باستخدام إحداثيات مطلقة قد تمتد عبر عدة شاشات.", - "customStopZoneSetTopLeft": "تحديد أعلى اليسار", - "customStopZoneSetBottomRight": "تحديد أسفل اليمين", + "sequenceMoveDown": "أسفل", + "sequenceMoveUp": "أعلى", + "speedVariation": "تباين السرعة", + "speedVariationDescription": "يعشوئ توقيت النقر حول السرعة المحددة حتى هذه النسبة.", "speedVariationUnavailable": "Enable Speed Variation to edit how much the app randomizes your click timing.", - "doubleClickUnavailable": "Double Click is unavailable at {cps} clicks/sec. Lower the effective click rate below 50 clicks/sec to turn it on.", - "doubleClickContentUnavailable": "Enable Double Click to adjust the delay between the first and second click.", - "clickLimitUnavailable": "Enable Click Limit to stop automatically after a set number of clicks.", - "timeLimitUnavailable": "Enable Time Limit to stop automatically after a set amount of time.", - "cornerStopUnavailable": "Enable Corner Stop to edit the corner failsafe hitboxes.", - "edgeStopUnavailable": "Enable Edge Stop to edit the edge failsafe hitboxes.", - "positionUnavailable": "Enable Position to edit or pick a fixed cursor target before each click.", - "dutyCycleUnavailable": "Enable Duty Cycle to edit how long each click is held.", - "pickInProgressUnavailable": "Position capture is already in progress. Wait for the current pick to finish.", - "pickCountdownUnavailable": "Position capture starts in {seconds} seconds. Move your cursor to the target spot and wait for it to be saved.", - "pickCountdownSingularUnavailable": "Position capture starts in 1 second. Move your cursor to the target spot and wait for it to be saved." + "timeLimit": "حد الوقت", + "timeLimitDescription": "Stops automatically after the selected duration.", + "timeLimitUnavailable": "Enable Time Limit to stop automatically after a set amount of time." }, - "options": { - "interval": { - "s": "ثانية", - "m": "دقيقة", - "h": "ساعة", - "d": "يوم" - }, - "intervalShort": { - "s": "ث", - "m": "د", - "h": "س", - "d": "ي" - }, - "mode": { - "Toggle": "تبديل", - "Hold": "ضغط مستمر" - }, - "mouseButton": { - "Left": "الأيسر", - "Middle": "الأوسط", - "Right": "الأيمن" - }, - "mouseClick": { - "Left": "نقرة يسرى", - "Middle": "نقرة وسطى", - "Right": "نقرة يمنى" - }, - "timeUnitShort": { - "s": "ث", - "m": "د", - "h": "س" - } + "common": { + "dark": "داكن", + "disabled": "معطل", + "enabled": "مفعل", + "light": "فاتح", + "notAvailable": "غير متاح", + "off": "إيقاف", + "on": "تشغيل", + "reset": "إعادة ضبط", + "resetting": "جار الضبط..." }, "hotkey": { - "pressKeys": "اضغط المفاتيح...", "empty": "انقر واضغط المفاتيح", "key": { - "up": "أعلى", - "down": "أسفل", - "left": "يسار", - "right": "يمين", - "pageup": "صفحة للأعلى", - "pagedown": "صفحة للأسفل", "backspace": "مسح للخلف", + "capslock": "Caps Lock", "delete": "حذف", - "insert": "إدراج", - "home": "البداية", + "down": "أسفل", "end": "النهاية", "enter": "إدخال", - "tab": "تبويب", - "space": "مسافة", - "escape": "Esc", "esc": "Esc", - "capslock": "Caps Lock", - "numlock": "Num Lock", - "scrolllock": "Scroll Lock", - "printscreen": "Print Screen", - "pause": "Pause", + "escape": "Esc", + "home": "البداية", + "insert": "إدراج", + "left": "يسار", "menu": "Menu", - "mouseleft": "زر الماوس الأيسر", - "mouseright": "زر الماوس الأيمن", - "mousemiddle": "زر العجلة", "mouse4": "رجوع الماوس", "mouse5": "تقدم الماوس", - "scrollup": "تمرير لأعلى", - "scrolldown": "تمرير لأسفل", + "mouseleft": "زر الماوس الأيسر", + "mousemiddle": "زر العجلة", + "mouseright": "زر الماوس الأيمن", + "numlock": "Num Lock", "numpad0": "لوحة 0", "numpad1": "لوحة 1", "numpad2": "لوحة 2", @@ -215,50 +97,169 @@ "numpad8": "لوحة 8", "numpad9": "لوحة 9", "numpadadd": "لوحة +", - "numpadsubtract": "لوحة -", - "numpadmultiply": "لوحة *", - "numpaddivide": "لوحة /", "numpaddecimal": "لوحة .", - "numpadenter": "إدخال اللوحة" + "numpaddivide": "لوحة /", + "numpadenter": "إدخال اللوحة", + "numpadmultiply": "لوحة *", + "numpadsubtract": "لوحة -", + "pagedown": "صفحة للأسفل", + "pageup": "صفحة للأعلى", + "pause": "Pause", + "printscreen": "Print Screen", + "right": "يمين", + "scrolldown": "تمرير لأسفل", + "scrolllock": "Scroll Lock", + "scrollup": "تمرير لأعلى", + "space": "مسافة", + "tab": "تبويب", + "up": "أعلى" }, "modifier": { - "ctrl": "Ctrl", "alt": "Alt", + "ctrl": "Ctrl", "shift": "Shift", "super": "Super" + }, + "pressKeys": "اضغط المفاتيح..." + }, + "language": { + "ar": "العربية", + "en": "English", + "es": "Español", + "fr": "Français", + "pt": "البرتغالية (البرازيل)" + }, + "options": { + "interval": { + "d": "يوم", + "h": "ساعة", + "m": "دقيقة", + "s": "ثانية" + }, + "intervalShort": { + "d": "ي", + "h": "س", + "m": "د", + "s": "ث" + }, + "mode": { + "Hold": "ضغط مستمر", + "Toggle": "تبديل" + }, + "mouseButton": { + "Left": "الأيسر", + "Middle": "الأوسط", + "Right": "الأيمن" + }, + "mouseClick": { + "Left": "نقرة يسرى", + "Middle": "نقرة وسطى", + "Right": "نقرة يمنى" + }, + "timeUnitShort": { + "h": "س", + "m": "د", + "s": "ث" } }, + "settings": { + "accentColor": "لون التمييز", + "accentColorDescription": "خصص اللون الأساسي المستخدم للحالات النشطة.", + "alwaysOnTop": "البقاء في المقدمة", + "alwaysOnTopDescription": "يبقي التطبيق فوق النوافذ الأخرى.", + "averageCpu": "متوسط استخدام المعالج", + "clearStats": "مسح الإحصاءات", + "clearStatsDescription": "حذف جميع بيانات الاستخدام المخزنة محلياً بشكل دائم.", + "language": "اللغة", + "languageDescription": "اختر لغة عرض التطبيق.", + "minimizeToTray": "التصغير إلى شريط النظام", + "minimizeToTrayDescription": "عند التفعيل، يؤدي إغلاق النافذة إلى إخفائها في شريط النظام بدلا من إنهاء التطبيق.", + "noPresets": "لا توجد إعدادات مسبقة محفوظة بعد. احفظ واحدة من إعداداتك الحالية.", + "noRuns": "لا توجد تشغيلات مسجلة بعد", + "presetActionsDisabled": "إجراءات الإعدادات المسبقة معطلة أثناء تشغيل أداة النقر.", + "presetActive": "نشط", + "presetApply": "تطبيق", + "presetCancel": "إلغاء", + "presetConfirmDelete": "تأكيد؟", + "presetDelete": "حذف", + "presetLimitReached": "تم الوصول إلى حد الإعدادات المسبقة. احذف واحدا قبل حفظ آخر.", + "presetNamePlaceholder": "اسم الإعداد المسبق", + "presetRename": "إعادة تسمية", + "presetSave": "حفظ", + "presetUpdate": "تحديث", + "presets": "الإعدادات المسبقة", + "presetsDescription": "احفظ وأعد استخدام إعدادات أداة النقر المسماة.", + "resetAll": "إعادة ضبط كل الإعدادات", + "resetAllDescription": "يعيد كل حقول الإدخال والإعدادات إلى القيم الافتراضية.", + "runOnStartup": "التشغيل عند بدء النظام", + "runOnStartupDescription": "يشغّل BlurAutoClicker مع ويندوز وهو مصغر إلى شريط النظام.", + "saveNewPreset": "حفظ جديد", + "sessions": "الجلسات", + "stopHitboxOverlay": "طبقة منطقة الإيقاف", + "stopHitboxOverlayDescription": "تبدل عرض طبقة منطقة الإيقاف.", + "stopReasonAlert": "تنبيه سبب الإيقاف", + "stopReasonAlertDescription": "يعرض سبب توقف أداة النقر في شريط العنوان.", + "strictHotkeyModifiers": "مفاتيح تعديل الاختصار الصارمة", + "strictHotkeyModifiersDescription": "تشغيل: يعمل الاختصار فقط عند تطابق مفاتيح التعديل تماما. إيقاف: يتم تجاهل مفاتيح التعديل الإضافية المضغوطة.", + "supportMe": "ادعمني", + "theme": "السمة", + "themeDescription": "التبديل بين السمة الداكنة والفاتحة.", + "totalClicks": "إجمالي النقرات", + "totalTimeClicking": "إجمالي وقت النقر", + "usageData": "بيانات استخدامك", + "usageDataDescription": "إحصاءات النقر الخاصة بك، محفوظة محليا.", + "version": "الإصدار" + }, + "simple": { + "changeClickInterval": "تغيير فاصل النقر", + "hold": "ضغط", + "holdDescription": "مدة إبقاء زر الماوس مضغوطا في كل نقرة", + "randomization": "عشوائية", + "randomizationDescription": "يغير سرعة النقر عشوائيا ضمن نطاق النسبة المئوية من CPS المحدد", + "selectMouseButton": "اختر زر الماوس الذي سيتم النقر به", + "switchMode": "التبديل بين وضع التبديل ووضع الضغط المستمر للاختصار" + }, + "stopReason": { + "bottomEdgeFailsafe": "أمان الحافة السفلية", + "bottomLeftCornerFailsafe": "أمان الزاوية السفلية اليسرى", + "bottomRightCornerFailsafe": "أمان الزاوية السفلية اليمنى", + "clickLimitReached": "تم بلوغ حد النقرات ({count})", + "leftEdgeFailsafe": "أمان الحافة اليسرى", + "rightEdgeFailsafe": "أمان الحافة اليمنى", + "stopped": "تم الإيقاف", + "stoppedFromHoldHotkey": "تم الإيقاف من اختصار الضغط المستمر", + "stoppedFromHotkey": "تم الإيقاف من الاختصار", + "stoppedFromToggle": "تم الإيقاف من التبديل", + "stoppedFromUi": "تم الإيقاف من الواجهة", + "timeLimitReached": "تم بلوغ حد الوقت ({time})", + "topEdgeFailsafe": "أمان الحافة العلوية", + "topLeftCornerFailsafe": "أمان الزاوية العلوية اليسرى", + "topRightCornerFailsafe": "أمان الزاوية العلوية اليمنى" + }, + "titleBar": { + "advanced": "متقدم", + "close": "إغلاق", + "disableAlwaysOnTop": "إيقاف البقاء في المقدمة", + "enableAlwaysOnTop": "تفعيل البقاء في المقدمة", + "minimize": "تصغير", + "settings": "الإعدادات", + "simple": "بسيط", + "zones": "المناطق" + }, "update": { - "to": "إلى", - "preparing": "جار تحضير التحديث...", - "notAvailable": "لم يعد التحديث متاحا.", + "downloadAndInstall": "تنزيل وتثبيت", "downloading": "جار تنزيل التحديث...", + "installAlreadyDownloading": "The update is already downloading. Wait for the current install to finish.", + "installAlreadyInstalling": "The update is already installing. Wait for it to finish before trying again.", + "installAlreadyPreparing": "The update is already being prepared. Wait for it to finish before trying again.", + "installFailed": "فشل تثبيت التحديث.", + "installedRestart": "تم تثبيت التحديث. أعد التشغيل لتطبيقه.", "installing": "جار تثبيت التحديث...", "installingButton": "جار التثبيت...", - "installedRestart": "تم تثبيت التحديث. أعد التشغيل لتطبيقه.", - "installFailed": "فشل تثبيت التحديث.", + "notAvailable": "لم يعد التحديث متاحا.", + "preparing": "جار تحضير التحديث...", "restartFailed": "فشلت إعادة التشغيل. أعد فتح التطبيق يدويا.", "restartToApply": "إعادة التشغيل للتطبيق", - "downloadAndInstall": "تنزيل وتثبيت", - "installAlreadyInstalling": "The update is already installing. Wait for it to finish before trying again.", - "installAlreadyDownloading": "The update is already downloading. Wait for the current install to finish.", - "installAlreadyPreparing": "The update is already being prepared. Wait for it to finish before trying again." - }, - "stopReason": { - "stoppedFromUi": "تم الإيقاف من الواجهة", - "stoppedFromToggle": "تم الإيقاف من التبديل", - "stoppedFromHotkey": "تم الإيقاف من الاختصار", - "stoppedFromHoldHotkey": "تم الإيقاف من اختصار الضغط المستمر", - "stopped": "تم الإيقاف", - "topLeftCornerFailsafe": "أمان الزاوية العلوية اليسرى", - "topRightCornerFailsafe": "أمان الزاوية العلوية اليمنى", - "bottomLeftCornerFailsafe": "أمان الزاوية السفلية اليسرى", - "bottomRightCornerFailsafe": "أمان الزاوية السفلية اليمنى", - "topEdgeFailsafe": "أمان الحافة العلوية", - "rightEdgeFailsafe": "أمان الحافة اليمنى", - "bottomEdgeFailsafe": "أمان الحافة السفلية", - "leftEdgeFailsafe": "أمان الحافة اليسرى", - "clickLimitReached": "تم بلوغ حد النقرات ({count})", - "timeLimitReached": "تم بلوغ حد الوقت ({time})" + "to": "إلى" } } diff --git a/src/locales/en.json b/src/locales/en.json index 0a3548c..e0ee2c8 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,209 +1,91 @@ { - "language": { - "en": "English", - "es": "Español", - "fr": "Français", - "ar": "العربية" - }, - "common": { - "on": "On", - "off": "Off", - "enabled": "Enabled", - "disabled": "Disabled", - "reset": "Reset", - "resetting": "Resetting...", - "notAvailable": "N/A", - "dark": "Dark", - "light": "Light" - }, - "titleBar": { - "simple": "Simple", - "advanced": "Advanced", - "zones": "Zones", - "settings": "Settings", - "enableAlwaysOnTop": "Enable Always on Top", - "disableAlwaysOnTop": "Disable Always on Top", - "minimize": "Minimize", - "close": "Close" - }, - "settings": { - "supportMe": "Support Me", - "version": "Version", - "usageData": "Your Usage Data", - "usageDataDescription": "Your personal clicker stats, tracked locally.", - "totalClicks": "Total Clicks", - "totalTimeClicking": "Total Time spent clicking", - "averageCpu": "CPU Usage avg", - "sessions": "Sessions", - "noRuns": "No runs recorded yet", - "clearStats": "Clear Stats", - "clearStatsDescription": "Permanently delete all locally stored usage data.", - "alwaysOnTop": "Always on Top", - "alwaysOnTopDescription": "Keep the app pinned above other windows.", - "stopHitboxOverlay": "Stop Hitbox Overlay", - "stopHitboxOverlayDescription": "Toggles whether the stop hitbox overlay is shown.", - "stopReasonAlert": "Stop Reason Alert", - "stopReasonAlertDescription": "Shows why the clicker stopped in the title bar.", - "strictHotkeyModifiers": "Strict Hotkey Modifiers", - "strictHotkeyModifiersDescription": "On: hotkey only fires when modifier keys match exactly. Off: extra held modifiers are ignored.", - "language": "Language", - "languageDescription": "Choose the app display language.", - "minimizeToTray": "Minimize to Tray", - "minimizeToTrayDescription": "When enabled, closing the window hides it to the system tray instead of quitting.", - "runOnStartup": "Run on Startup", - "runOnStartupDescription": "Automatically start BlurAutoClicker with Windows, minimized to tray.", - "theme": "Theme", - "themeDescription": "Switch between dark and light themes.", - "accentColor": "Accent Color", - "accentColorDescription": "Customize the primary accent used for active states.", - "presets": "Presets", - "presetsDescription": "Save and reuse named clicker configurations.", - "presetNamePlaceholder": "Preset name", - "saveNewPreset": "Save New", - "presetLimitReached": "Preset limit reached. Delete one before saving another.", - "presetActionsDisabled": "Preset actions are disabled while the clicker is running.", - "noPresets": "No presets saved yet. Save one from your current clicker settings.", - "presetActive": "Active", - "presetSave": "Save", - "presetCancel": "Cancel", - "presetConfirmDelete": "Confirm?", - "presetApply": "Apply", - "presetUpdate": "Update", - "presetRename": "Rename", - "presetDelete": "Delete", - "resetAll": "Reset All Settings", - "resetAllDescription": "Will reset all input fields and settings to the defaults." - }, - "simple": { - "changeClickInterval": "Change Click Interval", - "switchMode": "Switch between hotkey Toggle and Hold mode", - "selectMouseButton": "Select which mouse button gets clicked", - "hold": "Hold", - "holdDescription": "How long the mouse button gets held down during each click", - "randomization": "Randomization", - "randomizationDescription": "Randomly changes click speed in % range of set CPS" - }, "advanced": { "cadence": "Cadence", "cadenceDescription": "Controls how quickly clicks are generated: either as clicks per interval (Rate) or as a fixed delay between clicks (Delay).", - "clicksPer": "Clicks Per", - "hotkey": "Hotkey", - "hotkeyDescription": "Choose the key combo that starts and stops the clicker. Use Toggle for press-on/press-off, or Hold to click only while held.", - "mouseButton": "Mouse Button", - "mouseButtonDescription": "Select which mouse button the clicker will press on each click event.", - "dutyCycle": "Click Duration", - "dutyCycleDescription": "Choose how long the mouse button gets held during each click. 50% at 1 click per second = 0.5sec held, 0.5sec released", - "speedVariation": "Speed Variation", - "speedVariationDescription": "Randomizes click speed by given percentage.", - "doubleClick": "Double Click", - "doubleClickDescription": "Clicks the entered button twice per click at the given interval. Only available under 50cps", - "limits": "Limits", "clickLimit": "Click", "clickLimitDescription": "Stops automatically after the selected number of clicks.", - "timeLimit": "Time", - "timeLimitDescription": "Stops automatically after the selected duration.", + "clickLimitUnavailable": "Enable Click Limit to stop automatically after a set number of clicks.", + "clicksPer": "Clicks Per", + "clicksUnit": "clicks", "cornerStop": "Corner Stop", "cornerStopDescription": "Stops the clicker when the cursor enters a screen corner. Keep it as a failsafe.", + "cornerStopUnavailable": "Enable Corner Stop to edit the corner failsafe hitboxes.", + "customStopZone": "Custom Stop Zone", + "customStopZoneDescription": "Stops the clicker when the cursor enters this rectangular area, using absolute screen coordinates that can span multiple monitors.", + "customStopZoneSetBottomRight": "Set Bottom-Right", + "customStopZoneSetTopLeft": "Set Top-Left", + "delay": "delay", + "doubleClick": "Double Click", + "doubleClickContentUnavailable": "Enable Double Click to adjust the delay between the first and second click.", + "doubleClickDescription": "Clicks the entered button twice per click at the given interval. Only available under 50cps", + "doubleClickUnavailable": "Double Click is unavailable at {cps} clicks/sec. Lower the effective click rate below 50 clicks/sec to turn it on.", + "dutyCycle": "Click Duration", + "dutyCycleDescription": "Choose how long the mouse button gets held during each click. 50% at 1 click per second = 0.5sec held, 0.5sec released", + "dutyCycleUnavailable": "Enable Duty Cycle to edit how long each click is held.", "edgeStop": "Edge Stop", "edgeStopDescription": "Stops the clicker when the cursor reaches a screen edge. Keep it as a failsafe.", - "position": "Position", - "positionDescription": "Moves the cursor to the saved point before each click while enabled.", - "delay": "delay", - "clicksUnit": "clicks", + "edgeStopUnavailable": "Enable Edge Stop to edit the edge failsafe hitboxes.", + "hotkey": "Hotkey", + "hotkeyDescription": "Choose the key combo that starts and stops the clicker. Use Toggle for press-on/press-off, or Hold to click only while held.", + "limits": "Limits", + "mouseButton": "Mouse Button", + "mouseButtonDescription": "Select which mouse button the clicker will press on each click event.", "pick": "Pick", + "pickCountdownSingularUnavailable": "Position capture starts in 1 second. Move your cursor to the target spot and wait for it to be saved.", + "pickCountdownUnavailable": "Position capture starts in {seconds} seconds. Move your cursor to the target spot and wait for it to be saved.", + "pickInProgressUnavailable": "Position capture is already in progress. Wait for the current pick to finish.", "picking": "Picking...", "pickingIn": "Picking in {seconds}", + "position": "Position", + "positionDescription": "Moves the cursor to the saved point before each click while enabled.", + "positionUnavailable": "Enable Position to edit or pick a fixed cursor target before each click.", + "sequenceAddCurrentCursor": "Add Current Cursor", "sequenceClicking": "Sequence Clicking", "sequenceClickingDescription": "Cycles through saved cursor positions in round-robin order, applying the current global timing and click settings at each point.", - "sequenceEmpty": "No sequence points saved yet.", - "sequenceMoveUp": "Up", - "sequenceMoveDown": "Down", "sequenceDelete": "Delete", - "sequenceAddCurrentCursor": "Add Current Cursor", + "sequenceEmpty": "No sequence points saved yet.", "sequenceEndOfList": "That's all fields :)", - "customStopZone": "Custom Stop Zone", - "customStopZoneDescription": "Stops the clicker when the cursor enters this rectangular area, using absolute screen coordinates that can span multiple monitors.", - "customStopZoneSetTopLeft": "Set Top-Left", - "customStopZoneSetBottomRight": "Set Bottom-Right", + "sequenceMoveDown": "Down", + "sequenceMoveUp": "Up", + "speedVariation": "Speed Variation", + "speedVariationDescription": "Randomizes click speed by given percentage.", "speedVariationUnavailable": "Enable Speed Variation to edit how much the app randomizes your click timing.", - "doubleClickUnavailable": "Double Click is unavailable at {cps} clicks/sec. Lower the effective click rate below 50 clicks/sec to turn it on.", - "doubleClickContentUnavailable": "Enable Double Click to adjust the delay between the first and second click.", - "clickLimitUnavailable": "Enable Click Limit to stop automatically after a set number of clicks.", - "timeLimitUnavailable": "Enable Time Limit to stop automatically after a set amount of time.", - "cornerStopUnavailable": "Enable Corner Stop to edit the corner failsafe hitboxes.", - "edgeStopUnavailable": "Enable Edge Stop to edit the edge failsafe hitboxes.", - "positionUnavailable": "Enable Position to edit or pick a fixed cursor target before each click.", - "dutyCycleUnavailable": "Enable Duty Cycle to edit how long each click is held.", - "pickInProgressUnavailable": "Position capture is already in progress. Wait for the current pick to finish.", - "pickCountdownUnavailable": "Position capture starts in {seconds} seconds. Move your cursor to the target spot and wait for it to be saved.", - "pickCountdownSingularUnavailable": "Position capture starts in 1 second. Move your cursor to the target spot and wait for it to be saved." + "timeLimit": "Time", + "timeLimitDescription": "Stops automatically after the selected duration.", + "timeLimitUnavailable": "Enable Time Limit to stop automatically after a set amount of time." }, - "options": { - "interval": { - "s": "Second", - "m": "Minute", - "h": "Hour", - "d": "Day" - }, - "intervalShort": { - "s": "s", - "m": "m", - "h": "h", - "d": "d" - }, - "mode": { - "Toggle": "Toggle", - "Hold": "Hold" - }, - "mouseButton": { - "Left": "Left", - "Middle": "Middle", - "Right": "Right" - }, - "mouseClick": { - "Left": "Left Click", - "Middle": "Middle Click", - "Right": "Right Click" - }, - "timeUnitShort": { - "s": "s", - "m": "m", - "h": "h" - } + "common": { + "dark": "Dark", + "disabled": "Disabled", + "enabled": "Enabled", + "light": "Light", + "notAvailable": "N/A", + "off": "Off", + "on": "On", + "reset": "Reset", + "resetting": "Resetting..." }, "hotkey": { - "pressKeys": "Press keys...", "empty": "Click and press keys", "key": { - "up": "Up", - "down": "Down", - "left": "Left", - "right": "Right", - "pageup": "Page Up", - "pagedown": "Page Down", "backspace": "Backspace", + "capslock": "Caps Lock", "delete": "Delete", - "insert": "Insert", - "home": "Home", + "down": "Down", "end": "End", "enter": "Enter", - "tab": "Tab", - "space": "Space", - "escape": "Esc", "esc": "Esc", - "capslock": "Caps Lock", - "numlock": "Num Lock", - "scrolllock": "Scroll Lock", - "printscreen": "Print Screen", - "pause": "Pause", + "escape": "Esc", + "home": "Home", + "insert": "Insert", + "left": "Left", "menu": "Menu", - "mouseleft": "Mouse Left", - "mouseright": "Mouse Right", - "mousemiddle": "Scroll Button", "mouse4": "Mouse Back", "mouse5": "Mouse Forward", - "scrollup": "Scroll Up", - "scrolldown": "Scroll Down", + "mouseleft": "Mouse Left", + "mousemiddle": "Scroll Button", + "mouseright": "Mouse Right", + "numlock": "Num Lock", "numpad0": "Num 0", "numpad1": "Num 1", "numpad2": "Num 2", @@ -215,50 +97,169 @@ "numpad8": "Num 8", "numpad9": "Num 9", "numpadadd": "Num +", - "numpadsubtract": "Num -", - "numpadmultiply": "Num *", - "numpaddivide": "Num /", "numpaddecimal": "Num .", - "numpadenter": "Num Enter" + "numpaddivide": "Num /", + "numpadenter": "Num Enter", + "numpadmultiply": "Num *", + "numpadsubtract": "Num -", + "pagedown": "Page Down", + "pageup": "Page Up", + "pause": "Pause", + "printscreen": "Print Screen", + "right": "Right", + "scrolldown": "Scroll Down", + "scrolllock": "Scroll Lock", + "scrollup": "Scroll Up", + "space": "Space", + "tab": "Tab", + "up": "Up" }, "modifier": { - "ctrl": "Ctrl", "alt": "Alt", + "ctrl": "Ctrl", "shift": "Shift", "super": "Super" + }, + "pressKeys": "Press keys..." + }, + "language": { + "ar": "العربية", + "en": "English", + "es": "Español", + "fr": "Français", + "pt": "Português (Brasil)" + }, + "options": { + "interval": { + "d": "Day", + "h": "Hour", + "m": "Minute", + "s": "Second" + }, + "intervalShort": { + "d": "d", + "h": "h", + "m": "m", + "s": "s" + }, + "mode": { + "Hold": "Hold", + "Toggle": "Toggle" + }, + "mouseButton": { + "Left": "Left", + "Middle": "Middle", + "Right": "Right" + }, + "mouseClick": { + "Left": "Left Click", + "Middle": "Middle Click", + "Right": "Right Click" + }, + "timeUnitShort": { + "h": "h", + "m": "m", + "s": "s" } }, + "settings": { + "accentColor": "Accent Color", + "accentColorDescription": "Customize the primary accent used for active states.", + "alwaysOnTop": "Always on Top", + "alwaysOnTopDescription": "Keep the app pinned above other windows.", + "averageCpu": "CPU Usage avg", + "clearStats": "Clear Stats", + "clearStatsDescription": "Permanently delete all locally stored usage data.", + "language": "Language", + "languageDescription": "Choose the app display language.", + "minimizeToTray": "Minimize to Tray", + "minimizeToTrayDescription": "When enabled, closing the window hides it to the system tray instead of quitting.", + "noPresets": "No presets saved yet. Save one from your current clicker settings.", + "noRuns": "No runs recorded yet", + "presetActionsDisabled": "Preset actions are disabled while the clicker is running.", + "presetActive": "Active", + "presetApply": "Apply", + "presetCancel": "Cancel", + "presetConfirmDelete": "Confirm?", + "presetDelete": "Delete", + "presetLimitReached": "Preset limit reached. Delete one before saving another.", + "presetNamePlaceholder": "Preset name", + "presetRename": "Rename", + "presetSave": "Save", + "presetUpdate": "Update", + "presets": "Presets", + "presetsDescription": "Save and reuse named clicker configurations.", + "resetAll": "Reset All Settings", + "resetAllDescription": "Will reset all input fields and settings to the defaults.", + "runOnStartup": "Run on Startup", + "runOnStartupDescription": "Automatically start BlurAutoClicker with Windows, minimized to tray.", + "saveNewPreset": "Save New", + "sessions": "Sessions", + "stopHitboxOverlay": "Stop Hitbox Overlay", + "stopHitboxOverlayDescription": "Toggles whether the stop hitbox overlay is shown.", + "stopReasonAlert": "Stop Reason Alert", + "stopReasonAlertDescription": "Shows why the clicker stopped in the title bar.", + "strictHotkeyModifiers": "Strict Hotkey Modifiers", + "strictHotkeyModifiersDescription": "On: hotkey only fires when modifier keys match exactly. Off: extra held modifiers are ignored.", + "supportMe": "Support Me", + "theme": "Theme", + "themeDescription": "Switch between dark and light themes.", + "totalClicks": "Total Clicks", + "totalTimeClicking": "Total Time spent clicking", + "usageData": "Your Usage Data", + "usageDataDescription": "Your personal clicker stats, tracked locally.", + "version": "Version" + }, + "simple": { + "changeClickInterval": "Change Click Interval", + "hold": "Hold", + "holdDescription": "How long the mouse button gets held down during each click", + "randomization": "Randomization", + "randomizationDescription": "Randomly changes click speed in % range of set CPS", + "selectMouseButton": "Select which mouse button gets clicked", + "switchMode": "Switch between hotkey Toggle and Hold mode" + }, + "stopReason": { + "bottomEdgeFailsafe": "Bottom edge failsafe", + "bottomLeftCornerFailsafe": "Bottom-left corner failsafe", + "bottomRightCornerFailsafe": "Bottom-right corner failsafe", + "clickLimitReached": "Click limit reached ({count})", + "leftEdgeFailsafe": "Left edge failsafe", + "rightEdgeFailsafe": "Right edge failsafe", + "stopped": "Stopped", + "stoppedFromHoldHotkey": "Stopped from hold hotkey", + "stoppedFromHotkey": "Stopped from hotkey", + "stoppedFromToggle": "Stopped from toggle", + "stoppedFromUi": "Stopped from UI", + "timeLimitReached": "Time limit reached ({time})", + "topEdgeFailsafe": "Top edge failsafe", + "topLeftCornerFailsafe": "Top-left corner failsafe", + "topRightCornerFailsafe": "Top-right corner failsafe" + }, + "titleBar": { + "advanced": "Advanced", + "close": "Close", + "disableAlwaysOnTop": "Disable Always on Top", + "enableAlwaysOnTop": "Enable Always on Top", + "minimize": "Minimize", + "settings": "Settings", + "simple": "Simple", + "zones": "Zones" + }, "update": { - "to": "to", - "preparing": "Preparing update...", - "notAvailable": "Update is no longer available.", + "downloadAndInstall": "Download and Install", "downloading": "Downloading update...", + "installAlreadyDownloading": "The update is already downloading. Wait for the current install to finish.", + "installAlreadyInstalling": "The update is already installing. Wait for it to finish before trying again.", + "installAlreadyPreparing": "The update is already being prepared. Wait for it to finish before trying again.", + "installFailed": "Update install failed.", + "installedRestart": "Update installed. Restart to apply it.", "installing": "Installing update...", "installingButton": "Installing...", - "installedRestart": "Update installed. Restart to apply it.", - "installFailed": "Update install failed.", + "notAvailable": "Update is no longer available.", + "preparing": "Preparing update...", "restartFailed": "Restart failed. Please reopen the app manually.", "restartToApply": "Restart to Apply Update", - "downloadAndInstall": "Download and Install", - "installAlreadyInstalling": "The update is already installing. Wait for it to finish before trying again.", - "installAlreadyDownloading": "The update is already downloading. Wait for the current install to finish.", - "installAlreadyPreparing": "The update is already being prepared. Wait for it to finish before trying again." - }, - "stopReason": { - "stoppedFromUi": "Stopped from UI", - "stoppedFromToggle": "Stopped from toggle", - "stoppedFromHotkey": "Stopped from hotkey", - "stoppedFromHoldHotkey": "Stopped from hold hotkey", - "stopped": "Stopped", - "topLeftCornerFailsafe": "Top-left corner failsafe", - "topRightCornerFailsafe": "Top-right corner failsafe", - "bottomLeftCornerFailsafe": "Bottom-left corner failsafe", - "bottomRightCornerFailsafe": "Bottom-right corner failsafe", - "topEdgeFailsafe": "Top edge failsafe", - "rightEdgeFailsafe": "Right edge failsafe", - "bottomEdgeFailsafe": "Bottom edge failsafe", - "leftEdgeFailsafe": "Left edge failsafe", - "clickLimitReached": "Click limit reached ({count})", - "timeLimitReached": "Time limit reached ({time})" + "to": "to" } } diff --git a/src/locales/es.json b/src/locales/es.json index 47cd817..2a26449 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -1,209 +1,91 @@ { - "language": { - "en": "English", - "es": "Español", - "fr": "Français", - "ar": "العربية" - }, - "common": { - "on": "Activado", - "off": "Desactivado", - "enabled": "Activado", - "disabled": "Desactivado", - "reset": "Restablecer", - "resetting": "Restableciendo...", - "notAvailable": "N/D", - "dark": "Oscuro", - "light": "Claro" - }, - "titleBar": { - "simple": "Simple", - "advanced": "Avanzado", - "zones": "Zonas", - "settings": "Ajustes", - "enableAlwaysOnTop": "Activar siempre encima", - "disableAlwaysOnTop": "Desactivar siempre encima", - "minimize": "Minimizar", - "close": "Cerrar" - }, - "settings": { - "supportMe": "Apóyame", - "version": "Versión", - "usageData": "Tus datos de uso", - "usageDataDescription": "Tus estadísticas personales, guardadas localmente.", - "totalClicks": "Clics totales", - "totalTimeClicking": "Tiempo total haciendo clic", - "averageCpu": "Uso medio de CPU", - "sessions": "Sesiones", - "noRuns": "Aún no hay ejecuciones registradas", - "clearStats": "Borrar estadísticas", - "clearStatsDescription": "Eliminar permanentemente todos los datos de uso almacenados localmente.", - "alwaysOnTop": "Siempre encima", - "alwaysOnTopDescription": "Mantiene la app fijada por encima de otras ventanas.", - "stopHitboxOverlay": "Superposición de zona de parada", - "stopHitboxOverlayDescription": "Activa o desactiva la superposición de la zona de parada.", - "stopReasonAlert": "Aviso de motivo de parada", - "stopReasonAlertDescription": "Muestra por qué se detuvo el clicker en la barra de título.", - "strictHotkeyModifiers": "Modificadores estrictos del atajo", - "strictHotkeyModifiersDescription": "Activado: el atajo solo se ejecuta cuando los modificadores coinciden exactamente. Desactivado: se ignoran los modificadores extra pulsados.", - "language": "Idioma", - "languageDescription": "Elige el idioma de la aplicación.", - "minimizeToTray": "Minimizar a la bandeja", - "minimizeToTrayDescription": "Si está activado, al cerrar la ventana se oculta en la bandeja del sistema en lugar de salir.", - "runOnStartup": "Ejecutar al iniciar", - "runOnStartupDescription": "Inicia BlurAutoClicker con Windows, minimizado en la bandeja.", - "theme": "Tema", - "themeDescription": "Cambia entre tema oscuro y claro.", - "accentColor": "Color de acento", - "accentColorDescription": "Personaliza el color principal usado en los estados activos.", - "presets": "Ajustes predefinidos", - "presetsDescription": "Guarda y reutiliza configuraciones con nombre.", - "presetNamePlaceholder": "Nombre del ajuste", - "saveNewPreset": "Guardar nuevo", - "presetLimitReached": "Se alcanzó el límite de ajustes. Elimina uno antes de guardar otro.", - "presetActionsDisabled": "Las acciones de ajustes están desactivadas mientras el clicker está en ejecución.", - "noPresets": "Aún no hay ajustes guardados. Guarda uno desde tu configuración actual.", - "presetActive": "Activo", - "presetSave": "Guardar", - "presetCancel": "Cancelar", - "presetConfirmDelete": "¿Confirmar?", - "presetApply": "Aplicar", - "presetUpdate": "Actualizar", - "presetRename": "Renombrar", - "presetDelete": "Eliminar", - "resetAll": "Restablecer todos los ajustes", - "resetAllDescription": "Restablece todos los campos y ajustes a sus valores predeterminados." - }, - "simple": { - "changeClickInterval": "Cambiar intervalo de clic", - "switchMode": "Cambiar entre modo alternar y mantener para la tecla rápida", - "selectMouseButton": "Seleccionar qué botón del mouse se pulsará", - "hold": "Mantener", - "holdDescription": "Cuánto tiempo se mantiene pulsado el botón del mouse en cada clic", - "randomization": "Aleatorización", - "randomizationDescription": "Cambia aleatoriamente la velocidad de clic dentro del rango porcentual del CPS configurado" - }, "advanced": { "cadence": "Cadence", "cadenceDescription": "Controls how quickly clicks are generated: either as clicks per interval (Rate) or as a fixed delay between clicks (Delay).", - "clicksPer": "Clics por", - "hotkey": "Tecla rápida", - "hotkeyDescription": "Choose the key combo that starts and stops the clicker. Use Toggle for press-on/press-off, or Hold to click only while held.", - "mouseButton": "Botón del mouse", - "mouseButtonDescription": "Select which mouse button the clicker will press on each click event.", - "dutyCycle": "Ciclo de pulsación", - "dutyCycleDescription": "Aleatoriza cuánto tiempo se mantiene pulsado el botón del mouse entre los porcentajes mínimo y máximo de cada intervalo de clic.", - "speedVariation": "Variación de velocidad", - "speedVariationDescription": "Aleatoriza el tiempo entre clics alrededor de la velocidad configurada hasta este porcentaje.", - "doubleClick": "Doble clic", - "doubleClickDescription": "Pulsa el botón dos veces por intervalo con un retraso configurable entre clics.", - "limits": "Límites", "clickLimit": "Límite de clics", "clickLimitDescription": "Stops automatically after the selected number of clicks.", - "timeLimit": "Límite de tiempo", - "timeLimitDescription": "Stops automatically after the selected duration.", + "clickLimitUnavailable": "Enable Click Limit to stop automatically after a set number of clicks.", + "clicksPer": "Clics por", + "clicksUnit": "clics", "cornerStop": "Parada en esquina", "cornerStopDescription": "Detiene el clicker cuando el cursor entra en una esquina de la pantalla. Mantenlo como seguridad.", + "cornerStopUnavailable": "Enable Corner Stop to edit the corner failsafe hitboxes.", + "customStopZone": "Zona de parada personalizada", + "customStopZoneDescription": "Detiene el clicker cuando el cursor entra en esta zona rectangular usando coordenadas absolutas que pueden abarcar varios monitores.", + "customStopZoneSetBottomRight": "Definir esquina inf. der.", + "customStopZoneSetTopLeft": "Definir esquina sup. izq.", + "delay": "retraso", + "doubleClick": "Doble clic", + "doubleClickContentUnavailable": "Enable Double Click to adjust the delay between the first and second click.", + "doubleClickDescription": "Pulsa el botón dos veces por intervalo con un retraso configurable entre clics.", + "doubleClickUnavailable": "Double Click is unavailable at {cps} clicks/sec. Lower the effective click rate below 50 clicks/sec to turn it on.", + "dutyCycle": "Ciclo de pulsación", + "dutyCycleDescription": "Aleatoriza cuánto tiempo se mantiene pulsado el botón del mouse entre los porcentajes mínimo y máximo de cada intervalo de clic.", + "dutyCycleUnavailable": "Enable Duty Cycle to edit how long each click is held.", "edgeStop": "Parada en borde", "edgeStopDescription": "Detiene el clicker cuando el cursor llega a un borde de la pantalla. Mantenlo como seguridad.", - "position": "Posición", - "positionDescription": "Mueve el cursor al punto guardado antes de cada clic mientras esté activado.", - "delay": "retraso", - "clicksUnit": "clics", + "edgeStopUnavailable": "Enable Edge Stop to edit the edge failsafe hitboxes.", + "hotkey": "Tecla rápida", + "hotkeyDescription": "Choose the key combo that starts and stops the clicker. Use Toggle for press-on/press-off, or Hold to click only while held.", + "limits": "Límites", + "mouseButton": "Botón del mouse", + "mouseButtonDescription": "Select which mouse button the clicker will press on each click event.", "pick": "Elegir", + "pickCountdownSingularUnavailable": "Position capture starts in 1 second. Move your cursor to the target spot and wait for it to be saved.", + "pickCountdownUnavailable": "Position capture starts in {seconds} seconds. Move your cursor to the target spot and wait for it to be saved.", + "pickInProgressUnavailable": "Position capture is already in progress. Wait for the current pick to finish.", "picking": "Eligiendo...", "pickingIn": "Eligiendo en {seconds}", + "position": "Posición", + "positionDescription": "Mueve el cursor al punto guardado antes de cada clic mientras esté activado.", + "positionUnavailable": "Enable Position to edit or pick a fixed cursor target before each click.", + "sequenceAddCurrentCursor": "Agregar cursor actual", "sequenceClicking": "Secuencia de clics", "sequenceClickingDescription": "Recorre las posiciones guardadas del cursor en orden circular, aplicando la configuración global de tiempo y clic en cada punto.", - "sequenceEmpty": "Aún no hay puntos de secuencia guardados.", - "sequenceMoveUp": "Subir", - "sequenceMoveDown": "Bajar", "sequenceDelete": "Eliminar", - "sequenceAddCurrentCursor": "Agregar cursor actual", + "sequenceEmpty": "Aún no hay puntos de secuencia guardados.", "sequenceEndOfList": "Eso es todo :)", - "customStopZone": "Zona de parada personalizada", - "customStopZoneDescription": "Detiene el clicker cuando el cursor entra en esta zona rectangular usando coordenadas absolutas que pueden abarcar varios monitores.", - "customStopZoneSetTopLeft": "Definir esquina sup. izq.", - "customStopZoneSetBottomRight": "Definir esquina inf. der.", + "sequenceMoveDown": "Bajar", + "sequenceMoveUp": "Subir", + "speedVariation": "Variación de velocidad", + "speedVariationDescription": "Aleatoriza el tiempo entre clics alrededor de la velocidad configurada hasta este porcentaje.", "speedVariationUnavailable": "Enable Speed Variation to edit how much the app randomizes your click timing.", - "doubleClickUnavailable": "Double Click is unavailable at {cps} clicks/sec. Lower the effective click rate below 50 clicks/sec to turn it on.", - "doubleClickContentUnavailable": "Enable Double Click to adjust the delay between the first and second click.", - "clickLimitUnavailable": "Enable Click Limit to stop automatically after a set number of clicks.", - "timeLimitUnavailable": "Enable Time Limit to stop automatically after a set amount of time.", - "cornerStopUnavailable": "Enable Corner Stop to edit the corner failsafe hitboxes.", - "edgeStopUnavailable": "Enable Edge Stop to edit the edge failsafe hitboxes.", - "positionUnavailable": "Enable Position to edit or pick a fixed cursor target before each click.", - "dutyCycleUnavailable": "Enable Duty Cycle to edit how long each click is held.", - "pickInProgressUnavailable": "Position capture is already in progress. Wait for the current pick to finish.", - "pickCountdownUnavailable": "Position capture starts in {seconds} seconds. Move your cursor to the target spot and wait for it to be saved.", - "pickCountdownSingularUnavailable": "Position capture starts in 1 second. Move your cursor to the target spot and wait for it to be saved." + "timeLimit": "Límite de tiempo", + "timeLimitDescription": "Stops automatically after the selected duration.", + "timeLimitUnavailable": "Enable Time Limit to stop automatically after a set amount of time." }, - "options": { - "interval": { - "s": "Segundo", - "m": "Minuto", - "h": "Hora", - "d": "Día" - }, - "intervalShort": { - "s": "s", - "m": "min", - "h": "h", - "d": "d" - }, - "mode": { - "Toggle": "Alternar", - "Hold": "Mantener" - }, - "mouseButton": { - "Left": "Izquierdo", - "Middle": "Central", - "Right": "Derecho" - }, - "mouseClick": { - "Left": "Clic izquierdo", - "Middle": "Clic central", - "Right": "Clic derecho" - }, - "timeUnitShort": { - "s": "s", - "m": "min", - "h": "h" - } + "common": { + "dark": "Oscuro", + "disabled": "Desactivado", + "enabled": "Activado", + "light": "Claro", + "notAvailable": "N/D", + "off": "Desactivado", + "on": "Activado", + "reset": "Restablecer", + "resetting": "Restableciendo..." }, "hotkey": { - "pressKeys": "Pulsa teclas...", "empty": "Haz clic y pulsa teclas", "key": { - "up": "Arriba", - "down": "Abajo", - "left": "Izquierda", - "right": "Derecha", - "pageup": "Re Pág", - "pagedown": "Av Pág", "backspace": "Retroceso", + "capslock": "Bloq Mayús", "delete": "Supr", - "insert": "Insertar", - "home": "Inicio", + "down": "Abajo", "end": "Fin", "enter": "Intro", - "tab": "Tab", - "space": "Espacio", - "escape": "Esc", "esc": "Esc", - "capslock": "Bloq Mayús", - "numlock": "Bloq Num", - "scrolllock": "Bloq Despl", - "printscreen": "Impr Pant", - "pause": "Pausa", + "escape": "Esc", + "home": "Inicio", + "insert": "Insertar", + "left": "Izquierda", "menu": "Menú", - "mouseleft": "Mouse izquierdo", - "mouseright": "Mouse derecho", - "mousemiddle": "Botón de rueda", "mouse4": "Mouse atrás", "mouse5": "Mouse adelante", - "scrollup": "Rueda arriba", - "scrolldown": "Rueda abajo", + "mouseleft": "Mouse izquierdo", + "mousemiddle": "Botón de rueda", + "mouseright": "Mouse derecho", + "numlock": "Bloq Num", "numpad0": "Num 0", "numpad1": "Num 1", "numpad2": "Num 2", @@ -215,50 +97,169 @@ "numpad8": "Num 8", "numpad9": "Num 9", "numpadadd": "Num +", - "numpadsubtract": "Num -", - "numpadmultiply": "Num *", - "numpaddivide": "Num /", "numpaddecimal": "Num .", - "numpadenter": "Intro numérico" + "numpaddivide": "Num /", + "numpadenter": "Intro numérico", + "numpadmultiply": "Num *", + "numpadsubtract": "Num -", + "pagedown": "Av Pág", + "pageup": "Re Pág", + "pause": "Pausa", + "printscreen": "Impr Pant", + "right": "Derecha", + "scrolldown": "Rueda abajo", + "scrolllock": "Bloq Despl", + "scrollup": "Rueda arriba", + "space": "Espacio", + "tab": "Tab", + "up": "Arriba" }, "modifier": { - "ctrl": "Ctrl", "alt": "Alt", + "ctrl": "Ctrl", "shift": "Shift", "super": "Super" + }, + "pressKeys": "Pulsa teclas..." + }, + "language": { + "ar": "العربية", + "en": "English", + "es": "Español", + "fr": "Français", + "pt": "Portugués (Brasil)" + }, + "options": { + "interval": { + "d": "Día", + "h": "Hora", + "m": "Minuto", + "s": "Segundo" + }, + "intervalShort": { + "d": "d", + "h": "h", + "m": "min", + "s": "s" + }, + "mode": { + "Hold": "Mantener", + "Toggle": "Alternar" + }, + "mouseButton": { + "Left": "Izquierdo", + "Middle": "Central", + "Right": "Derecho" + }, + "mouseClick": { + "Left": "Clic izquierdo", + "Middle": "Clic central", + "Right": "Clic derecho" + }, + "timeUnitShort": { + "h": "h", + "m": "min", + "s": "s" } }, + "settings": { + "accentColor": "Color de acento", + "accentColorDescription": "Personaliza el color principal usado en los estados activos.", + "alwaysOnTop": "Siempre encima", + "alwaysOnTopDescription": "Mantiene la app fijada por encima de otras ventanas.", + "averageCpu": "Uso medio de CPU", + "clearStats": "Borrar estadísticas", + "clearStatsDescription": "Eliminar permanentemente todos los datos de uso almacenados localmente.", + "language": "Idioma", + "languageDescription": "Elige el idioma de la aplicación.", + "minimizeToTray": "Minimizar a la bandeja", + "minimizeToTrayDescription": "Si está activado, al cerrar la ventana se oculta en la bandeja del sistema en lugar de salir.", + "noPresets": "Aún no hay ajustes guardados. Guarda uno desde tu configuración actual.", + "noRuns": "Aún no hay ejecuciones registradas", + "presetActionsDisabled": "Las acciones de ajustes están desactivadas mientras el clicker está en ejecución.", + "presetActive": "Activo", + "presetApply": "Aplicar", + "presetCancel": "Cancelar", + "presetConfirmDelete": "¿Confirmar?", + "presetDelete": "Eliminar", + "presetLimitReached": "Se alcanzó el límite de ajustes. Elimina uno antes de guardar otro.", + "presetNamePlaceholder": "Nombre del ajuste", + "presetRename": "Renombrar", + "presetSave": "Guardar", + "presetUpdate": "Actualizar", + "presets": "Ajustes predefinidos", + "presetsDescription": "Guarda y reutiliza configuraciones con nombre.", + "resetAll": "Restablecer todos los ajustes", + "resetAllDescription": "Restablece todos los campos y ajustes a sus valores predeterminados.", + "runOnStartup": "Ejecutar al iniciar", + "runOnStartupDescription": "Inicia BlurAutoClicker con Windows, minimizado en la bandeja.", + "saveNewPreset": "Guardar nuevo", + "sessions": "Sesiones", + "stopHitboxOverlay": "Superposición de zona de parada", + "stopHitboxOverlayDescription": "Activa o desactiva la superposición de la zona de parada.", + "stopReasonAlert": "Aviso de motivo de parada", + "stopReasonAlertDescription": "Muestra por qué se detuvo el clicker en la barra de título.", + "strictHotkeyModifiers": "Modificadores estrictos del atajo", + "strictHotkeyModifiersDescription": "Activado: el atajo solo se ejecuta cuando los modificadores coinciden exactamente. Desactivado: se ignoran los modificadores extra pulsados.", + "supportMe": "Apóyame", + "theme": "Tema", + "themeDescription": "Cambia entre tema oscuro y claro.", + "totalClicks": "Clics totales", + "totalTimeClicking": "Tiempo total haciendo clic", + "usageData": "Tus datos de uso", + "usageDataDescription": "Tus estadísticas personales, guardadas localmente.", + "version": "Versión" + }, + "simple": { + "changeClickInterval": "Cambiar intervalo de clic", + "hold": "Mantener", + "holdDescription": "Cuánto tiempo se mantiene pulsado el botón del mouse en cada clic", + "randomization": "Aleatorización", + "randomizationDescription": "Cambia aleatoriamente la velocidad de clic dentro del rango porcentual del CPS configurado", + "selectMouseButton": "Seleccionar qué botón del mouse se pulsará", + "switchMode": "Cambiar entre modo alternar y mantener para la tecla rápida" + }, + "stopReason": { + "bottomEdgeFailsafe": "Seguridad de borde inferior", + "bottomLeftCornerFailsafe": "Seguridad de esquina inferior izquierda", + "bottomRightCornerFailsafe": "Seguridad de esquina inferior derecha", + "clickLimitReached": "Límite de clics alcanzado ({count})", + "leftEdgeFailsafe": "Seguridad de borde izquierdo", + "rightEdgeFailsafe": "Seguridad de borde derecho", + "stopped": "Detenido", + "stoppedFromHoldHotkey": "Detenido desde mantener tecla rápida", + "stoppedFromHotkey": "Detenido desde la tecla rápida", + "stoppedFromToggle": "Detenido desde alternar", + "stoppedFromUi": "Detenido desde la interfaz", + "timeLimitReached": "Límite de tiempo alcanzado ({time})", + "topEdgeFailsafe": "Seguridad de borde superior", + "topLeftCornerFailsafe": "Seguridad de esquina superior izquierda", + "topRightCornerFailsafe": "Seguridad de esquina superior derecha" + }, + "titleBar": { + "advanced": "Avanzado", + "close": "Cerrar", + "disableAlwaysOnTop": "Desactivar siempre encima", + "enableAlwaysOnTop": "Activar siempre encima", + "minimize": "Minimizar", + "settings": "Ajustes", + "simple": "Simple", + "zones": "Zonas" + }, "update": { - "to": "a", - "preparing": "Preparando actualización...", - "notAvailable": "La actualización ya no está disponible.", + "downloadAndInstall": "Descargar e instalar", "downloading": "Descargando actualización...", + "installAlreadyDownloading": "The update is already downloading. Wait for the current install to finish.", + "installAlreadyInstalling": "The update is already installing. Wait for it to finish before trying again.", + "installAlreadyPreparing": "The update is already being prepared. Wait for it to finish before trying again.", + "installFailed": "No se pudo instalar la actualización.", + "installedRestart": "Actualización instalada. Reinicia para aplicarla.", "installing": "Instalando actualización...", "installingButton": "Instalando...", - "installedRestart": "Actualización instalada. Reinicia para aplicarla.", - "installFailed": "No se pudo instalar la actualización.", + "notAvailable": "La actualización ya no está disponible.", + "preparing": "Preparando actualización...", "restartFailed": "No se pudo reiniciar. Vuelve a abrir la app manualmente.", "restartToApply": "Reiniciar para aplicar", - "downloadAndInstall": "Descargar e instalar", - "installAlreadyInstalling": "The update is already installing. Wait for it to finish before trying again.", - "installAlreadyDownloading": "The update is already downloading. Wait for the current install to finish.", - "installAlreadyPreparing": "The update is already being prepared. Wait for it to finish before trying again." - }, - "stopReason": { - "stoppedFromUi": "Detenido desde la interfaz", - "stoppedFromToggle": "Detenido desde alternar", - "stoppedFromHotkey": "Detenido desde la tecla rápida", - "stoppedFromHoldHotkey": "Detenido desde mantener tecla rápida", - "stopped": "Detenido", - "topLeftCornerFailsafe": "Seguridad de esquina superior izquierda", - "topRightCornerFailsafe": "Seguridad de esquina superior derecha", - "bottomLeftCornerFailsafe": "Seguridad de esquina inferior izquierda", - "bottomRightCornerFailsafe": "Seguridad de esquina inferior derecha", - "topEdgeFailsafe": "Seguridad de borde superior", - "rightEdgeFailsafe": "Seguridad de borde derecho", - "bottomEdgeFailsafe": "Seguridad de borde inferior", - "leftEdgeFailsafe": "Seguridad de borde izquierdo", - "clickLimitReached": "Límite de clics alcanzado ({count})", - "timeLimitReached": "Límite de tiempo alcanzado ({time})" + "to": "a" } } diff --git a/src/locales/fr.json b/src/locales/fr.json index c9b5732..5dd59a0 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -1,209 +1,91 @@ { - "language": { - "en": "English", - "es": "Español", - "fr": "Français", - "ar": "العربية" - }, - "common": { - "on": "Activé", - "off": "Désactivé", - "enabled": "Activé", - "disabled": "Désactivé", - "reset": "Réinitialiser", - "resetting": "Réinitialisation...", - "notAvailable": "N/A", - "dark": "Sombre", - "light": "Clair" - }, - "titleBar": { - "simple": "Simple", - "advanced": "Avancé", - "zones": "Zones", - "settings": "Réglages", - "enableAlwaysOnTop": "Activer toujours au premier plan", - "disableAlwaysOnTop": "Désactiver toujours au premier plan", - "minimize": "Réduire", - "close": "Fermer" - }, - "settings": { - "supportMe": "Me soutenir", - "version": "Version", - "usageData": "Vos données d'utilisation", - "usageDataDescription": "Vos statistiques personnelles, enregistrées localement.", - "totalClicks": "Clics totaux", - "totalTimeClicking": "Temps total de clic", - "averageCpu": "Utilisation CPU moy.", - "sessions": "Sessions", - "noRuns": "Aucune exécution enregistrée", - "clearStats": "Effacer les stats", - "clearStatsDescription": "Supprimer définitivement toutes les données d'utilisation stockées localement.", - "alwaysOnTop": "Toujours au premier plan", - "alwaysOnTopDescription": "Garde l'application au-dessus des autres fenêtres.", - "stopHitboxOverlay": "Superposition de zone d'arrêt", - "stopHitboxOverlayDescription": "Active ou désactive l'affichage de la zone d'arrêt.", - "stopReasonAlert": "Alerte de raison d'arrêt", - "stopReasonAlertDescription": "Affiche dans la barre de titre pourquoi le clicker s'est arrêté.", - "strictHotkeyModifiers": "Modificateurs stricts du raccourci", - "strictHotkeyModifiersDescription": "Activé : le raccourci ne se déclenche que si les modificateurs correspondent exactement. Désactivé : les modificateurs supplémentaires sont ignorés.", - "language": "Langue", - "languageDescription": "Choisissez la langue de l'application.", - "minimizeToTray": "Réduire dans la zone de notification", - "minimizeToTrayDescription": "Lorsque l'option est activée, fermer la fenêtre la cache dans la zone de notification au lieu de quitter.", - "runOnStartup": "Lancer au démarrage", - "runOnStartupDescription": "Lance BlurAutoClicker avec Windows, réduit dans la zone de notification.", - "theme": "Thème", - "themeDescription": "Basculer entre les thèmes sombre et clair.", - "accentColor": "Couleur d'accent", - "accentColorDescription": "Personnalise la couleur principale utilisée pour les états actifs.", - "presets": "Préréglages", - "presetsDescription": "Enregistrez et réutilisez des configurations nommées.", - "presetNamePlaceholder": "Nom du préréglage", - "saveNewPreset": "Enregistrer", - "presetLimitReached": "Limite de préréglages atteinte. Supprimez-en un avant d'en enregistrer un autre.", - "presetActionsDisabled": "Les actions sur les préréglages sont désactivées pendant l'exécution du clicker.", - "noPresets": "Aucun préréglage enregistré. Enregistrez-en un depuis votre configuration actuelle.", - "presetActive": "Actif", - "presetSave": "Enregistrer", - "presetCancel": "Annuler", - "presetConfirmDelete": "Confirmer ?", - "presetApply": "Appliquer", - "presetUpdate": "Mettre à jour", - "presetRename": "Renommer", - "presetDelete": "Supprimer", - "resetAll": "Réinitialiser tous les réglages", - "resetAllDescription": "Réinitialise tous les champs et réglages aux valeurs par défaut." - }, - "simple": { - "changeClickInterval": "Changer l'intervalle de clic", - "switchMode": "Basculer entre les modes Alterner et Maintenir du raccourci", - "selectMouseButton": "Choisir le bouton de souris à cliquer", - "hold": "Maintenir", - "holdDescription": "Durée pendant laquelle le bouton de souris reste enfoncé à chaque clic", - "randomization": "Aléatoire", - "randomizationDescription": "Change aléatoirement la vitesse de clic dans une plage en % du CPS défini" - }, "advanced": { "cadence": "Cadence", "cadenceDescription": "Controls how quickly clicks are generated: either as clicks per interval (Rate) or as a fixed delay between clicks (Delay).", - "clicksPer": "Clics par", - "hotkey": "Raccourci", - "hotkeyDescription": "Choose the key combo that starts and stops the clicker. Use Toggle for press-on/press-off, or Hold to click only while held.", - "mouseButton": "Bouton de souris", - "mouseButtonDescription": "Select which mouse button the clicker will press on each click event.", - "dutyCycle": "Cycle d'appui", - "dutyCycleDescription": "Rend aléatoire la durée d'appui du bouton de souris entre les pourcentages minimum et maximum de chaque intervalle de clic.", - "speedVariation": "Variation de vitesse", - "speedVariationDescription": "Rend aléatoire le délai entre les clics autour de la vitesse configurée jusqu'à ce pourcentage.", - "doubleClick": "Double clic", - "doubleClickDescription": "Clique deux fois par intervalle avec un délai configurable entre les clics.", - "limits": "Limites", "clickLimit": "Limite de clics", "clickLimitDescription": "Stops automatically after the selected number of clicks.", - "timeLimit": "Limite de temps", - "timeLimitDescription": "Stops automatically after the selected duration.", + "clickLimitUnavailable": "Enable Click Limit to stop automatically after a set number of clicks.", + "clicksPer": "Clics par", + "clicksUnit": "clics", "cornerStop": "Arrêt en coin", "cornerStopDescription": "Arrête le clicker lorsque le curseur entre dans un coin de l'écran. Gardez-le comme sécurité.", + "cornerStopUnavailable": "Enable Corner Stop to edit the corner failsafe hitboxes.", + "customStopZone": "Zone d'arrêt personnalisée", + "customStopZoneDescription": "Arrête le clicker lorsque le curseur entre dans cette zone rectangulaire, avec des coordonnées absolues pouvant couvrir plusieurs écrans.", + "customStopZoneSetBottomRight": "Définir bas-droite", + "customStopZoneSetTopLeft": "Définir haut-gauche", + "delay": "délai", + "doubleClick": "Double clic", + "doubleClickContentUnavailable": "Enable Double Click to adjust the delay between the first and second click.", + "doubleClickDescription": "Clique deux fois par intervalle avec un délai configurable entre les clics.", + "doubleClickUnavailable": "Double Click is unavailable at {cps} clicks/sec. Lower the effective click rate below 50 clicks/sec to turn it on.", + "dutyCycle": "Cycle d'appui", + "dutyCycleDescription": "Rend aléatoire la durée d'appui du bouton de souris entre les pourcentages minimum et maximum de chaque intervalle de clic.", + "dutyCycleUnavailable": "Enable Duty Cycle to edit how long each click is held.", "edgeStop": "Arrêt sur bord", "edgeStopDescription": "Arrête le clicker lorsque le curseur atteint un bord de l'écran. Gardez-le comme sécurité.", - "position": "Position", - "positionDescription": "Déplace le curseur vers le point enregistré avant chaque clic lorsque l'option est activée.", - "delay": "délai", - "clicksUnit": "clics", + "edgeStopUnavailable": "Enable Edge Stop to edit the edge failsafe hitboxes.", + "hotkey": "Raccourci", + "hotkeyDescription": "Choose the key combo that starts and stops the clicker. Use Toggle for press-on/press-off, or Hold to click only while held.", + "limits": "Limites", + "mouseButton": "Bouton de souris", + "mouseButtonDescription": "Select which mouse button the clicker will press on each click event.", "pick": "Choisir", + "pickCountdownSingularUnavailable": "Position capture starts in 1 second. Move your cursor to the target spot and wait for it to be saved.", + "pickCountdownUnavailable": "Position capture starts in {seconds} seconds. Move your cursor to the target spot and wait for it to be saved.", + "pickInProgressUnavailable": "Position capture is already in progress. Wait for the current pick to finish.", "picking": "Choix...", "pickingIn": "Choix dans {seconds}", + "position": "Position", + "positionDescription": "Déplace le curseur vers le point enregistré avant chaque clic lorsque l'option est activée.", + "positionUnavailable": "Enable Position to edit or pick a fixed cursor target before each click.", + "sequenceAddCurrentCursor": "Ajouter la position actuelle", "sequenceClicking": "Séquence de clics", "sequenceClickingDescription": "Parcourt les positions enregistrées du curseur en boucle, en appliquant les réglages globaux de cadence et de clic à chaque point.", - "sequenceEmpty": "Aucun point de séquence enregistré pour le moment.", - "sequenceMoveUp": "Monter", - "sequenceMoveDown": "Descendre", "sequenceDelete": "Supprimer", - "sequenceAddCurrentCursor": "Ajouter la position actuelle", + "sequenceEmpty": "Aucun point de séquence enregistré pour le moment.", "sequenceEndOfList": "C'est tout :)", - "customStopZone": "Zone d'arrêt personnalisée", - "customStopZoneDescription": "Arrête le clicker lorsque le curseur entre dans cette zone rectangulaire, avec des coordonnées absolues pouvant couvrir plusieurs écrans.", - "customStopZoneSetTopLeft": "Définir haut-gauche", - "customStopZoneSetBottomRight": "Définir bas-droite", + "sequenceMoveDown": "Descendre", + "sequenceMoveUp": "Monter", + "speedVariation": "Variation de vitesse", + "speedVariationDescription": "Rend aléatoire le délai entre les clics autour de la vitesse configurée jusqu'à ce pourcentage.", "speedVariationUnavailable": "Enable Speed Variation to edit how much the app randomizes your click timing.", - "doubleClickUnavailable": "Double Click is unavailable at {cps} clicks/sec. Lower the effective click rate below 50 clicks/sec to turn it on.", - "doubleClickContentUnavailable": "Enable Double Click to adjust the delay between the first and second click.", - "clickLimitUnavailable": "Enable Click Limit to stop automatically after a set number of clicks.", - "timeLimitUnavailable": "Enable Time Limit to stop automatically after a set amount of time.", - "cornerStopUnavailable": "Enable Corner Stop to edit the corner failsafe hitboxes.", - "edgeStopUnavailable": "Enable Edge Stop to edit the edge failsafe hitboxes.", - "positionUnavailable": "Enable Position to edit or pick a fixed cursor target before each click.", - "dutyCycleUnavailable": "Enable Duty Cycle to edit how long each click is held.", - "pickInProgressUnavailable": "Position capture is already in progress. Wait for the current pick to finish.", - "pickCountdownUnavailable": "Position capture starts in {seconds} seconds. Move your cursor to the target spot and wait for it to be saved.", - "pickCountdownSingularUnavailable": "Position capture starts in 1 second. Move your cursor to the target spot and wait for it to be saved." + "timeLimit": "Limite de temps", + "timeLimitDescription": "Stops automatically after the selected duration.", + "timeLimitUnavailable": "Enable Time Limit to stop automatically after a set amount of time." }, - "options": { - "interval": { - "s": "Seconde", - "m": "Minute", - "h": "Heure", - "d": "Jour" - }, - "intervalShort": { - "s": "s", - "m": "min", - "h": "h", - "d": "j" - }, - "mode": { - "Toggle": "Alterner", - "Hold": "Maintenir" - }, - "mouseButton": { - "Left": "Gauche", - "Middle": "Milieu", - "Right": "Droit" - }, - "mouseClick": { - "Left": "Clic gauche", - "Middle": "Clic milieu", - "Right": "Clic droit" - }, - "timeUnitShort": { - "s": "s", - "m": "min", - "h": "h" - } + "common": { + "dark": "Sombre", + "disabled": "Désactivé", + "enabled": "Activé", + "light": "Clair", + "notAvailable": "N/A", + "off": "Désactivé", + "on": "Activé", + "reset": "Réinitialiser", + "resetting": "Réinitialisation..." }, "hotkey": { - "pressKeys": "Appuyez sur des touches...", "empty": "Cliquez et appuyez sur des touches", "key": { - "up": "Haut", - "down": "Bas", - "left": "Gauche", - "right": "Droite", - "pageup": "Page préc.", - "pagedown": "Page suiv.", "backspace": "Retour arrière", + "capslock": "Verr Maj", "delete": "Suppr", - "insert": "Inser", - "home": "Début", + "down": "Bas", "end": "Fin", "enter": "Entrée", - "tab": "Tab", - "space": "Espace", - "escape": "Échap", "esc": "Échap", - "capslock": "Verr Maj", - "numlock": "Verr Num", - "scrolllock": "Arrêt défil", - "printscreen": "Impr écran", - "pause": "Pause", + "escape": "Échap", + "home": "Début", + "insert": "Inser", + "left": "Gauche", "menu": "Menu", - "mouseleft": "Souris gauche", - "mouseright": "Souris droite", - "mousemiddle": "Bouton molette", "mouse4": "Souris retour", "mouse5": "Souris avance", - "scrollup": "Molette haut", - "scrolldown": "Molette bas", + "mouseleft": "Souris gauche", + "mousemiddle": "Bouton molette", + "mouseright": "Souris droite", + "numlock": "Verr Num", "numpad0": "Num 0", "numpad1": "Num 1", "numpad2": "Num 2", @@ -215,50 +97,169 @@ "numpad8": "Num 8", "numpad9": "Num 9", "numpadadd": "Num +", - "numpadsubtract": "Num -", - "numpadmultiply": "Num *", - "numpaddivide": "Num /", "numpaddecimal": "Num .", - "numpadenter": "Entrée num." + "numpaddivide": "Num /", + "numpadenter": "Entrée num.", + "numpadmultiply": "Num *", + "numpadsubtract": "Num -", + "pagedown": "Page suiv.", + "pageup": "Page préc.", + "pause": "Pause", + "printscreen": "Impr écran", + "right": "Droite", + "scrolldown": "Molette bas", + "scrolllock": "Arrêt défil", + "scrollup": "Molette haut", + "space": "Espace", + "tab": "Tab", + "up": "Haut" }, "modifier": { - "ctrl": "Ctrl", "alt": "Alt", + "ctrl": "Ctrl", "shift": "Shift", "super": "Super" + }, + "pressKeys": "Appuyez sur des touches..." + }, + "language": { + "ar": "العربية", + "en": "English", + "es": "Español", + "fr": "Français", + "pt": "Portugais (Brésil)" + }, + "options": { + "interval": { + "d": "Jour", + "h": "Heure", + "m": "Minute", + "s": "Seconde" + }, + "intervalShort": { + "d": "j", + "h": "h", + "m": "min", + "s": "s" + }, + "mode": { + "Hold": "Maintenir", + "Toggle": "Alterner" + }, + "mouseButton": { + "Left": "Gauche", + "Middle": "Milieu", + "Right": "Droit" + }, + "mouseClick": { + "Left": "Clic gauche", + "Middle": "Clic milieu", + "Right": "Clic droit" + }, + "timeUnitShort": { + "h": "h", + "m": "min", + "s": "s" } }, + "settings": { + "accentColor": "Couleur d'accent", + "accentColorDescription": "Personnalise la couleur principale utilisée pour les états actifs.", + "alwaysOnTop": "Toujours au premier plan", + "alwaysOnTopDescription": "Garde l'application au-dessus des autres fenêtres.", + "averageCpu": "Utilisation CPU moy.", + "clearStats": "Effacer les stats", + "clearStatsDescription": "Supprimer définitivement toutes les données d'utilisation stockées localement.", + "language": "Langue", + "languageDescription": "Choisissez la langue de l'application.", + "minimizeToTray": "Réduire dans la zone de notification", + "minimizeToTrayDescription": "Lorsque l'option est activée, fermer la fenêtre la cache dans la zone de notification au lieu de quitter.", + "noPresets": "Aucun préréglage enregistré. Enregistrez-en un depuis votre configuration actuelle.", + "noRuns": "Aucune exécution enregistrée", + "presetActionsDisabled": "Les actions sur les préréglages sont désactivées pendant l'exécution du clicker.", + "presetActive": "Actif", + "presetApply": "Appliquer", + "presetCancel": "Annuler", + "presetConfirmDelete": "Confirmer ?", + "presetDelete": "Supprimer", + "presetLimitReached": "Limite de préréglages atteinte. Supprimez-en un avant d'en enregistrer un autre.", + "presetNamePlaceholder": "Nom du préréglage", + "presetRename": "Renommer", + "presetSave": "Enregistrer", + "presetUpdate": "Mettre à jour", + "presets": "Préréglages", + "presetsDescription": "Enregistrez et réutilisez des configurations nommées.", + "resetAll": "Réinitialiser tous les réglages", + "resetAllDescription": "Réinitialise tous les champs et réglages aux valeurs par défaut.", + "runOnStartup": "Lancer au démarrage", + "runOnStartupDescription": "Lance BlurAutoClicker avec Windows, réduit dans la zone de notification.", + "saveNewPreset": "Enregistrer", + "sessions": "Sessions", + "stopHitboxOverlay": "Superposition de zone d'arrêt", + "stopHitboxOverlayDescription": "Active ou désactive l'affichage de la zone d'arrêt.", + "stopReasonAlert": "Alerte de raison d'arrêt", + "stopReasonAlertDescription": "Affiche dans la barre de titre pourquoi le clicker s'est arrêté.", + "strictHotkeyModifiers": "Modificateurs stricts du raccourci", + "strictHotkeyModifiersDescription": "Activé : le raccourci ne se déclenche que si les modificateurs correspondent exactement. Désactivé : les modificateurs supplémentaires sont ignorés.", + "supportMe": "Me soutenir", + "theme": "Thème", + "themeDescription": "Basculer entre les thèmes sombre et clair.", + "totalClicks": "Clics totaux", + "totalTimeClicking": "Temps total de clic", + "usageData": "Vos données d'utilisation", + "usageDataDescription": "Vos statistiques personnelles, enregistrées localement.", + "version": "Version" + }, + "simple": { + "changeClickInterval": "Changer l'intervalle de clic", + "hold": "Maintenir", + "holdDescription": "Durée pendant laquelle le bouton de souris reste enfoncé à chaque clic", + "randomization": "Aléatoire", + "randomizationDescription": "Change aléatoirement la vitesse de clic dans une plage en % du CPS défini", + "selectMouseButton": "Choisir le bouton de souris à cliquer", + "switchMode": "Basculer entre les modes Alterner et Maintenir du raccourci" + }, + "stopReason": { + "bottomEdgeFailsafe": "Sécurité bord inférieur", + "bottomLeftCornerFailsafe": "Sécurité coin inférieur gauche", + "bottomRightCornerFailsafe": "Sécurité coin inférieur droit", + "clickLimitReached": "Limite de clics atteinte ({count})", + "leftEdgeFailsafe": "Sécurité bord gauche", + "rightEdgeFailsafe": "Sécurité bord droit", + "stopped": "Arrêté", + "stoppedFromHoldHotkey": "Arrêté depuis le raccourci maintenu", + "stoppedFromHotkey": "Arrêté depuis le raccourci", + "stoppedFromToggle": "Arrêté depuis l'alternance", + "stoppedFromUi": "Arrêté depuis l'interface", + "timeLimitReached": "Limite de temps atteinte ({time})", + "topEdgeFailsafe": "Sécurité bord supérieur", + "topLeftCornerFailsafe": "Sécurité coin supérieur gauche", + "topRightCornerFailsafe": "Sécurité coin supérieur droit" + }, + "titleBar": { + "advanced": "Avancé", + "close": "Fermer", + "disableAlwaysOnTop": "Désactiver toujours au premier plan", + "enableAlwaysOnTop": "Activer toujours au premier plan", + "minimize": "Réduire", + "settings": "Réglages", + "simple": "Simple", + "zones": "Zones" + }, "update": { - "to": "vers", - "preparing": "Préparation de la mise à jour...", - "notAvailable": "La mise à jour n'est plus disponible.", + "downloadAndInstall": "Télécharger et installer", "downloading": "Téléchargement de la mise à jour...", + "installAlreadyDownloading": "The update is already downloading. Wait for the current install to finish.", + "installAlreadyInstalling": "The update is already installing. Wait for it to finish before trying again.", + "installAlreadyPreparing": "The update is already being prepared. Wait for it to finish before trying again.", + "installFailed": "Échec de l'installation de la mise à jour.", + "installedRestart": "Mise à jour installée. Redémarrez pour l'appliquer.", "installing": "Installation de la mise à jour...", "installingButton": "Installation...", - "installedRestart": "Mise à jour installée. Redémarrez pour l'appliquer.", - "installFailed": "Échec de l'installation de la mise à jour.", + "notAvailable": "La mise à jour n'est plus disponible.", + "preparing": "Préparation de la mise à jour...", "restartFailed": "Échec du redémarrage. Rouvrez l'application manuellement.", "restartToApply": "Redémarrer pour appliquer", - "downloadAndInstall": "Télécharger et installer", - "installAlreadyInstalling": "The update is already installing. Wait for it to finish before trying again.", - "installAlreadyDownloading": "The update is already downloading. Wait for the current install to finish.", - "installAlreadyPreparing": "The update is already being prepared. Wait for it to finish before trying again." - }, - "stopReason": { - "stoppedFromUi": "Arrêté depuis l'interface", - "stoppedFromToggle": "Arrêté depuis l'alternance", - "stoppedFromHotkey": "Arrêté depuis le raccourci", - "stoppedFromHoldHotkey": "Arrêté depuis le raccourci maintenu", - "stopped": "Arrêté", - "topLeftCornerFailsafe": "Sécurité coin supérieur gauche", - "topRightCornerFailsafe": "Sécurité coin supérieur droit", - "bottomLeftCornerFailsafe": "Sécurité coin inférieur gauche", - "bottomRightCornerFailsafe": "Sécurité coin inférieur droit", - "topEdgeFailsafe": "Sécurité bord supérieur", - "rightEdgeFailsafe": "Sécurité bord droit", - "bottomEdgeFailsafe": "Sécurité bord inférieur", - "leftEdgeFailsafe": "Sécurité bord gauche", - "clickLimitReached": "Limite de clics atteinte ({count})", - "timeLimitReached": "Limite de temps atteinte ({time})" + "to": "vers" } } diff --git a/src/locales/pt.json b/src/locales/pt.json new file mode 100644 index 0000000..3b305fd --- /dev/null +++ b/src/locales/pt.json @@ -0,0 +1,265 @@ +{ + "advanced": { + "cadence": "Cadência", + "cadenceDescription": "Controla como os cliques são gerados: seja como cliques por intervalo (Taxa) ou como um atraso fixo entre cliques (Atraso).", + "clickLimit": "Limite de Cliques", + "clickLimitDescription": "Para automaticamente após o número selecionado de cliques.", + "clickLimitUnavailable": "Ative o Limite de Cliques para parar automaticamente após um número definido de cliques.", + "clicksPer": "Cliques por", + "clicksUnit": "cliques", + "cornerStop": "Parada no Canto", + "cornerStopDescription": "Para o clicker quando o cursor entra em um canto da tela. Mantenha como uma segurança.", + "cornerStopUnavailable": "Ative a Parada no Canto para editar as hitboxes de segurança dos cantos.", + "customStopZone": "Zona de Parada Personalizada", + "customStopZoneDescription": "Para o clicker quando o cursor entra nesta área retangular, usando coordenadas absolutas da tela que podem abranger vários monitores.", + "customStopZoneSetBottomRight": "Definir Inferior-Direito", + "customStopZoneSetTopLeft": "Definir Superior-Esquerdo", + "delay": "Atraso", + "doubleClick": "Clique Duplo", + "doubleClickContentUnavailable": "Ative o Clique Duplo para ajustar o atraso entre o primeiro e o segundo clique.", + "doubleClickDescription": "Dispara o botão duas vezes por intervalo com um atraso configurável entre os cliques.", + "doubleClickUnavailable": "O Clique Duplo não está disponível a {cps} cliques/seg. Reduza a taxa de clique efetiva para baixo de 50 cliques/seg para ativá-lo.", + "dutyCycle": "Duração do clique", + "dutyCycleDescription": "Aleatoriza por quanto tempo o botão do mouse permanece pressionado entre as porcentagens mínima e máxima de cada intervalo de clique.", + "dutyCycleUnavailable": "Ative a Duração do clique para editar por quanto tempo cada clique é segurado.", + "edgeStop": "Parada na Borda", + "edgeStopDescription": "Para o clicker quando o cursor atinge uma borda da tela. Mantenha como uma segurança.", + "edgeStopUnavailable": "Ative a Parada na Borda para editar as hitboxes de segurança das bordas.", + "hotkey": "Atalho", + "hotkeyDescription": "Escolha a combinação de teclas que inicia e para o clicker. Use Alternar para ligar/desligar com um toque, ou Segurar para clicar apenas enquanto estiver pressionado.", + "limits": "Limites", + "mouseButton": "Botão do Mouse", + "mouseButtonDescription": "Selecione qual botão do mouse o clicker pressionará em cada evento de clique.", + "pick": "Capturar", + "pickCountdownSingularUnavailable": "A captura de posição começa em 1 segundo. Mova o cursor para o local de destino e aguarde ele ser salvo.", + "pickCountdownUnavailable": "A captura de posição começa em {seconds} segundos. Mova o cursor para o local de destino e aguarde ele ser salvo.", + "pickInProgressUnavailable": "A captura de posição já está em andamento. Aguarde o término da captura atual.", + "picking": "Capturando...", + "pickingIn": "Capturando em {seconds}", + "position": "Posição", + "positionDescription": "Move o cursor para o ponto salvo antes de cada clique enquanto ativado.", + "positionUnavailable": "Ative a Posição para editar ou capturar um alvo de cursor fixo antes de cada clique.", + "sequenceAddCurrentCursor": "Adicionar Cursor Atual", + "sequenceClicking": "Cliques em Sequência", + "sequenceClickingDescription": "Percorre os pontos de cursor salvos em ordem cíclica, aplicando as configurações globais de tempo e clique em cada ponto.", + "sequenceDelete": "Excluir", + "sequenceEmpty": "Nenhum ponto de sequência salvo ainda.", + "sequenceEndOfList": "Isso é tudo :)", + "sequenceMoveDown": "Descer", + "sequenceMoveUp": "Subir", + "speedVariation": "Variação de Velocidade", + "speedVariationDescription": "Aleatoriza o tempo do clique em torno da sua velocidade configurada em até esta porcentagem.", + "speedVariationUnavailable": "Ative a Variação de Velocidade para editar o quanto o app aleatoriza o tempo do clique.", + "timeLimit": "Limite de Tempo", + "timeLimitDescription": "Para automaticamente após a duração selecionada.", + "timeLimitUnavailable": "Ative o Limite de Tempo para parar automaticamente após um período definido." + }, + "common": { + "dark": "Escuro", + "disabled": "Desativado", + "enabled": "Ativado", + "light": "Claro", + "notAvailable": "N/D", + "off": "Desligado", + "on": "Ligado", + "reset": "Redefinir", + "resetting": "Redefinindo..." + }, + "hotkey": { + "empty": "Clique e pressione as teclas", + "key": { + "backspace": "Backspace", + "capslock": "Caps Lock", + "delete": "Delete", + "down": "Baixo", + "end": "End", + "enter": "Enter", + "esc": "Esc", + "escape": "Esc", + "home": "Home", + "insert": "Insert", + "left": "Esquerda", + "menu": "Menu", + "mouse4": "Mouse Voltar (M4)", + "mouse5": "Mouse Avançar (M5)", + "mouseleft": "Mouse Esquerdo", + "mousemiddle": "Botão de Scroll", + "mouseright": "Mouse Direito", + "numlock": "Num Lock", + "numpad0": "Num 0", + "numpad1": "Num 1", + "numpad2": "Num 2", + "numpad3": "Num 3", + "numpad4": "Num 4", + "numpad5": "Num 5", + "numpad6": "Num 6", + "numpad7": "Num 7", + "numpad8": "Num 8", + "numpad9": "Num 9", + "numpadadd": "Num +", + "numpaddecimal": "Num .", + "numpaddivide": "Num /", + "numpadenter": "Num Enter", + "numpadmultiply": "Num *", + "numpadsubtract": "Num -", + "pagedown": "Page Down", + "pageup": "Page Up", + "pause": "Pause", + "printscreen": "Print Screen", + "right": "Direita", + "scrolldown": "Scroll para Baixo", + "scrolllock": "Scroll Lock", + "scrollup": "Scroll para Cima", + "space": "Espaço", + "tab": "Tab", + "up": "Cima" + }, + "modifier": { + "alt": "Alt", + "ctrl": "Ctrl", + "shift": "Shift", + "super": "Super" + }, + "pressKeys": "Pressione as teclas..." + }, + "language": { + "ar": "Árabe", + "en": "Inglês", + "es": "Espanhol", + "fr": "Francês", + "pt": "Português (Brasil)" + }, + "options": { + "interval": { + "d": "Dia", + "h": "Hora", + "m": "Minuto", + "s": "Segundo" + }, + "intervalShort": { + "d": "d", + "h": "h", + "m": "m", + "s": "s" + }, + "mode": { + "Hold": "Segurar", + "Toggle": "Alternar" + }, + "mouseButton": { + "Left": "Esquerdo", + "Middle": "Meio", + "Right": "Direito" + }, + "mouseClick": { + "Left": "Clique Esquerdo", + "Middle": "Clique do Meio", + "Right": "Clique Direito" + }, + "timeUnitShort": { + "h": "h", + "m": "m", + "s": "s" + } + }, + "settings": { + "accentColor": "Cor de Destaque", + "accentColorDescription": "Personalize o destaque principal usado para estados ativos.", + "alwaysOnTop": "Sempre visível", + "alwaysOnTopDescription": "Mantém o aplicativo fixado acima de outras janelas.", + "averageCpu": "Uso médio da CPU", + "clearStats": "Limpar Estatísticas", + "clearStatsDescription": "Excluir permanentemente todos os dados de uso armazenados localmente.", + "language": "Idioma", + "languageDescription": "Escolha o idioma de exibição do aplicativo.", + "minimizeToTray": "Minimizar para a Bandeja", + "minimizeToTrayDescription": "Quando ativado, fechar a janela a oculta na bandeja do sistema em vez de encerrar.", + "noPresets": "Nenhuma predefinição salva ainda. Salve uma a partir das suas configurações atuais.", + "noRuns": "Nenhuma sessão registrada ainda", + "presetActionsDisabled": "Ações de predefinição estão desativadas enquanto o clicker está executando.", + "presetActive": "Ativa", + "presetApply": "Aplicar", + "presetCancel": "Cancelar", + "presetConfirmDelete": "Confirmar?", + "presetDelete": "Excluir", + "presetLimitReached": "Limite de predefinições atingido. Exclua uma antes de salvar outra.", + "presetNamePlaceholder": "Nome da predefinição", + "presetRename": "Renomear", + "presetSave": "Salvar", + "presetUpdate": "Atualizar", + "presets": "Predefinições", + "presetsDescription": "Salve e reutilize configurações de clicker nomeadas.", + "resetAll": "Redefinir Todas as Configurações", + "resetAllDescription": "Redefinirá todos os campos de entrada e configurações para os padrões.", + "runOnStartup": "Iniciar com o Windows", + "runOnStartupDescription": "Inicia automaticamente o BlurAutoClicker com o Windows, minimizado na bandeja.", + "saveNewPreset": "Salvar Nova", + "sessions": "Sessões", + "stopHitboxOverlay": "Exibir área de parada (hitbox)", + "stopHitboxOverlayDescription": "Alterna se a sobreposição da hitbox de parada é exibida.", + "stopReasonAlert": "Alerta de Motivo de Parada", + "stopReasonAlertDescription": "Mostra por que o clicker parou na barra de título.", + "strictHotkeyModifiers": "Modificadores de Atalho Estritos", + "strictHotkeyModifiersDescription": "Ligado: o atalho só dispara quando as teclas modificadoras correspondem exatamente. Desligado: modificadores extras segurados são ignorados.", + "supportMe": "Apoie-me", + "theme": "Tema", + "themeDescription": "Alterna entre os temas escuro e claro.", + "totalClicks": "Total de Cliques", + "totalTimeClicking": "Tempo total clicando", + "usageData": "Seus Dados de Uso", + "usageDataDescription": "Suas estatísticas pessoais do clicker, rastreadas localmente.", + "version": "Versão" + }, + "simple": { + "changeClickInterval": "Alterar Intervalo de Clique", + "hold": "Segurar", + "holdDescription": "Quanto tempo o botão do mouse fica pressionado durante cada clique", + "randomization": "Aleatorização", + "randomizationDescription": "Altera aleatoriamente a velocidade do clique em uma faixa percentual do CPS definido", + "selectMouseButton": "Selecione qual botão do mouse será clicado", + "switchMode": "Alternar entre modo Alternar (Toggle) e Segurar (Hold) para o atalho" + }, + "stopReason": { + "bottomEdgeFailsafe": "Segurança: Borda Inferior", + "bottomLeftCornerFailsafe": "Segurança: Canto Inferior-Esquerdo", + "bottomRightCornerFailsafe": "Segurança: Canto Inferior-Direito", + "clickLimitReached": "Limite de cliques atingido ({count})", + "leftEdgeFailsafe": "Segurança: Borda Esquerda", + "rightEdgeFailsafe": "Segurança: Borda Direita", + "stopped": "Parado", + "stoppedFromHoldHotkey": "Parado ao soltar Atalho", + "stoppedFromHotkey": "Parado via Atalho", + "stoppedFromToggle": "Parado via Alternância", + "stoppedFromUi": "Parado pela Interface", + "timeLimitReached": "Limite de tempo atingido ({time})", + "topEdgeFailsafe": "Segurança: Borda Superior", + "topLeftCornerFailsafe": "Segurança: Canto Superior-Esquerdo", + "topRightCornerFailsafe": "Segurança: Canto Superior-Direito" + }, + "titleBar": { + "advanced": "Avançado", + "close": "Fechar", + "disableAlwaysOnTop": "Desativar Sempre no Topo", + "enableAlwaysOnTop": "Fixar acima das outras janelas", + "minimize": "Minimizar", + "settings": "Configurações", + "simple": "Simples", + "zones": "Zonas" + }, + "update": { + "downloadAndInstall": "Baixar e Instalar", + "downloading": "Baixando atualização...", + "installAlreadyDownloading": "A atualização já está sendo baixada. Aguarde o término.", + "installAlreadyInstalling": "A atualização já está sendo instalada. Aguarde o término.", + "installAlreadyPreparing": "A atualização já está sendo preparada. Aguarde o término.", + "installFailed": "Falha na instalação da atualização.", + "installedRestart": "Atualização instalada. Reinicie para aplicá-la.", + "installing": "Instalando atualização...", + "installingButton": "Instalando...", + "notAvailable": "A atualização não está mais disponível.", + "preparing": "Preparando atualização...", + "restartFailed": "Falha ao reiniciar. Abra o aplicativo manualmente.", + "restartToApply": "Reiniciar para Aplicar Atualização", + "to": "para" + } +} \ No newline at end of file