http://www.qianqin.de/qtranslate/
আপনার যা প্রয়োজন ...
আমি সম্পাদনা করুন - মন্তব্য করার পরে। প্রথম - যারা ডাউনভোটস টরেন্টে অবদান রেখেছিল তাদের জন্য ধন্যবাদ। (যখন কেউ প্রায়শই পর্যাপ্ত পরিদর্শন করেন না তখন এটি ঘটে: -))
এখন - স্যুইচটি পরিচালনা করে এমন ফাংশনটি Qtranslate-core হয়। (80 বা তার কম লাইনে শুরু হয় - আপনি যে সংস্করণটি চান তার উপর নির্ভর করে))
যেহেতু আপনি একটি নট ওওপি কোডটি সন্ধান করতে পারেন না এবং আমি এখন আর কিছুই করার নেই - সংশ্লেষিত করতে আমার 10 মিনিট সময় লেগেছে, প্যারাফ্রেজটি আপনার জন্য আর একটি অ-ওওপি কোডের সাথে নন-ওপিকে সংকলন করে।
(দুঃখিত, - এখানে প্রাচীনতম কুল)
ধরে নিচ্ছি যে আমি প্রশ্নটি && ধরে নিয়েছি আপনি কোডটি অ্যাডমিনের জন্য হতে চান এবং ধরে নিচ্ছি এবং আপনি যদি চান এবং কোডটি অনুকূল নয় তবে আপনি বুঝতে পেরেছেন যে আপনি কীভাবে সামনের প্রান্তে পোর্ট করবেন তা ধরে নিবেন:
<?php
/*
Plugin Name: k99 language switcher
Plugin URI: http://www.krembo99.com
Description: Admin Language switcher proof of concept only - do not use in production.
Version: 0.0.0.0.0.0.0.1
Author: Krembo99
Author URI: http://www.krembo99.com
*/
?>
<?php function k99_add_language_menu() {
// k99_load_ajax_display_functions();
?>
<div class="mgmb_help_setting">
<?php _e('Language:','your_text_domain'); ?>
<select name="mgmb_language_setting_help" id="mgmb_language_setting_help" onChange="mgmb_set_language_cookies(this.value);" >
<option value="en_US" <?php if($_COOKIE['k99_userLang']=="en_US"){echo "selected";} ?>><?php _e('English','your_text_domain');?></option>
<option value="de_DE" <?php if($_COOKIE['k99_userLang']=="de_DE"){echo "selected";} ?>><?php _e('German','your_text_domain');?></option>
<option value="zh_CN" <?php if($_COOKIE['k99_userLang']=="zh_CN"){echo "selected";} ?>><?php _e('Chinese','your_text_domain');?></option>
</select>
</div>
<?php
}
// Now we set that function up to execute when the help action is called
add_filter('contextual_help', 'k99_add_language_menu');
// I guess this is your mysterious "browser stuff"
function k99_language_change($lang){
global $locale;
// wp_cache_set( "language", $lang, 'options' );
if ( isset($_COOKIE['k99_userLang'])) {
$lang = $_COOKIE['k99_userLang'];
}
define( 'WPLANG', $lang );
if($locale!= $lang) {
$locale = $lang;
load_plugin_textdomain('your_text_domain', false, dirname( plugin_basename(__FILE__) ) . '/lang'); // sample use for plugins textdomain
load_plugin_textdomain('your_text_domain2', false, dirname( plugin_basename(__FILE__) ) . '/lang');
load_plugin_textdomain('your_text_domain3', false, dirname( plugin_basename(__FILE__) ) . '/lang');
}
return $locale;
}
add_filter('locale', 'k99_language_change',99);
////////// +++++++++++++++ START COOKIES CREATION +++++++++++++++//////////////////
// Javascript function set the language cookies
// access external
// @param lang - language code
// @return NULL
// or maybe this is the OP´s mysterious "browser stuff" ??
function mgmb_print_script() {
?>
<script type="text/javascript" >
function mgmb_set_language_cookies(lang){
var Then = new Date();
Then.setTime(Then.getTime() + 10000*60*60*1000 ); //set cookie expire to 10000 hours cookies (hour*minute*seconds*1000)
document.cookie = "k99_userLang="+lang+";expires="+ Then.toGMTString();
window.location.reload();
}
</script>
<?php
}
add_action('admin_print_scripts', 'mgmb_print_script'); // this is not the right way to do .. but no time now.
?>
মন্তব্য :
1 - এটি 10 মিনিটে নির্মিত হয়েছিল। বিমানবন্দরে থাকাকালীন স্থানীয় মেশিনে আমি এটি বলার কারণটি হ'ল আমার এখানে একমাত্র প্রস্তুত উপলভ্য ওয়ার্ডপ্রেস ইনস্টলেশনটি বেশ পুরানো। (২.৯ আমার মনে হয়)।
এর অর্থ সম্ভবত ভাষা মেনুটি প্রাসঙ্গিক সহায়তা ডিভাইসের অধীনে উপস্থিত হবে, সম্প্রতি একটি নতুন ডিভি কাঠামো চালু হয়েছিল (ট্যাব সহ) - তবে এটি কার্যকর হওয়া উচিত। (আমি সময় পেলে এটিতে ফিরে আসার প্রতিশ্রুতি দিই)
আমার যদি আরও সময় থাকে (এবং এখানে একটি নতুন ওয়ার্ডপ্রেস কোড) আমি সম্ভবত এটি নতুন অ্যাডমিন-বারের সাথে একীভূত add_action( 'admin_bar_menu', 'k99_add_language_menu_2', 1000 );
করব (আমি ইতিমধ্যে এটিতে ফিরে আসার প্রতিশ্রুতি দিয়েছি)
2 - আপনার ডাব্লুপি-কনটেন্টে "ভাষা" ফোল্ডারের ভিতরে তালিকাভুক্ত ভাষা ফাইল থাকা উচিত (আরও ভাল ??) বা ডাব্লুপি-অন্তর্ভুক্ত। এই পয়েন্টটি সম্পর্কে - কোডটি কেবল ধারণার প্রমাণ - এবং অবশ্যই যদি কারও বেশি সময় থাকে তবে মেনুটি একটি গতিশীল উপায়ে তৈরি করা উচিত এবং এখানে করা পছন্দ না করে।
3 - কনফিগারেশনে আপনার ডাব্লুপিএলএনগ খালি থাকতে হবে। আমি নিশ্চিত নই যে কোনও ভাষা ইতিমধ্যে সেট করা থাকলে এটি নতুন ডাব্লুপি সংস্করণগুলিতে কাজ করবে।
4 - এটি একটি সহজ সংশ্লেষযুক্ত এবং প্যারাফ্রেসড প্রমাণ যা qtranslate কোডে দেখা হয়েছিল তার উপর ভিত্তি করে তৈরি করা হয়েছে (এটিও পুরানো সংস্করণ) - সুতরাং বেশিরভাগ জিনিস "দ্রুত" উপায়ে সম্পন্ন হয়, অগত্যা "ডান" উপায়ে নয় (জেএস যুক্ত করার মতো) , কোনও ডেডিকেটেড পাঠ্য ডোমেন ইত্যাদি নেই))।
দ্বিতীয় সম্পাদনা
আজ কেউ ভাগ্যবান! (ফ্লাইট বিলম্ব )
যেহেতু আপনি পদ্ধতির জন্য "ধারণা" খুঁজছিলেন, তাই এখানে অন্য একটি বিখ্যাত।
এটি কোনও প্লাগইন, বা অন্য কোনও অ-একচেটিয়া পরিবেশে খাপ খায় না তবে এটি "ব্রাউজার স্টাফগুলি" কীভাবে পরিচালনা করতে পারে তার জন্য আপনাকে অন্য দিকনির্দেশ দিতে পারে।
এটি একজনকে জিইটি: <a href="index.php?lang=de">German</a>
বা এর মতো ভাষা পেতে অনুমতি দেবে<a href="whatever.php?lang=ml">my Language</a>
ব্যবহার করতে, আপনি একটি কোড তৈরি করতে পারেন (আসুন একে ডাব্লুপি-ল্যাঙ্গসুইচ.এফপি কল করুন)
session_start();
if ( isset( $_GET['lang'] ) ) {
$_SESSION['WPLANG'] = $_GET['lang'];
define ('WPLANG', $_SESSION[WPLANG]);
} else {
if(isset($_SESSION['WPLANG'])) {
define ('WPLANG', $_SESSION['WPLANG']);
$_GET['lang'] = $_SESSION['WPLANG'];
} else {
if ( isset( $_SERVER["HTTP_ACCEPT_LANGUAGE"] ) ) {
$languages = strtolower( $_SERVER["HTTP_ACCEPT_LANGUAGE"] );
$languages = explode( ",", $languages );
$_SESSION['WPLANG'] = $languages[0];
$_SESSION['WPLANG'] = str_replace("-", "_", $_SESSION['WPLANG']);
$_GET['lang'] = substr($_SESSION['WPLANG'],0,2);
define ('WPLANG', $_SESSION[WPLANG]);
} else {
define ('WPLANG', '');
}
}
}
এখন, ডাব্লুপি-কনফিগারেশনে ডাব্লুপিএলএএন ধ্রুবকের ঠিক আগে, আমাদের আমাদের কোড অন্তর্ভুক্ত করতে হবে।
require_once(dirname(__FILE__).'/wp-langswitch.php');
define ('WPLANG', '');
এখন - স্পষ্টতই ভাষাগুলি সংরক্ষণের জন্য কিছু কুকিজ যুক্ত করা ভাল better
তৃতীয় সম্পাদনা
আমি পরে এটিতে ফিরে আসার প্রতিশ্রুতি দিয়েছিলাম - এখানে (কীভাবে খুব অ-সঠিক এবং আদিম উপায়ে) অ্যাডমিন-বারের অভ্যন্তরে সংহত করা যায় (প্রাসঙ্গিক-সহায়তা-মেনু পরিবর্তে)
function k99_add_language_menu_bar() {
global $wp_admin_bar, $wpdb;
if ( !is_super_admin() || !is_admin_bar_showing() )
return;
// I am sure you can find a way alone to construct array from reading folder . If not , comment and I will update again.
if($_COOKIE['k99_userLang']=="en_US"){$sel==$_COOKIE['k99_userLang'];}
if($_COOKIE['k99_userLang']=="de_DE"){$sel==$_COOKIE['k99_userLang'];}
if($_COOKIE['k99_userLang']=="zh_CN"){$sel==$_COOKIE['k99_userLang'];}
$k99_lang = '';
$k99_lang .= '<select name="mgmb_language_setting_help" id="mgmb_language_setting_help" onChange="mgmb_set_language_cookies(this.value);" >';
$k99_lang .= '<option value="en_US" >English</option>';
$k99_lang .= '<option value="de_DE" >German</option>';
$k99_lang .= '<option value="zh_CN" >Chinese</option></select>';
/* Add the main siteadmin menu item */
$wp_admin_bar->add_menu( array( 'id' => 'Language', 'title' => __( 'language', 'your_text_domain3' ), 'href' => FALSE ) );
$wp_admin_bar->add_menu( array( 'parent' => 'Language', 'title' => $k99_lang, 'href' => FALSE ) );
}
add_action( 'admin_bar_menu', 'k99_add_language_menu_bar', 999 );
পুরানো কোডটিতে কেবল এই ফাংশনটি (বা যুক্ত) প্রতিস্থাপন করুন (মূল নন - ওওপি প্লাগ-ইন)।
যেমনটি আমি বলেছিলাম, স্থানীয়ভাবে এখানে আমার কাছে নতুন ওয়ার্ডপ্রেস ইনস্টলেশন নেই যা অ্যাডমিন-বারের বৈশিষ্ট্যযুক্ত - তবে এটি কার্যকর হওয়া উচিত।
(এবং তারপরে আবার এটি কার্যকর নাও হতে পারে ... তবে আমি নিশ্চিত যে আপনি যদি সত্যিই চান তবে এটি ঠিক করতে পারতেন - এমনকি ভেবেও পেলেন যে এটি ওওপি নয়) :-)
এখন চালাতে হবে। আশা করি এটি কোনওভাবে সাহায্য করবে
চতুর্থটি সম্পাদনা করুন - প্রশাসক মেনু বারের জন্য তৃতীয় সম্পাদনাটি ওয়ার্কিং ভারিয়নে পরিবর্তিত হয়েছে (কমপক্ষে আমার ডাব্লুপিপি 3.4 এ)
যেহেতু আমার কাছে 3.4-এর কোনও কার্যকরী ইনস্টল নেই - এবং এখন আমি ফিরে এসেছি - আমি সম্পাদনা III সমাধানটি সম্পাদনা করেছি - এবং এটি আমার পক্ষে কাজ করে।
Upvotes সম্পর্কে, আমি কম যত্ন নিতে পারে না। এবং আমার কোনও "উদ্বোধনী" দরকার নেই (সে যাই হোক না কেন ..) এটি কেবল অনুশীলনের খাতিরেই হয়েছিল যা আপনি এটি কিউ ট্রান্সলেটের লেখককে দিয়েছিলেন। :-) যদিও এটি ওওপি নয় - এটি একটি জেনিয়াস প্লাগইন যা অনেক ক্ষেত্রেই শিখতে হবে। এই প্লাগইনটি প্রকাশের "কখন" বিবেচনা করা, এটি এমনকি আশ্চর্যজনক। নন ওওপি কোড পড়ার অবর্ণনীয় প্রচেষ্টার মূল্য - এটি না হলেও - ওওপি। এমনকি যদি এটি সঠিকভাবে ইনডেন্ট না হয় (ভাল godশ্বর!)।
WPLANG
ধ্রুবকটির নতুন সংজ্ঞা দেওয়া একটি বিকল্প হতে পারে। আমি বহুভাষিক সামগ্রী সহ এমন দুটি সাইটে যেখানে বহুভাষা প্লাগইন ইউআই অনুবাদটি ট্রিগার করতে ব্যর্থ। যদি এটিএজএক্স / জেএসএন সমাধান হতে হয় তবে আমি কীভাবে সহায়তা করব তা জানতাম না।