رفتن به مطلب

مشکل افزودن فایل ترجمه به افزونه


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

سلام ، روزتون بخیر

یه مشکل عحیب برام پیش اومده در مورد فارسی کردن افزونه ، با poedit رشته ها رو از یه افزونه کشیدم بیرون ، توی پوشه افزونه هم قرار دادمش ، اجرا نشد ، حتی با کد زیر


function plugin_name_lan() {
load_plugin_textdomain( 'plugin_name', false, dirname( plugin_basename( __FILE__ ) ) );
}
add_action('init', 'plugin_name_lan');

سعی کردم فایل زبان رو بهش نشون بدم ، ولی باز هم اجرا نشد ، کلا دیگه هنگ کردم :(

البته بعضی از رشته ها که با فایل ترجمه ی خود وردپرس یکی هست ، رو فارسی نشون میده ! ولی رشته هایی که خودم تعریف کردم براش رو نشون نمی ده !

به نظرتون مشکل از کجاست ؟

ویرایش شده توسط mehotkhan
لینک به ارسال

فایل در شاخه افزونه و نام فایل رو plugin_name-fa_ir.mo قرار دادید ؟

لینک به ارسال

یه سوال :

fa_IR

یا fa_ir ?

کدوم درسته ؟

+ هردو رو تست کردم ، جواب نمیده !

ویرایش شده توسط mehotkhan
لینک به ارسال

بعضی از افزونه ها با پسوند fa خالی کار می کنند مثل polldaddy

این افرونه کلاً فایل زبان نداره که

لینک به ارسال

بعضی از افزونه ها با پسوند fa خالی کار می کنند مثل polldaddy

این افرونه کلاً فایل زبان نداره که

باز هم کار نکرد ، خیلی عجیبه ها !

لینک به ارسال

آره ، با peedit رشته ها رو کشیدم بیرون ، از کد


__('string')

استفاده کرده

لینک به ارسال

مشکل رو حل کردم ، اول برای نشون دادن فایل ترجمه از کد زیر باید استفاده بشه :


function plugin_lan() {
load_plugin_textdomain( 'my_plugins', false, dirname( plugin_basename( __FILE__ ) ) );
}
add_action('plugins_loaded', 'plugins_lan');

سپس برای معرفی فایل های ترجمه شده از کد زیر استفاده میشه :


__('word','my_plugin'),

که مشکل افزونه ای که باهاش کار میکردم ، این بود که بخش دوم کد بالا رو قرار نداده بود ;)

موفق باشید.

لینک به ارسال
  • 2 سال بعد...

سلام

شرمنده این تاپیک زیر خاکی رو میارم بالا

توی ارسال قبلی #13 توی متن کد عبارت هایی وجود داره که بارنگ سبز مشخص شده یعنی:


mu_plugins
plugins_loaded
plugins_lan
word
my_plugin

امکان داره مشخصا بگین منظور از این عبارتها چی هست؟

ظاهرا فقط همین تاپیک حلال مشکل بنده هست

لینک به ارسال

با یه کم مراجعه به کدکس ورپرس میتونید متوجه همه بشید.

my_plugins اصطلاحاً دامین زبان هست (Language Domain) که کلیدیه برای شناسایی رشته‌هایی که در یه پلاگین یا قالب وجود داره. با استفاده از این کلید، شما میتونید به رشته‌ها دسترسی داشته باشین. در تابعی که وجود داره، ما داریم این کلید رو به وردپرس معرفی میکنیم.

plugins_loaded تگ یه هک هست که وقتی پلاگین‌ها لود شدند، اون هک اجرا بشه. الان در اون قسمت، فایل زبان بعد از اینکه پلاگین ها لود شدند، به وردپرس معرفی میشه.

plugins_lan اسم تابعی هست که هک شده.

word استرینگ پیشفرضی هست که در صورتی که ترجمه نشده بود، همین مورد نمایش داده میشه. همچنین از اون برای نوشتن استرینگ پیشفرض برای ترجمه استفاده میکنن.

موفق باشید.

لینک به ارسال

خیلی ازت ممنونم احسان جان خدا خیرت بده

ولی چکنم که زبون برنامه نویسی رو هنو خوب یاد نگرفتم

اجازه بده پس من هم یه بار تکرارش کنم ببین درست متوجه شدم:

  • my_plugins : به عنوان مثال "Ehs@n" یعنی همون شاخصه ای که در فایل های افزونه برای قابلیت ترجمه کردن افزونه در نظر گرفته شده مث __('Edite','Ehs@n')
  • plugins_loaded : این رو باهاش کار نداریم چون خودش یه هک هست.
  • plugins_lan : من این رو به add_lang تغییرش میدم.

اینم کدی که ویرایشش کردم:


function add_lang() {
load_plugin_textdomain( 'ehs@n', false, dirname( plugin_basename( __FILE__ ) ) , '/lang/');
}
add_action('plugins_loaded', 'add_lang');

خب الان این هک رو گذاشتم توی پلاگین ولی متن های صفحه پلاگین همش پرید و صفحه خود پلاگین سفید شد ولی پیشخوان و منو هست!

چیکار کنمش؟

لینک به ارسال

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

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

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

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

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

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

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

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

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