اذهب إلى المحتوى

السؤال

نشر (معدل)

السلام عليكم و رحمة الله و بركاته 

اخواني اريد ان يتم تحويل رمز العملة في حالة تغيير لغة الموقع ...

فمثلا عندما يكون الموقع باللغة العربية يكون رمز العملة بالعربية ( دج ) و اذا تم اختيار و تحويل الموقع للغة الانجليزية يتم تحويل رمز العملة الى ( DA ) ...

مع العلم اني استعمل سكريبت Active eCommerce CMS

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال

Recommended Posts

  • 0
نشر

1- ستجد خيار باسم setup & configurations اضغط عليه ومنه اختر Languages.

2- قم بإختيار اللغة الإفتراضية للموقع من الأعلى ثم اضغط save.

3- ستجد خيار باسم add new language قم بالضغط عليه واكتب ar وسيظهر لك العربية اخترها ثم احفظ من خلال save

4- بجانب اللغة العربية قم بتفعيل الزر الخاص بتحويل تنسيق الموقع من اليمين إلى اليسار RTL.

5- ستجد بجانب اللغة العربية زر الترجمة بجانب علامة القلم اضغط عليه ثم بترجمة العملة كما تريد.

Screenshot(18).thumb.png.e0ad614dcdde9dbe9ad7873d1bcad225.png

 

  • 0
نشر

شكرا لك اخي على الرد ...

لكن السكريبت يحدد رمز واحد للعملة بلغة واحدة و انا اتكلم على رمزين للعملة من العر بية الى الانجليزية و السكريبت لا يدعم تلك الميزة ...

يجب ان يكون كود اضافي 

2023-05-22_133237.png

هناك كود خاص ب WordPress لكن انا ابحث عن كود خاص ب لارافال 

/*Currency Translation*/
  
add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
     
function change_existing_currency_symbol( $currency_symbol, $currency ) {
    switch( $currency ) {
        case 'SAR':         
        if(ICL_LANGUAGE_CODE=='ar'){        
        $currency_symbol = 'ر.س'; 
        }else{
                 $currency_symbol = 'SAR'; 
            } 
        break;          
    }
    return $currency_symbol;
}

 

  • 0
نشر

لتحقيق هذا المطلب في موقعك المستند إلى Active eCommerce CMS، يتطلب القليل من البرمجة والتخصيص. هنا خطوات عامة يمكن اتباعها:

تحديد إعدادات العملة لكل لغة في Active eCommerce CMS، قد تكون هناك إعدادات للعملات تتيح لك تحديد رمز العملة والتنسيق والعوامل الأخرى المتعلقة بالعملة. قد تحتاج إلى تحديد إعدادات العملة بشكل منفصل لكل لغة مدعومة في الموقع.

إنشاء قواعد لتحديد اللغة يمكنك استخدام قواعد أو شروط لتحديد اللغة الحالية للموقع. يمكن استخدام العلامات اللغوية في عنوان URL أو ملفات ترجمة أو معرّفات اللغة في البيانات المستخدمة.

برمجة التغيير التلقائي لرمز العملة بناءً على اللغة المحددة، يمكنك استدعاء الدوال أو استخدام الشروط البرمجية لتغيير رمز العملة في الموقع. يمكنك تحقيق ذلك عن طريق تغيير قيمة المتغير المختص برمز العملة أو استدعاء دوال مخصصة لتحديث قيمة العملة بناءً على اللغة المحددة.

تحديث العرض والتصميم يجب تحديث عرض الرمز العملة في الموقع بناءً على القيمة الجديدة لرمز العملة. يجب تطبيق التغييرات في القوالب والأجزاء ذات الصلة في الموقع لعرض الرمز العملة بالشكل الصحيح.

مع القليل من البرمجة والتخصيص، يمكنك تحقيق تغيير رمز العملة بناءً على لغة الموقع المحددة. يجب مراجعة وثائق Active eCommerce CMS والمصادر المتاحة للحصول على مزيد من المعلومات حول Active eCommerce CMS

  • 0
نشر

شكرا على الرد ...

انا لا افهم في البرمجة كثيرا لكن اظن ان هناك ملف PHP اسمه CurrencyController.php

اظن انه يحتاج الى كود تخصيص ... مثلا نضع له شرط انه اذا كانت اللغة غير ar يكون الرمز symbol = dz 

في هذا الملف يوجد كود changeCurrency أظن انه يمكن الاضافة او التعديل عليه بوضع شرط او دالة 

الكود في الملف 

public function changeCurrency(Request $request)
    {
        $currency = Currency::where('code', $request->currency_code)->first();
        $request->session()->put('currency_code', $request->currency_code);
        $request->session()->put('currency_symbol', $currency->symbol);
        $request->session()->put('currency_exchange_rate', $currency->exchange_rate);
    	flash(translate('Currency changed to ').$currency->name)->success();
    }

كود خاص ب WordPress لاعطاء امر تحويل الرمز حسب تغير اللغة 

add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
    
function change_existing_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
           case 'DA':           
              if(ICL_LANGUAGE_CODE=='en'){
                  $currency_symbol = 'DA'; 
              }else{
                 $currency_symbol = 'دج';  
              }
           break;            
     }
     return $currency_symbol;
}

و انا احتاج الى كود خاص ب Laravel

و لاصحاب الخبرة اليكم كود الملف كاملا ... ان كان هذا هو الملف الذي يجب عليه التخصيص ؟

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Currency;

class CurrencyController extends Controller
{
    public function __construct() {
        // Staff Permission Check
        $this->middleware(['permission:currency_setup'])->only('currency','create','edit');
    }

    public function changeCurrency(Request $request)
    {
        $currency = Currency::where('code', $request->currency_code)->first();
        $request->session()->put('currency_code', $request->currency_code);
        $request->session()->put('currency_symbol', $currency->symbol);
        $request->session()->put('currency_exchange_rate', $currency->exchange_rate);
    	flash(translate('Currency changed to ').$currency->name)->success();
    }

    public function currency(Request $request)
    {
        $sort_search =null;
        $currencies = Currency::orderBy('created_at', 'desc');
        if ($request->has('search')){
            $sort_search = $request->search;
            $currencies = $currencies->where('name', 'like', '%'.$sort_search.'%');
        }
        $currencies = $currencies->paginate(10);

        $active_currencies = Currency::where('status', 1)->get();
        return view('backend.setup_configurations.currencies.index', compact('currencies', 'active_currencies','sort_search'));
    }

    public function updateYourCurrency(Request $request)
    {
        $currency = Currency::findOrFail($request->id);
        $currency->name = $request->name;
        $currency->symbol = $request->symbol;
        $currency->code = $request->code;
        $currency->exchange_rate = $request->exchange_rate;
        $currency->status = $currency->status;
        if($currency->save()){
            flash(translate('Currency updated successfully'))->success();
            return redirect()->route('currency.index');
        }
        else {
            flash(translate('Something went wrong'))->error();
            return redirect()->route('currency.index');
        }
    }

    public function create()
    {
        return view('backend.setup_configurations.currencies.create');
    }

    public function edit(Request $request)
    {
        $currency = Currency::findOrFail($request->id);
        return view('backend.setup_configurations.currencies.edit', compact('currency'));
    }

    public function store(Request $request)
    {
        $currency = new Currency;
        $currency->name = $request->name;
        $currency->symbol = $request->symbol;
        $currency->code = $request->code;
        $currency->exchange_rate = $request->exchange_rate;
        $currency->status = '0';
        if($currency->save()){
            flash(translate('Currency updated successfully'))->success();
            return redirect()->route('currency.index');
        }
        else {
            flash(translate('Something went wrong'))->error();
            return redirect()->route('currency.index');
        }
    }

    public function update_status(Request $request)
    {
        $currency = Currency::findOrFail($request->id);
        if($request->status == 0){
            if (get_setting('system_default_currency') == $currency->id) {
                return 0;
            }
        }
        $currency->status = $request->status;
        $currency->save();
        return 1;
    }
}

 

  • 0
نشر

  

بتاريخ منذ ساعة مضت قال Taieb Ahmed:

شكرا على الرد ...

انا لا افهم في البرمجة كثيرا لكن اظن ان هناك ملف PHP اسمه CurrencyController.php

اظن انه يحتاج الى كود تخصيص ... مثلا نضع له شرط انه اذا كانت اللغة غير ar يكون الرمز symbol = dz 

في هذا الملف يوجد كود changeCurrency أظن انه يمكن الاضافة او التعديل عليه بوضع شرط او دالة 

الكود في الملف 

public function changeCurrency(Request $request)
    {
        $currency = Currency::where('code', $request->currency_code)->first();
        $request->session()->put('currency_code', $request->currency_code);
        $request->session()->put('currency_symbol', $currency->symbol);
        $request->session()->put('currency_exchange_rate', $currency->exchange_rate);
    	flash(translate('Currency changed to ').$currency->name)->success();
    }
 

كود خاص ب WordPress لاعطاء امر تحويل الرمز حسب تغير اللغة 

add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
    
function change_existing_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
           case 'DA':           
              if(ICL_LANGUAGE_CODE=='en'){
                  $currency_symbol = 'DA'; 
              }else{
                 $currency_symbol = 'دج';  
              }
           break;            
     }
     return $currency_symbol;
}
 

و انا احتاج الى كود خاص ب Laravel

و لاصحاب الخبرة اليكم كود الملف كاملا ... ان كان هذا هو الملف الذي يجب عليه التخصيص ؟

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Currency;

class CurrencyController extends Controller
{
    public function __construct() {
        // Staff Permission Check
        $this->middleware(['permission:currency_setup'])->only('currency','create','edit');
    }

    public function changeCurrency(Request $request)
    {
        $currency = Currency::where('code', $request->currency_code)->first();
        $request->session()->put('currency_code', $request->currency_code);
        $request->session()->put('currency_symbol', $currency->symbol);
        $request->session()->put('currency_exchange_rate', $currency->exchange_rate);
    	flash(translate('Currency changed to ').$currency->name)->success();
    }

    public function currency(Request $request)
    {
        $sort_search =null;
        $currencies = Currency::orderBy('created_at', 'desc');
        if ($request->has('search')){
            $sort_search = $request->search;
            $currencies = $currencies->where('name', 'like', '%'.$sort_search.'%');
        }
        $currencies = $currencies->paginate(10);

        $active_currencies = Currency::where('status', 1)->get();
        return view('backend.setup_configurations.currencies.index', compact('currencies', 'active_currencies','sort_search'));
    }

    public function updateYourCurrency(Request $request)
    {
        $currency = Currency::findOrFail($request->id);
        $currency->name = $request->name;
        $currency->symbol = $request->symbol;
        $currency->code = $request->code;
        $currency->exchange_rate = $request->exchange_rate;
        $currency->status = $currency->status;
        if($currency->save()){
            flash(translate('Currency updated successfully'))->success();
            return redirect()->route('currency.index');
        }
        else {
            flash(translate('Something went wrong'))->error();
            return redirect()->route('currency.index');
        }
    }

    public function create()
    {
        return view('backend.setup_configurations.currencies.create');
    }

    public function edit(Request $request)
    {
        $currency = Currency::findOrFail($request->id);
        return view('backend.setup_configurations.currencies.edit', compact('currency'));
    }

    public function store(Request $request)
    {
        $currency = new Currency;
        $currency->name = $request->name;
        $currency->symbol = $request->symbol;
        $currency->code = $request->code;
        $currency->exchange_rate = $request->exchange_rate;
        $currency->status = '0';
        if($currency->save()){
            flash(translate('Currency updated successfully'))->success();
            return redirect()->route('currency.index');
        }
        else {
            flash(translate('Something went wrong'))->error();
            return redirect()->route('currency.index');
        }
    }

    public function update_status(Request $request)
    {
        $currency = Currency::findOrFail($request->id);
        if($request->status == 0){
            if (get_setting('system_default_currency') == $currency->id) {
                return 0;
            }
        }
        $currency->status = $request->status;
        $currency->save();
        return 1;
    }
}
 

 

حاول  إضافة شرط داخل دالة changeCurrency لتغيير رمز العملة بناءً على اللغة المحددة، وتستطيع استخدام دالة app()->getLocale() للحصول على اللغة المحددة في Laravel.

public function changeCurrency(Request $request)
{
    $currencyCode = $request->currency_code;
    $language = app()->getLocale();
    
    // تحديد رمز العملة بناءً على اللغة
    $currencySymbol = ($language == 'ar') ? 'دج' : 'DA';
    
    $currency = Currency::where('code', $currencyCode)->first();
    $request->session()->put('currency_code', $currencyCode);
    $request->session()->put('currency_symbol', $currencySymbol);
    $request->session()->put('currency_exchange_rate', $currency->exchange_rate);
    
    flash(translate('Currency changed to ') . $currency->name)->success();
}

قمت بإضافة شرط للتحقق من اللغة المحددة. إذا كانت اللغة 'ar' (عربي)، وسيتم تعيين رمز العملة إلى 'دج'، وإلا سيتم تعيينه إلى 'DA'.

احفظ التعديلات واختبر الموقع عند تغيير لغة الموقع للتحقق من تغيير رمز العملة بناءً على اللغة المحددة، ويرجى ملاحظة أنه قد تحتاج إلى إعادة تشغيل الخادم أو مسح ذاكرة التخزين المؤقت لتطبيق السكريبت (مثل مسح مجلد bootstrap/cache في Laravel) لتطبيق التغييرات يدويًا أو من خلال الأمر:

php artisan optimize:clear

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...