رفتن به مطلب

آموزش ترجمه کلمات درون functions.php


پست های پیشنهاد شده

با سلام.

در فایل functions.php  یک قطعه کد قرار دادم که در آن یک کلمه فارسی وجود دارد که مربوط به ووکامرس است. حال اگر سایت چند زبانه باشد که بخواهم آن کلمه ی فارسی موجود در قطعه کد به زبان های دیگر در صفحه ی خودشان به نمایش گذاشته شود باید چه کاری انجام دهم ؟ ( مثلا در صفحه ی زبان انگلیسی , معادل کلمه ی فارسی را به انگلیسی وارد کنم تا قابل نمایش و خواندن برای انگلیسی زبانان باشد)  
در ضمن wpml هم نصب است اما در string translition کلمه ی موجود در functions وجود نداشت تا ترجمه اش کنم. 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

درود؛

بجای عبارت مستقیم، باید به صورت Translate Ready وارد کنید. یعنی به صورت زیر:

function mesale_functions( $text ) {
    return __("متن خود را اینجا وارد کنید","themedomain");
}
add_filter( 'mesale-filter', 'mesale_functions' );

بجای themedomain باید دامین ترجمه قالب رو از فایل Style.css قالب جایگزین کنید تا ابزارهای ترجمه بتونن اون متن رو شناسایی کنند.

  • Like 1
  • Thanks 1
لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

در 49 دقیقه قبل، Masih گفته است :

درود؛

بجای عبارت مستقیم، باید به صورت Translate Ready وارد کنید. یعنی به صورت زیر:

function mesale_functions( $text ) {
    return __("متن خود را اینجا وارد کنید","themedomain");
}
add_filter( 'mesale-filter', 'mesale_functions' );

بجای themedomain باید دامین ترجمه قالب رو از فایل Style.css قالب جایگزین کنید تا ابزارهای ترجمه بتونن اون متن رو شناسایی کنند.

خب این کد مربوط به تغییر نمایش "بازه قیمتی ووکامرس" به نمایش "حداقل قیمت محصول در ووکامرس" است که در این کد کلمه ی فارسی "شروع قیمت از" وجود دارد که باید قابل ترجمه شود. لطفا این کد را به نحوی که برای ابزار مترجم فعال شود ویرایش کنید تا متوجه بشم :

 

add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'شروع قیمت از %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'شروع قیمت از %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

الان هم ابزار ترجمه می تونه شناسایی کنه فقط از زیرمجموعه قالب ها در دسترس نیست. چون Text Domain مربوط به افزونه ووکامرس استفاده شده احتمالا اگه وارد ویرایش زبان افزونه ووکامرس با Loco Translate یا WPML بشید می تونید این متن ها رو مشاهده کنید.

اگه می خواهید توی قالب هاتون بیاد، باید textdomain رو تغییر بدید. به این صورت:

add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'شروع قیمت از %1$s', 'mytextdomain' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'شروع قیمت از %1$s', 'mytextdomain' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}

بجای هر دو mytextdomain باید تکست دامین قالبتون رو جایگزین کنید. وارد فایل style.css قالب بشید اونجا تکست دامین قالب نوشته شده ابتدای فایل (در محدوده اطلاعات قالب)

  • Like 1
  • Thanks 1
لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، Masih گفته است :

الان هم ابزار ترجمه می تونه شناسایی کنه فقط از زیرمجموعه قالب ها در دسترس نیست. چون Text Domain مربوط به افزونه ووکامرس استفاده شده احتمالا اگه وارد ویرایش زبان افزونه ووکامرس با Loco Translate یا WPML بشید می تونید این متن ها رو مشاهده کنید.

اگه می خواهید توی قالب هاتون بیاد، باید textdomain رو تغییر بدید. به این صورت:

add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'شروع قیمت از %1$s', 'mytextdomain' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'شروع قیمت از %1$s', 'mytextdomain' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}

بجای هر دو mytextdomain باید تکست دامین قالبتون رو جایگزین کنید. وارد فایل style.css قالب بشید اونجا تکست دامین قالب نوشته شده ابتدای فایل (در محدوده اطلاعات قالب)

 

انجام دادم اما در قسمت  string translation wpml عبارت فارسی اضافه نشد. امکان اینکه تنها برای یک زبان خاص از این کد functions استفاده کنیم هست؟ مثلا همین کدی که به اشتراک گذاشته شده با متن فارسی برای زبان فارسی و مثل همین تنها با متن انگلیسی برای زبان انگلیسی اضافه کنیم. !!

ویرایش شده توسط mahdi6
لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

اگر اضافه نشد بجای فارسی، زبان انگلیسی رو بصورت پیش فرض داخل کدها وارد کنید و ترجمه ها رو در فایل po و mo انجام بدید. مرحله تغییر کد رو انجام بدید و بجای wpml افزونه loco translate رو نصب کنید. در قسمت ترجمه ها، زبان جدید برای سایت ایجاد کنید و ترجمه انجام بدید.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
×
×
  • اضافه کردن...