From 59b19f69a884d0cdb7efbb0c1b062ebe532dca50 Mon Sep 17 00:00:00 2001 From: viliusle Date: Sun, 14 Feb 2021 18:32:02 +0200 Subject: [PATCH] Arabic language --- src/js/config-menu.js | 4 + src/js/config.js | 2 + src/js/core/gui/gui-colors.js | 4 +- src/js/core/gui/gui-preview.js | 8 +- src/js/languages/ar.json | 503 +++++++++++++++++++++++++++ src/js/languages/empty.json | 24 +- tools/translator/config.php | 3 +- tools/translator/index.php | 13 +- tools/translator/libs/translator.php | 35 +- 9 files changed, 568 insertions(+), 28 deletions(-) create mode 100644 src/js/languages/ar.json diff --git a/src/js/config-menu.js b/src/js/config-menu.js index 56b0536..17a645d 100644 --- a/src/js/config-menu.js +++ b/src/js/config-menu.js @@ -645,6 +645,10 @@ const menuDefinition = [ { divider: true }, + { + name: 'عربي', + target: 'tools/translate.translate.ar' + }, { name: '简体中文', target: 'tools/translate.translate.zh' diff --git a/src/js/config.js b/src/js/config.js index f99f5b9..9c4be43 100644 --- a/src/js/config.js +++ b/src/js/config.js @@ -33,6 +33,7 @@ config.themes = [ 'green', ]; +//no-translate BEGIN config.FONTS = [ "Arial", "Courier", @@ -71,6 +72,7 @@ config.FONTS = [ "Titillium Web", "Ubuntu" ]; +//no-translate END config.TOOLS = [ { diff --git a/src/js/core/gui/gui-colors.js b/src/js/core/gui/gui-colors.js index f79b03f..8f40566 100644 --- a/src/js/core/gui/gui-colors.js +++ b/src/js/core/gui/gui-colors.js @@ -47,7 +47,7 @@ const sidebarTemplate = `
- +
@@ -113,7 +113,7 @@ const dialogTemplate = `
- +
diff --git a/src/js/core/gui/gui-preview.js b/src/js/core/gui/gui-preview.js index 98202a8..16d484b 100644 --- a/src/js/core/gui/gui-preview.js +++ b/src/js/core/gui/gui-preview.js @@ -15,10 +15,10 @@ var template = `
- - - - + + + +
diff --git a/src/js/languages/ar.json b/src/js/languages/ar.json new file mode 100644 index 0000000..2e48598 --- /dev/null +++ b/src/js/languages/ar.json @@ -0,0 +1,503 @@ +{ + "11px Arial": "11 بكسل Arial", + "1em": "1em", + "24-Points star": "24 نقطة نجمة", + "2d": "2 د", + "3a0339": "3a0339", + "480p": "480 ص", + "A problem occurred while removing undo history. It": "حدثت مشكلة أثناء إزالة محفوظات التراجع. هو - هي", + "About": "حول", + "Active": "نشيط", + "Add Borders": "أضف الحدود", + "Aden": "عدن", + "Advanced": "متقدم", + "All": "الجميع", + "Alpha": "ألفا", + "Alpha:": "ألفا:", + "Anonymous": "مجهول", + "Anti aliasing": "مكافحة التعرج", + "Arial": "اريال", + "Arrow": "سهم", + "ArrowDown": "السهم للاسفل", + "ArrowLeft": "السهم لليسار", + "ArrowRight": "السهم الأيمن", + "ArrowUp": "ارووب", + "Author:": "مؤلف:", + "Auto Adjust Colors": "ضبط تلقائي للألوان", + "Auto Kerning": "تقنين تلقائي لتقنين الأحرف", + "Average:": "متوسط:", + "Backspace": "مسافة للخلف", + "Base": "يتمركز", + "Basic": "أساسي", + "Black and White": "اسود و ابيض", + "Blue": "أزرق", + "Blue channel:": "القناة الزرقاء:", + "Blueprint": "مخطط", + "Blur Radius:": "نصف قطر التمويه:", + "Blur Tool": "أداة طمس", + "Blur power:": "قوة طمس:", + "Borders": "الحدود", + "Bottom": "قاع", + "Bottom to Top": "من الأسفل للأعلى", + "Bounds:": "الحدود:", + "Box": "علبة", + "Box Blur": "مربع طمس", + "Box blur": "مربع طمس", + "Brightness": "سطوع", + "Brightness:": "سطوع:", + "Bulge\/Pinch Tool": "أداة انتفاخ \/ قرصة", + "Burn": "حرق", + "Can not animate 1 layer.": "لا يمكن تحريك طبقة واحدة.", + "Can not find previous layer.": "لا يمكن العثور على الطبقة السابقة.", + "Cancel": "يلغي", + "Canvas size": "حجم قماش", + "Center": "مركز", + "Center x:": "المركز x:", + "Center y:": "مركز ص:", + "Center:": "مركز:", + "Change Composition": "تغيير التكوين", + "Change Layer Details": "تغيير تفاصيل الطبقة", + "Change Opacity": "تغيير التعتيم", + "Channel:": "قناة:", + "Circle": "دائرة", + "Clarendon": "كلاريندون", + "Clear": "واضح", + "Clear Selection": "التحديد الواضح", + "Clone Tool": "أداة استنساخ", + "Clone count:": "عدد النسخ:", + "Clone tool disabled for resized image. Sorry.": "تم تعطيل أداة النسخ للصورة التي تم تغيير حجمها. آسف.", + "Cloned edges": "حواف مستنسخة", + "Color #": "اللون #", + "Color Corrections": "تصحيحات اللون", + "Color Palette": "لوحة الألوان", + "Color Zoom": "تكبير اللون", + "Color alpha value can not be zero.": "لا يمكن أن تكون قيمة ألفا للون صفراً.", + "Color to Alpha": "لون ألفا", + "Color zoom": "تكبير اللون", + "Color:": "اللون:", + "Colors": "الألوان", + "Colors:": "الألوان:", + "Common Filters": "مرشحات مشتركة", + "Composition": "تكوين", + "Composition:": "تكوين:", + "Content Fill": "تعبئة المحتوى", + "Contrast": "مقابلة", + "Contrast:": "مقابلة:", + "Convert to Raster": "تحويل إلى نقطي", + "Copy Selection": "نسخ التحديد", + "Copy to Clipboard": "نسخ إلى الحافظة", + "Copy:": "ينسخ:", + "Courier": "ساعي", + "Crop Tool": "أداة المحاصيل", + "Crop on rotated layer is not supported. Convert it to raster to continue.": "القص على الطبقة التي تم تدويرها غير مدعوم. قم بتحويله إلى خطوط المسح للمتابعة.", + "Ctrl+A": "السيطرة + أ", + "Ctrl+C": "Ctrl + C", + "Ctrl+V": "السيطرة + V.", + "Ctrl+Y": "Ctrl + Y", + "Ctrl+Z": "السيطرة + Z", + "Ctrl-P": "السيطرة- P", + "Current": "تيار", + "Current Color Preview": "معاينة اللون الحالي", + "Custom": "مخصص", + "Data URL": "URL البيانات", + "Data URL:": "URL البيانات:", + "Decrease": "تخفيض", + "Decrease Color Depth": "تقليل عمق اللون", + "Degree:": "درجة:", + "Del": "ديل", + "Delete": "حذف", + "Delete Selection": "حذف التحديد", + "Denoise": "يقلل الضوضاء", + "Desaturate Tool": "أداة إزالة التشبع", + "Description:": "وصف:", + "Deutsch": "الألمانية", + "Differences": "اختلافات", + "Differences Down": "الخلافات أسفل", + "Direction:": "اتجاه:", + "Dither": "ثبات", + "Dithering:": "التردد:", + "Dominant color:": "اللون السائد:", + "Dot Screen": "شاشة نقطية", + "Down": "أسفل", + "Duplicate": "ينسخ", + "Duplicate Layer": "طبقة مكررة", + "Dynamic": "متحرك", + "Edge": "حافة", + "Edit": "يحرر", + "Edit text...": "تحرير النص...", + "Effect browser": "متصفح التأثير", + "Effects": "تأثيرات", + "Effects browser": "متصفح التأثيرات", + "Email:": "بريد الالكتروني:", + "Emboss": "زخرف", + "Empty selection": "اختيار فارغ", + "Empty selection or type not image.": "اختيار فارغ أو اكتب ليس صورة.", + "Enable guides:": "تمكين الأدلة:", + "Enable snap:": "تمكين المحاذاة:", + "End": "نهاية", + "English": "الإنجليزية", + "Enrich": "يثرى", + "Enter": "يدخل", + "Erase Tool": "أداة المحو", + "Erase on rotate object is disabled. Sorry.": "تم تعطيل المحو عند تدوير الكائن. آسف.", + "Error": "خطأ", + "Error connecting to service.": "خطأ في الاتصال بالخدمة.", + "Error registering service worker": "خطأ في تسجيل عامل الخدمة", + "Error: can not find filter:": "خطأ: لا يمكن العثور على عامل التصفية:", + "Error: can not find layer with id:": "خطأ: لا يمكن العثور على طبقة بالمعرف:", + "Error: missing details event target": "خطأ: تفاصيل الهدف حدث مفقود", + "Error: unknown layer type:": "خطأ: نوع طبقة غير معروف:", + "Esc": "خروج", + "Escape": "يهرب", + "Español": "الاسبانية", + "Expand edges": "قم بتوسيع الحواف", + "Exponent:": "الأس:", + "Export": "يصدر", + "External": "خارجي", + "Factor:": "عامل:", + "File": "ملف", + "File name:": "اسم الملف:", + "File size:": "حجم الملف:", + "Fill": "ملء", + "Fill Tool": "أداة التعبئة", + "Fit": "ملائم", + "Fit Window": "تناسب النافذة", + "Flatten Image": "تسطيح الصورة", + "Flip": "يواجه", + "FloydSteinberg-serpentine": "FloydSteinberg-serpentine", + "Font": "الخط", + "Français": "الفرنسية", + "Full HD, 1080p": "دقة Full HD ، 1080 بكسل", + "Full Screen": "تكبير الشاشة", + "Full layers data": "بيانات الطبقات الكاملة", + "Gap:": "الفارق:", + "Gaussian Blur": "التمويه الضبابي", + "Gif delay:": "تأخير Gif:", + "Gingham": "القماش القطني", + "GitHub:": "جيثب:", + "Gradient Radius:": "نصف قطر التدرج:", + "Grains": "بقوليات", + "Graphics Interchange Format": "تنسيق تبادل الرسومات", + "Gray": "رمادي", + "Grayscale": "تدرج الرمادي", + "Green": "لون أخضر", + "Green channel:": "القناة الخضراء:", + "Greyscale:": "الرمادي:", + "Grid": "شبكة", + "Grid on\/off": "الشبكة على \/ قبالة", + "Guides": "خطوط إرشاد", + "Guides enabled.": "تم تمكين الأدلة.", + "H Radius:": "نصف قطر H:", + "H. Align:": "ح. محاذاة:", + "Heatmap": "خريطة الحرارة", + "Height (%):": "ارتفاع (٪):", + "Height:": "ارتفاع:", + "Help": "مساعدة", + "Helvetica": "هيلفيتيكا", + "Hermite": "هيرمايت", + "Hex": "عرافة", + "Histogram": "الرسم البياني", + "Histogram:": "الرسم البياني:", + "Home": "الصفحة الرئيسية", + "Horizontal": "أفقي", + "Horizontal Alignment": "المحاذاة الأفقية", + "Horizontal blur:": "طمس أفقي:", + "Horizontal:": "أفقي:", + "Hue": "مسحة", + "Hue Rotate": "تدوير هوى", + "Hue:": "مسحة:", + "Image": "صورة", + "Image data with multi-layers. Can be opened using miniPaint -": "بيانات الصورة متعددة الطبقات. يمكن فتحه باستخدام miniPaint -", + "Impact": "تأثير", + "Increase": "زيادة", + "Information": "معلومة", + "Inkwell": "محبرة", + "Insert": "إدراج", + "Insert guides": "أدلة إدراج", + "Insert:": "إدراج:", + "Instagram Filters": "مرشحات Instagram", + "Invalid Hex Code": "رمز سداسي عشري غير صالح", + "Italiano": "ايطالي", + "JPG\/JPEG Format": "تنسيق JPG \/ JPEG", + "Kerning:": "تقنين الأحرف:", + "Key-Points": "النقاط الرئيسية", + "KeyU": "KeyU", + "Keyboard Shortcuts": "اختصارات لوحة المفاتيح", + "Keyword:": "الكلمة الرئيسية:", + "Lanczos": "لانكوز", + "Language": "لغة", + "Last modified": "آخر تعديل", + "Layer": "طبقة", + "Layer details": "تفاصيل الطبقة", + "Layer is not compatible with resize": "الطبقة غير متوافقة مع تغيير الحجم", + "Layer is vector, convert it to raster to apply this tool.": "الطبقة متجهية ، قم بتحويلها إلى خطوط نقطية لتطبيق هذه الأداة.", + "Layers": "طبقات", + "Layers:": "طبقات:", + "Left": "اليسار", + "Left to Right": "من اليسار إلى اليمين", + "Level:": "مستوى:", + "Levels:": "المستويات:", + "Lietuvių": "ليتوفيتش", + "Lo-fi": "Lo-fi", + "Luminance:": "الانارة:", + "Luminosity": "لمعان", + "Magic Eraser Tool": "أداة ماجيك ممحاة", + "Merge Down": "دمج أسفل", + "Merge Layers": "دمج الطبقات", + "Merged": "مندمجة", + "Metrics": "المقاييس", + "Middle": "وسط", + "Missing at least 1 size parameter.": "معلمة حجم واحدة مفقودة على الأقل.", + "Missing permissions to write to Clipboard.cc": "أذونات مفقودة للكتابة إلى Clipboard.cc", + "Mode:": "الوضع:", + "Module function not found.": "لم يتم العثور على وظيفة الوحدة النمطية.", + "Modules class not found:": "فئة الوحدات غير موجودة:", + "Monospace": "مونوسبيس", + "Mosaic": "فسيفساء", + "Mouse:": "الفأر:", + "Move": "يتحرك", + "Move Layer": "تحريك الطبقة", + "Move down": "تحرك لأسفل", + "Move up": "تحرك", + "Name:": "اسم:", + "Needs at least 2 layers.": "تحتاج إلى طبقتين على الأقل.", + "Negative": "سلبي", + "New": "جديد", + "New Brush Layer": "طبقة فرشاة جديدة", + "New Ellipse Layer": "طبقة Ellipse جديدة", + "New File": "ملف جديد", + "New Gradient Layer": "طبقة متدرجة جديدة", + "New Layer": "طبقة جديدة", + "New Line Layer": "طبقة خط جديدة", + "New Pencil Layer": "طبقة قلم رصاص جديدة", + "New Rectangle Layer": "طبقة مستطيل جديدة", + "New Text Layer": "طبقة نص جديدة", + "New file": "ملف جديد", + "New from Selection": "جديد من التحديد", + "New layer": "طبقة جديدة", + "New width can not be smaller then current width": "لا يمكن أن يكون العرض الجديد أصغر من العرض الحالي", + "Night Vision": "الرؤية الليلية", + "None": "لا أحد", + "Nothing is selected.": "لم يتم اختيار شيء.", + "Offset X:": "تعويض X:", + "Offset Y:": "تعويض ص:", + "Oil": "زيت", + "Ok": "موافق", + "Online image editor.": "محرر الصور على الإنترنت.", + "Opacity": "العتامة", + "Opacity:": "العتامة:", + "Open": "فتح", + "Open Data URL": "فتح URL البيانات", + "Open Directory": "الدليل المفتوح", + "Open File": "افتح ملف", + "Open File Data URL": "فتح ملف بيانات URL", + "Open File URL": "فتح ملف URL", + "Open File Webcam": "افتح ملف كاميرا الويب", + "Open Image": "صورة مفتوحة", + "Open JSON File": "افتح ملف JSON", + "Open Test Template": "افتح نموذج الاختبار", + "Open URL": "رابط مفتوح", + "Open data URL": "فتح URL البيانات", + "Open from Webcam": "افتح من كاميرا الويب", + "Original Size": "الحجم الأصلي", + "PNGTOSVG - Convert Image to SVG": "PNGTOSVG - تحويل الصورة إلى SVG", + "PageDown": "اسفل الصفحة", + "PageUp": "PageUp", + "Palette": "لوحة", + "Parameter #1:": "المعلمة # 1:", + "Parameter #2:": "المعلمة # 2:", + "Paste": "معجون", + "Pencil": "قلم", + "Percentage:": "النسبة المئوية:", + "Pixels:": "بكسل:", + "Placeholder comment for color channels": "تعليق العنصر النائب لقنوات الألوان", + "Placeholder comment for color picker": "تعليق العنصر النائب لمنتقي الألوان", + "Placeholder comment for color swatches": "تعليق العنصر النائب لحوامل اللون", + "Portable Network Graphics": "رسومات الشبكة المحمولة", + "Português": "البرتغالية", + "Position:": "موقع:", + "Power:": "قوة:", + "Preview": "معاينة", + "Previous": "سابق", + "Previous layer must be image, convert it to raster to apply this tool.": "يجب أن تكون الطبقة السابقة صورة ، قم بتحويلها إلى نقطية لتطبيق هذه الأداة.", + "Print": "مطبعة", + "Quality:": "جودة:", + "Quick Load": "تحميل سريع", + "Quick Save": "حفظ سريع", + "REMOVE.BG - Remove Image Background": "؛ REMOVE.BG - إزالة خلفية الصورة", + "Radial": "شعاعي", + "Radial gradient": "شعاعي التدرج", + "Radius:": "نصف القطر:", + "Range:": "نطاق:", + "Red": "أحمر", + "Red channel:": "القناة الحمراء:", + "Redo": "إعادة", + "Remove all": "حذف الكل", + "Rename": "إعادة تسمية", + "Rename Layer": "إعادة تسمية الطبقة", + "Rendered with errors.": "قدمت مع وجود أخطاء.", + "Rendering...": "استدعاء...", + "Replace Color": "استبدل اللون", + "Replace color": "استبدل اللون", + "Replacement:": "إستبدال:", + "Report Issues": "الإبلاغ عن المشكلات", + "Reset": "إعادة ضبط", + "Reset zoom level": "إعادة تعيين مستوى التكبير", + "Resize": "تغيير الحجم", + "Resize Boundary": "تغيير حجم الحدود", + "Resize Layer": "طبقة تغيير الحجم", + "Resize Layers": "تغيير حجم الطبقات", + "Resize Text Layer": "تغيير حجم طبقة النص", + "Resized as background": "تم تغيير الحجم كخلفية", + "Resolution:": "القرار:", + "Restore Alpha": "استعادة ألفا", + "Right": "حق", + "Right angle:": "زاوية مستقيمة:", + "Right to Left": "من اليمين الى اليسار", + "Rotate": "استدارة", + "Rotate Layer": "تدوير طبقة", + "Rotate is not supported on this type of object. Convert to raster?": "التدوير غير مدعوم في هذا النوع من الكائنات. تحويل إلى نقطية؟", + "Rotate left": "استدر يسارا", + "Rotate:": "استدارة:", + "Ruler": "مسطرة", + "SQUOOSH - Compress and Compare Images": "SQUOOSH - ضغط ومقارنة الصور", + "Saturate": "تشبع", + "Saturation": "التشبع", + "Saturation:": "التشبع:", + "Save (Export)": "حفظ (تصدير)", + "Save As": "حفظ باسم", + "Save As Data URL": "حفظ باسم URL البيانات", + "Save as": "حفظ باسم", + "Save as type:": "حفظ كنوع:", + "Save layers:": "حفظ الطبقات:", + "Save resolution:": "حفظ القرار:", + "Scaling up is not supported in Hermite, using Lanczos.": "التوسع غير مدعوم في Hermite ، باستخدام Lanczos.", + "Scroll down": "حرك الفأرة لأسفل", + "Scroll up": "انتقل إلى أعلى", + "Search": "بحث", + "Search Images": "البحث عن الصور", + "Select All": "اختر الكل", + "Select Text Layer": "حدد طبقة النص", + "Select object tool": "حدد أداة الكائن", + "Selected": "المحدد", + "Selection Tool": "آلة الاختيار", + "Sensitivity:": "حساسية:", + "Separated": "منفصل", + "Sepia": "بني داكن", + "Set Image Size": "ضبط حجم الصورة", + "Settings": "إعدادات", + "Shadow": "ظل", + "Shadow:": "ظل:", + "Shapes": "الأشكال", + "Sharpen": "شحذ", + "Sharpen Tool": "أداة شحذ", + "Sharpen:": "شحذ:", + "Shortcut Key:": "مفتاح الاختصار:", + "Show \/ Hide": "اظهر المخفي", + "Show file size:": "إظهار حجم الملف:", + "Simple": "بسيط", + "Size": "مقاس", + "Size is too big, max": "الحجم كبير جدًا ، الحد الأقصى", + "Size:": "مقاس:", + "Skip - layer must be image.": "تخطي - يجب أن تكون الطبقة عبارة عن صورة.", + "Solarize": "شمسي", + "Sorry, cold not load getUserMedia() data:": "عذرا ، لا تقم بتحميل بيانات getUserMedia ():", + "Sorry, image could not be loaded.": "عذرا ، الصورة لا يمكن تحميلها.", + "Sorry, image could not be loaded. Try copy image and paste it.": "عذرا ، الصورة لا يمكن تحميلها. حاول نسخ الصورة ولصقها.", + "Sorry, image is too big, max 5 MB.": "عذرًا ، الصورة كبيرة جدًا ، بحد أقصى 5 ميجا بايت.", + "Source coordinates saved.": "تم حفظ إحداثيات المصدر.", + "Source is empty, right click on image or use long press to save source position.": "المصدر فارغ ، انقر بزر الماوس الأيمن على الصورة أو استخدم الضغط لفترة طويلة لحفظ موضع المصدر.", + "Sprites": "العفاريت", + "Square": "مربع", + "Stream:": "مجرى:", + "Strength:": "قوة:", + "Strict": "صارم", + "TINYPNG - Compress PNG and JPEG": "TINYPNG - ضغط PNG و JPEG", + "Tab": "فاتورة غير مدفوعة", + "Tag Image File Format": "تنسيق ملف صورة العلامة", + "Tahoma": "تاهوما", + "Target:": "استهداف:", + "Theme": "سمة", + "There": "هناك", + "There are no layers behind.": "لا توجد طبقات خلف.", + "There is only 1 layer.": "هناك طبقة واحدة فقط.", + "This layer must contain an image. Please convert it to raster to apply this tool.": "يجب أن تحتوي هذه الطبقة على صورة. يرجى تحويله إلى نقطية لتطبيق هذه الأداة.", + "Tilt Shift": "تحول الإمالة", + "Times New Roman": "تايمز نيو رومان", + "Toaster": "محمصة", + "Toggle": "تبديل", + "Toggle Color Channels": "تبديل قنوات الألوان", + "Toggle Color Picker": "تبديل منتقي الألوان", + "Toggle Menu": "تبديل القائمة", + "Toggle Swatches": "تبديل العينات", + "Tools": "أدوات", + "Top": "قمة", + "Top to Bottom": "من اعلى لاسفل", + "Total pixels:": "إجمالي وحدات البكسل:", + "Translate": "ترجمة", + "Translate Layer": "طبقة الترجمة", + "Translate error, can not find dictionary:": "خطأ في الترجمة ، لا يمكن العثور على القاموس:", + "Transparency background:": "خلفية الشفافية:", + "Transparent:": "شفاف:", + "Trim": "تقليم", + "Trim Layers": "طبقات القطع", + "Trim borders:": "تقليم الحدود:", + "Trim layer:": "طبقة القطع:", + "Trim white color?": "تقليم اللون الأبيض؟", + "Type:": "اكتب:", + "Türkçe": "Türkçe", + "Undo": "الغاء التحميل", + "Unique colors:": "ألوان فريدة:", + "Up": "فوق", + "Update": "تحديث", + "Update Brush Layer": "تحديث طبقة الفرشاة", + "Update Pencil Layer": "تحديث طبقة القلم الرصاص", + "Update guides": "أدلة التحديث", + "Use Ctrl+V keyboard shortcut to paste from Clipboard.": "استخدم اختصار لوحة المفاتيح Ctrl + V للصق من الحافظة.", + "V Radius:": "نصف القطر الخامس:", + "V. Align:": "V. محاذاة:", + "Valencia": "فالنسيا", + "Verdana": "فيردانا", + "Version:": "الإصدار:", + "Vertical": "رأسي", + "Vertical Alignment": "انحياز عمودي", + "Vertical blur:": "التمويه العمودي:", + "Vertical:": "رأسي:", + "Vibrance": "حيوية", + "View": "رأي", + "Vignette": "المقالة القصيرة", + "ViliusL": "ViliusL", + "Vintage": "كلاسيكي", + "Webcam": "كاميرا ويب", + "Webcam #": "كاميرا ويب #", + "Website:": "موقع الكتروني:", + "Weppy File Format": "تنسيق ملف Weppy", + "Width (%):": "عرض (٪):", + "Width:": "عرض:", + "Windows Bitmap": "Windows Bitmap", + "Word": "كلمة", + "Word + Letter": "كلمة + حرف", + "Wrap At:": "التفاف في:", + "Wrap:": "لف:", + "Wrong dimensions": "أبعاد خاطئة", + "Wrong file type, must be image or json.": "نوع الملف غير صحيح ، يجب أن يكون صورة أو json.", + "X end:": "نهاية X:", + "X position:": "المركز العاشر:", + "X start:": "بداية X:", + "X-Pro II": "اكس برو الثاني", + "Y end:": "نهاية ص:", + "Y position:": "موقف ص:", + "Y start:": "بداية Y:", + "You can also drag and drop items into browser.": "يمكنك أيضًا سحب العناصر وإفلاتها في المتصفح.", + "Your browser does not support canvas or JavaScript is not enabled.": "لا يدعم المستعرض الخاص بك اللوحة القماشية أو لم يتم تمكين JavaScript.", + "Your browser does not support this format.": "متصفحك لا يدعم هذا التنسيق.", + "Your search did not match any images.": "بحثك لم يطابق أي صور.", + "Zoom": "تكبير", + "Zoom Blur": "زووم بلور", + "Zoom In": "تكبير", + "Zoom Out": "تصغير", + "Zoom blur": "زووم طمس", + "Zoom in": "تكبير", + "Zoom out": "تصغير", + "Zoom:": "تكبير:" +} \ No newline at end of file diff --git a/src/js/languages/empty.json b/src/js/languages/empty.json index 6a324d0..3aa9e50 100644 --- a/src/js/languages/empty.json +++ b/src/js/languages/empty.json @@ -1,4 +1,5 @@ { + "11px Arial": "", "1em": "", "24-Points star": "", "2d": "", @@ -49,6 +50,7 @@ "Can not animate 1 layer.": "", "Can not find previous layer.": "", "Cancel": "", + "Canvas size": "", "Center": "", "Center x:": "", "Center y:": "", @@ -130,6 +132,7 @@ "Emboss": "", "Empty selection": "", "Empty selection or type not image.": "", + "Enable guides:": "", "Enable snap:": "", "End": "", "English": "", @@ -139,6 +142,7 @@ "Erase on rotate object is disabled. Sorry.": "", "Error": "", "Error connecting to service.": "", + "Error registering service worker": "", "Error: can not find filter:": "", "Error: can not find layer with id:": "", "Error: missing details event target": "", @@ -148,6 +152,7 @@ "Español": "", "Expand edges": "", "Exponent:": "", + "Export": "", "External": "", "Factor:": "", "File": "", @@ -163,6 +168,7 @@ "Font": "", "Français": "", "Full HD, 1080p": "", + "Full Screen": "", "Full layers data": "", "Gap:": "", "Gaussian Blur": "", @@ -179,6 +185,8 @@ "Greyscale:": "", "Grid": "", "Grid on\/off": "", + "Guides": "", + "Guides enabled.": "", "H Radius:": "", "H. Align:": "", "Heatmap": "", @@ -194,6 +202,7 @@ "Horizontal": "", "Horizontal Alignment": "", "Horizontal blur:": "", + "Horizontal:": "", "Hue": "", "Hue Rotate": "", "Hue:": "", @@ -203,6 +212,8 @@ "Increase": "", "Information": "", "Inkwell": "", + "Insert": "", + "Insert guides": "", "Insert:": "", "Instagram Filters": "", "Invalid Hex Code": "", @@ -210,6 +221,7 @@ "JPG\/JPEG Format": "", "Kerning:": "", "Key-Points": "", + "KeyU": "", "Keyboard Shortcuts": "", "Keyword:": "", "Lanczos": "", @@ -303,6 +315,7 @@ "Placeholder comment for color swatches": "", "Portable Network Graphics": "", "Português": "", + "Position:": "", "Power:": "", "Preview": "", "Previous": "", @@ -319,6 +332,7 @@ "Red": "", "Red channel:": "", "Redo": "", + "Remove all": "", "Rename": "", "Rename Layer": "", "Rendered with errors.": "", @@ -345,11 +359,12 @@ "Rotate is not supported on this type of object. Convert to raster?": "", "Rotate left": "", "Rotate:": "", + "Ruler": "", "SQUOOSH - Compress and Compare Images": "", "Saturate": "", "Saturation": "", "Saturation:": "", - "Save": "", + "Save (Export)": "", "Save As": "", "Save As Data URL": "", "Save as": "", @@ -399,6 +414,7 @@ "Strict": "", "TINYPNG - Compress PNG and JPEG": "", "Tab": "", + "Tag Image File Format": "", "Tahoma": "", "Target:": "", "Theme": "", @@ -428,12 +444,15 @@ "Trim borders:": "", "Trim layer:": "", "Trim white color?": "", + "Type:": "", "Türkçe": "", "Undo": "", "Unique colors:": "", "Up": "", + "Update": "", "Update Brush Layer": "", "Update Pencil Layer": "", + "Update guides": "", "Use Ctrl+V keyboard shortcut to paste from Clipboard.": "", "V Radius:": "", "V. Align:": "", @@ -443,11 +462,12 @@ "Vertical": "", "Vertical Alignment": "", "Vertical blur:": "", + "Vertical:": "", "Vibrance": "", + "View": "", "Vignette": "", "ViliusL": "", "Vintage": "", - "Visible:": "", "Webcam": "", "Webcam #": "", "Website:": "", diff --git a/tools/translator/config.php b/tools/translator/config.php index 20f06a4..62b336f 100644 --- a/tools/translator/config.php +++ b/tools/translator/config.php @@ -12,6 +12,7 @@ $SOURCE_DIRS = [ ]; $LANGUAGES = [ + 'ar', 'de', 'es', 'fr', @@ -22,7 +23,7 @@ $LANGUAGES = [ 'pt', 'ru', 'tr', - 'zh', + 'zh', ]; $LANG_DIR = __DIR__ . '/../../src/js/languages/'; diff --git a/tools/translator/index.php b/tools/translator/index.php index ab50631..fb58078 100644 --- a/tools/translator/index.php +++ b/tools/translator/index.php @@ -10,14 +10,17 @@ $translator = new Translator(); Translator -

Translator

+

Translator

+ Helpers: +

+ Actions: - +

0) { @@ -25,13 +28,13 @@ $translator = new Translator(); if ($_POST['action'] == 'Import') { $translator->scan(); $translator->extract(); - echo ""; print_r($translator->strings); echo "\n"; + echo "
"; print_r($translator->strings); echo "
\n"; } if ($_POST['action'] == 'Filter') { $translator->scan(); $translator->extract(); $translator->filter(); - echo ""; print_r($translator->strings); echo "\n"; + echo "
"; print_r($translator->strings); echo "
\n"; } if ($_POST['action'] == 'Translate manually') { //show form @@ -51,7 +54,7 @@ $translator = new Translator(); if ($_POST['action'] == 'Merge') { $translator->merge(); } - if ($_POST['action'] == 'Auto Tanslate') { + if ($_POST['action'] == 'Auto Translate') { //prepare $translator->scan(); $translator->extract(); diff --git a/tools/translator/libs/translator.php b/tools/translator/libs/translator.php index f73e292..c3e8405 100644 --- a/tools/translator/libs/translator.php +++ b/tools/translator/libs/translator.php @@ -13,10 +13,11 @@ class Translator { public $files; public $strings; public $translations; - public $lang; /** * scan external resources + * + * @throws Exception */ public function scan() { global $SOURCE_DIRS; @@ -51,6 +52,8 @@ class Translator { /** * extracts strings from files + * + * @throws Exception */ public function extract() { $this->strings = array(); @@ -64,6 +67,9 @@ class Translator { //drop svg $content = preg_replace('||i', '', $content); + //drop exceptions + $content = preg_replace('|\/\/no-translate BEGIN[\s\S]+?\/\/no-translate END|mi', '', $content); + //drop $content = stripslashes($content); @@ -179,8 +185,6 @@ class Translator { continue; } - //$string = $this->my_mb_ucfirst(mb_strtolower($string)); - $this->strings[] = $string; } $this->strings = array_unique($this->strings); @@ -189,6 +193,8 @@ class Translator { /** * prepare strings for translating for user + * + * @throws Exception */ public function prepare() { $this->scan(); @@ -201,10 +207,6 @@ class Translator { if (isset($_POST['in'])) $in_content = $_POST['in']; - $lang = ''; - if (isset($_POST['lang'])) - $lang = $_POST['lang']; - echo '

'; echo 'Translate text above with translator and paste result below:

'; echo '
'; @@ -214,8 +216,9 @@ class Translator { /** * combines source strings and manually translated strings to json format * - * @param array $translation - * @param string $lang 2 lang cde + * @param string $translation + * + * @throws Exception */ public function add_translation($translation) { $translation = trim($translation); @@ -237,6 +240,11 @@ class Translator { } } + /** + * translates everything automatically + * + * @throws Exception + */ public function auto_translate() { global $LANGUAGES, $LANG_DIR; @@ -308,6 +316,8 @@ class Translator { /** * saves current data as empty file + * + * @throws Exception */ public function save_empty() { global $LANG_DIR_EMPTY; @@ -342,6 +352,8 @@ class Translator { /** * merge two translations + * + * @throws Exception */ public function merge() { echo 'Old translations: (priority on same keys)
'; @@ -386,9 +398,4 @@ class Translator { echo ''; } - private function my_mb_ucfirst($str) { - $fc = mb_strtoupper(mb_substr($str, 0, 1)); - return $fc . mb_substr($str, 1); - } - }