আপডেটের পরে প্লাগইন অনুবাদ কীভাবে রাখবেন?


9

http://wordpress.org/extend/plugins/bbpress/ bbpress 'ভাষা ফোল্ডারে (ডাব্লুপি-কন্টেন্ট / প্লাগইনস / বিবিপ্রেস / বিবিপি-ভাষা) সেই সতর্কতা রয়েছে:

/**
 * Do not put custom translations here. They will be deleted on bbPress updates.
 *
 * Keep custom bbPress translations in /wp-content/languages/
 */

আসলে এটি কোনও নতুন সমস্যা নয় এবং হ্যাঁ তারা ঠিক। আপনি যদি অ-ইংরাজী ভাষার সাথে ওয়ার্ডপ্রেস প্লাগইন ব্যবহার করেন তবে এটি বড় সমস্যা।

মূলত আমি বিবিপ্রেস অনুবাদ করেছি এবং .po এবং .mo ফাইল তৈরি করেছি। ফাইলগুলি যদি আমি তাদের স্বাভাবিক ডাব্লুপি-সামগ্রী / প্লাগইন / বিবিপ্রেস / বিবিপি-ভাষা ফোল্ডারে রাখি তবে তারা কাজ করছে। উপরোক্ত সতর্কতা হিসাবে বলা হয়েছে যে আপডেটের পরে মুছে ফেলা হবে। তবে সমস্যাটি হ'ল, আমি বিবিপ্রেসের পরামর্শ অনুসারে ডাব্লুপি-কন্টেন্ট / ভাষা / ফোল্ডারে রাখলে অনুবাদ কাজ করছে না transla

আমি মনে করি একটি হুক বা কিছু আছে যা আমি এটি সক্রিয় করতে পারি তবে এর সর্বোত্তম সমাধান কী? কেবলমাত্র আমি প্লাগইন ভাষার ফাইলগুলি ডাব্লুপি-সামগ্রী / ভাষা /গুলিতে রাখতে চাই


ঠিক আছে .. আমি বিবিপ্রেস কোডগুলি যাচাই করার পরে .. মনে হচ্ছে আমার / wp-content / languages ​​/ bbpress / ফাইলগুলিতে সরাসরি / wp-বিষয়বস্তু / ভাষায় রাখা উচিত নয় / এখন এটি বিবিপ্রেসের জন্য কাজ করে তবে প্রশ্নের উত্তর এখনও পাওয়া দরকার অন্যান্য প্লাগইনগুলির জন্য ইমো
alnsal কর্কমাজ

উত্তর:


3

আপনাকে বিবিপ্রেসের ভাষা ফাইলটিতে কলটি প্রতিস্থাপন করতে হবে।

এটি করার জন্য একটি ভাল জায়গা হ'ল আপনার সাধারণ ভাষা ডিরেক্টরিতে একটি ভাষা নির্দিষ্ট ফাইল। তুর্কিদের পক্ষে এটি সম্ভবত একটি ফাইল হবে tr_TR.php। এটি স্বয়ংক্রিয়ভাবে লোড হবে এবং কেবলমাত্র এটি আপনার ব্লগের ভাষার সাথে মেলে। এটি ওভাররাইট করা হবে না।

বিবিপ্রেস ফাংশনটি ব্যবহার করে না load_plugin_textdomain, এটি load_textdomainপরিবর্তে ব্যবহার করে। এখানে আপনি একটি ফিল্টার খুঁজে পেতে পারেন:

$mofile = apply_filters( 'load_textdomain_mofile', $mofile, $domain );

সুতরাং আপনার ভাষায় পিএইচপি ফাইলটিতে পথ পরিবর্তন করতে কেবল একটি ফিল্টার যুক্ত করুন:

function load_bbpress_tr_mofile( $mofile, $domain )
{
    if ( 'bbpress' == $domain )
    {
        // replace this. :)
        return 'FULL_PATH_TO_YOUR_FILE';
    }
    return $mofile;
}
add_filter( 'load_textdomain_mofile', 'load_bbpress_tr_mofile', 10, 2 );

মনে হচ্ছে একটি ত্রুটি আছে .. bbpress.trac.wordpress.org/ticket/1647 এটি খতিয়ে দেখছে .. আমি ডিফল্ট ভাষা ফোল্ডারটি wp-content / languages ​​/ ব্যবহার করব / তাই আপনার'FULL_PATH_TO_YOUR_FILE 'এর পরামর্শ কী?
alnsal কর্কমাজ

আপনার ভাষা ডিরেক্টরি ( WP_LANG_DIR) এবং আপনার মো-ফাইলের পথ।
ফুসিয়া

1
ভাল উত্তর. প্লাগইন বিকাশকারীদের জন্য দ্রষ্টব্য: load_plugin_textdomain()"init" ক্রিয়া চলাকালীন আপনার কলগুলি করুন, অন্যথায় আমরা "লোড_টেক্সটডমোইন_মোফাইল" ফিল্টারটি ঝুঁকতে পারি না। এরপরে খুব দেরী হয়ে যাবে।
জির্ট

2

আপনাকে যা করতে হবে তা হ'ল একটি সহজ প্লাগইন তৈরি করা যা ইনস্টল হওয়া প্লাগইনগুলির টেক্সট_ডোমেন পরিচালনা করে। আপনি যদি বিশ্বব্যাপী সমাধান না করতে চান তবে আপনার থিমটিতে আপনার ফাংশন.এফপি কোডটি যুক্ত করতে পারেন।

ধারণাটি হ'ল ওয়ার্ডপ্রেসটি কোথায় অনুবাদগুলি সন্ধান করতে হবে inst অভ্যন্তরীণভাবে সমস্ত প্লাগইনে এটি অনুরূপ কিছু ব্যবহার করে করা হয়

load_plugin_textdomain( 'regenerate-thumbnails', false, '/regenerate-thumbnails/localization' );

এটি আপনার ব্যবহার করবে এমন ফাংশন। আপনি এখানে দেখতে পাচ্ছেন , শেষ যুক্তিটি প্লাগইন পথের তুলনায় সেট করতে ব্যবহৃত হয়, যেখানে অনুবাদ ফাইলগুলি থাকে।

আপনি প্রতিটি প্লাগইন এর জন্য একটি লাইন রেখে তাদের ভাষা ফোল্ডারটি নিম্নরূপে পরিবর্তন করতে চাইলে আপনি যা করতে চান তা করতে পারেন।

load_plugin_textdomain('bbpress', false, '../../languages/bbpress');

এটি ওয়ার্ডপ্রেসকে নির্দেশ দেয় যে আপনার কাস্টম অনুবাদ ফাইলগুলি ফোল্ডারের পাশের ফোল্ডার থেকে লোড করতে pluginsযার ফোল্ডারের একটি ফোল্ডার bbpressরয়েছে যার অনুবাদ ফাইলগুলি রয়েছে প্রতিটি প্লাগইন যেমন ব্যবহার করে ঠিক একই নামকরণ ব্যবহার করে।

আপনার পদ্ধতি, যা সমস্ত প্লাগইনগুলির জন্য টেক্সটডমাইনগুলি নির্দেশ দেয়, initনিম্নলিখিত ধাপে চালানো উচিত

function set_myplugins_languages() {
     .... your code here.....
}
add_action('init', 'set_myplugins_languages');

(এটি কার্যকর মনে হলে এটিকে উত্তর হিসাবে চিহ্নিত করতে ভুলবেন না)


0

এটি কাজ করার জন্য আপনার ইতিমধ্যে WP_LANG_DIR এ ওয়ার্ডপ্রেস অনুবাদ ফাইল থাকা দরকার এবং সেই ভাষাতে বিশ্বব্যাপী স্থানীয় সেট থাকা দরকার। আপনি যদি লোকাল পরিবর্তন না করে বা ওয়ার্ডপ্রেসের মূল অনুবাদ ফাইল উপস্থিত না করে কেবল বিবিপ্রেসের জন্য অনুবাদগুলি অন্তর্ভুক্ত করেন তবে সেগুলি লোড করেও কিছুই অনুবাদ করবে না will

আপনি যদি একাই বিবিপ্রেসের জন্য লোকেলটি ওভাররাইড করতে চান তবে আপনাকে 'bbpress_locale' এ একটি ফিল্টার যুক্ত করতে হবে যা আপনাকে বিবিপ্রেস মো ফাইলকে ওভাররাইড করতে দেয়।

যদিও এটি সত্য যে বিবিপ্রেস ২.০ লোড_টেক্সটডমাইন () ফাংশনটি ব্যবহার করে, লোড_প্লাগিন_টেক্সটডোমাইন () যাইহোক লোড_টেক্সটডমাইন () এর জন্য কেবল একটি মোড়ক। বিবিপ্রেস ২.০ পদ্ধতিটি আরও দৃust় এবং গ্লোবাল ট্রান্সলেশন ফাইল প্লেসমেন্টের অনুমতি দেয়, তাই প্লাগইন আপডেটের সময় আপনি সেগুলি হারাবেন না।


-1

আমার ক্ষেত্রে প্লাগইনের জন্য স্থায়ী কাস্টম অনুবাদ তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি প্রয়োজন (এসিএফ প্লাগইন অনুবাদের উদাহরণ):

  1. wp-content/languages/plugins/ডিরেক্টরি তৈরি করুন
  2. কপি নির্বাচিত অনুবাদ ফাইল .poপ্লাগইন থেকে lang/ফোল্ডারের (অথবা অনুবাদের সঙ্গে অন্য কোন) করার জন্য তৈরি করা wp-content/languages/plugins/(থেকে যেমন lang/acf-pl_PL.poকরা wp-content/languages/plugins/acf-pl_PL.po)
  3. যেমন: পোয়েডিট বা .poফাইল সম্পাদনা করার জন্য অন্য কোনও প্রোগ্রামের সাহায্যে অনুবাদটি কাস্টমাইজ করুন এবং এরপরে উত্পন্ন .moএবং সংরক্ষণ করুন wp-content/languages/plugins/(যেমন wp-content/languages/plugins/acf-pl_PL.mo)

প্লাগইন আপডেটের পরেও অনুবাদটি সংরক্ষণ করা উচিত।

আমি নিশ্চিত না যে এই কৌশলটি সমস্ত প্লাগইনগুলির জন্য কাজ করবে কিনা তবে এটি অবশ্যই চেষ্টা করার মতো।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.