यदि आप jquery & jquery ब्राउज़र भाषा के साथ अपना खुद का रोल करना चाहते हैं, तो यह आपको जा सकता है।
टैग सभी अनुवाद पाठ के class="i18n"
साथ तत्व होते हैं, और jQuery, jQuery BrowserLanguage, और अपने i18n स्क्रिप्ट शामिल हैं।
। अंतर्राष्ट्रीयकरण जावास्क्रिप्ट
- यह अपने सर्वर से ajax के माध्यम से अनुवाद को स्वीकार करने की जरूरत है, जैसे:
var i18n = {};
i18n.bank = new Array();
i18n.t = function (text, tl=$.browserLanguage) {
var r = false;
$.ajax({
url: "/i18n_t.php?type=request&from="+ escape(text) +"&tl="+ tl,
success: function(){ i18n.bank[text] = this; r = true; }
});
return r;
};
। php i18n अनुवाद सेवा
- अब हम अनुवाद सेवा, और उन्हें
डेटाबेस तालिकाओं का एक समूह, प्रत्येक भाषा के लिए एक तरह दिखेगा स्वीकार करना होगा।
// SCHEMA for each language:
CREATE TABLE `en`
(
`id` INT PRIMARY KEY AUTO INCREMENT NOT NULL,
`from` VARCHAR(500) NOT NULL,
`to` VARCHAR(500) NOT NULL
)
PHP को कुछ कनेक्शन और डीबी मैनिपुलेशन की आवश्यकता होगी ..अब के लिए ऐसा कर सकते हैं:
//Connect to the database
$connection = mysql_connect('host (usually localhost)', 'mysql_username' , 'mysql_password');
$selection = mysql_select_db('mysql_database', $connection);
function table_exists($tablename, $database = false) {
if(!$database) {
$res = mysql_query("SELECT DATABASE()");
$database = mysql_result($res, 0);
}
$res = mysql_query("SELECT COUNT(*) AS count FROM information_schema.tables WHERE table_schema = '$database' AND table_name = '$tablename'
");
return mysql_result($res, 0) == 1;
}
कोड बस है:
<?php
// .. database stuff from above goes here ..
$type=$_GET["type"];
$from=$_GET["from"];
$to=$_GET["to"];
$tl=$_GET["tl"];
if (! table_exists($tl)) {
...
}
if ($type == "request") { // might want to set $tl="en" when ! table_exists($tl)
$find = mysql_query("SELECT to FROM `'$tl'` WHERE from='$from'");
$row = mysql_fetch_array($find);
echo $row['to'];
} elsif ($type == "suggest") {
$find = mysql_query("SELECT COUNT(*) AS count FROM `'$tl'` WHERE from='$from'");
if (!(mysql_result($res, 0)) == 0) {
$ins = mysql_query("INSERT INTO `'$tl'` (from, to) VALUES ('$from','$to')");
}
}
?>
। पेज अनुवाद यांत्रिकी
- अंत में हम उन्हें एक साथ अपने वेबपेजों में कुछ और jQuery के साथ टाई कर सकते हैं:
i18n.suggest = function (from) { // post user translation to our php
$.ajax({
url: "/i18n_t.php?type=suggest&from='+from+'&to="+ escape($('#i18n_s').contents()) +"&tl="+ $.browserLanguage,
success: function(){ $('#i18n_t_div').html('<em>Thanks!</em>').delay(334).fadeOut().remove(); }
});
};
$(document).ready(function() {
i18n.t("submit");
i18n.t("Thanks!");
$('.i18n').click(function(event) { //add an onClick event for all i18n spans
$('#i18n_t_div').remove;
$(this).parent().append(
'<div id="i18n_t_div"><form class="i18n_t_form">
<input type="text" id="i18n_s" name="suggestion" value="+$(this).contents()+" />
<input type="button" value="'+ i18n.bank[ "submit" ] +'" onclick="i18n.suggest('+$(this).contents()+')" />
</form></div>'
);
}).each(function(){
var c = $(this).contents(); //now load initial translations for browser language for all the internationalized content on the page
if (i18n.t(c)){
$(this).html(i18n.bank[c]);
}
});
});
मन आप मैं पर इस परीक्षण करने के लिए एक सर्वर की जरूरत नहीं है ... और मैं वास्तव में php कोड नहीं है। : डी यह कुछ डीबगिंग लेगा लेकिन मचान सही होना चाहिए।
यह एक अच्छा सवाल है और शायद अधिक से अधिक प्रासंगिक हो जाएगा क्योंकि वेबसाइटें अधिक से अधिक वैश्विक हो रही हैं! – Ryan