رفتن به مطلب

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

با سلام و خسته نباشید به تمامی اساتید . من یک سایته دو زبانه توسط  افزونه polylang درست کردم و مشکل اساسی من با خط است. از افزونه فونت ماندگار هم استفاده کردم اما اعدادم تو دو سایت فارسی یا انگلیسی می شوند . چیکار باید بکنم ؟

این آدرس سایتمه : 

http://tirage.ir/

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


لینک به ارسال

میخواهید که در صفحات فارسی اعداد به فارسی باشند و در صفحات اینگلیسی به زبان اینگلیسی درسته؟

این کد را در داخل یک فایل جاوا وارد کنید. من خودم امتحان کردم و جواب داد و برام خیلی جالب بود:

function getParentLang(node) { var defaultLang = 'fa'; var currLang = null; while(currLang === null && node.parentNode) { if (node.getAttribute && node.getAttribute('lang')) { currLang = node.getAttribute('lang'); } node = node.parentNode; } return currLang || defaultLang; } function TraceNodes(e) { if (e.nodeType == 3 && getParentLang(e) === 'fa' /* Persian */) { e.nodeValue = e.nodeValue.toPersianDigit(); } else { for (var t = 0; t < e.childNodes.length; t++) { TraceNodes(e.childNodes[t]); } } } String.prototype.toPersianDigit = function(e) { return this.replace(/\d+/g, function(t) { var n = [], r = []; for (var i = 0; i < t.length; i++) { n.push(t.charCodeAt(i)) } for (var s = 0; s < n.length; s++) { r.push(String.fromCharCode(n[s] + (!!e && e == true ? 1584 : 1728))) } return r.join("") }) }; TraceNodes(document);

البته میتونید در فایل functions.php هم به این ترتیب وارد کنید:

function your_function() {
?>
<script>
function getParentLang(node) { var defaultLang = 'fa'; var currLang = null; while(currLang === null && node.parentNode) { if (node.getAttribute && node.getAttribute('lang')) { currLang = node.getAttribute('lang'); } node = node.parentNode; } return currLang || defaultLang; } function TraceNodes(e) { if (e.nodeType == 3 && getParentLang(e) === 'fa' /* Persian */) { e.nodeValue = e.nodeValue.toPersianDigit(); } else { for (var t = 0; t < e.childNodes.length; t++) { TraceNodes(e.childNodes[t]); } } } String.prototype.toPersianDigit = function(e) { return this.replace(/\d+/g, function(t) { var n = [], r = []; for (var i = 0; i < t.length; i++) { n.push(t.charCodeAt(i)) } for (var s = 0; s < n.length; s++) { r.push(String.fromCharCode(n[s] + (!!e && e == true ? 1584 : 1728))) } return r.join("") }) }; TraceNodes(document);  
</script>
<?php 
}
add_action( 'wp_footer', 'your_function' );

 

ویرایش شده توسط Lahijan

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


لینک به ارسال
در 3 ساعت قبل، eli joon گفته است :

دقیقا این کار رو انتهای function زدم اما عکس العملی نمیده همونه. چک می کنید لطفاً http://tirage.ir/

 

کد رو درست گذاشتید و باید جواب بده. اینو امتحان کنید:

function your_function() {
?>
<script>
var $lang = document.documentElement.lang;
if($lang == "fa-IR"){
	function getParentLang(node) { var defaultLang = 'fa'; var currLang = null; while(currLang === null && node.parentNode) { if (node.getAttribute && node.getAttribute('lang')) { currLang = node.getAttribute('lang'); } node = node.parentNode; } return currLang || defaultLang; } function TraceNodes(e) { if (e.nodeType == 3 && getParentLang(e) === 'fa' /* Persian */) { e.nodeValue = e.nodeValue.toPersianDigit(); } else { for (var t = 0; t < e.childNodes.length; t++) { TraceNodes(e.childNodes[t]); } } } String.prototype.toPersianDigit = function(e) { return this.replace(/\d+/g, function(t) { var n = [], r = []; for (var i = 0; i < t.length; i++) { n.push(t.charCodeAt(i)) } for (var s = 0; s < n.length; s++) { r.push(String.fromCharCode(n[s] + (!!e && e == true ? 1584 : 1728))) } return r.join("") }) }; TraceNodes(document);
}
</script>
<?php 
}
add_action( 'wp_footer', 'your_function' );

اگر نشد در  "تنظیمات وردپرس فارسی" به قسمت "تبدیل اعداد به فارسی" بروید و قسمت "متن نوشته ها" را تعقیر دهید و امتحان کنید ببینید درست میشود.

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


لینک به ارسال

بالاخره با کلی تلاش درست شد متن ها رو تو فایل js گذاشتم و با افزونه فونت ماندگار byekan  گذاشتیم درست شد البته ویجت وسط صفحه های پروژه ام که شمارنده است همچنان در زبان فارسی به صورت انگلیسی است

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


لینک به ارسال
در 2 ساعت قبل، eli joon گفته است :

بالاخره با کلی تلاش درست شد متن ها رو تو فایل js گذاشتم و با افزونه فونت ماندگار byekan  گذاشتیم درست شد البته ویجت وسط صفحه های پروژه ام که شمارنده است همچنان در زبان فارسی به صورت انگلیسی است

آنطور که من بررسی کردم بهترین و حرفه ای ترین راه ایجاد دو اینستال از وردپرس است. یعنی یک اینستال فارسی مثلا در داخل دایرکتوری روت و یک اینستال اینگلیسی مثلا در داخل ساب دایرکتوری /en. برای راه حل دراز مدت اینرو در نظر بگیرید.

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


لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • اضافه کردن...