asp.netアプリケーションにtinymceテキストエディットを使用しています。言語パックを追加しました。テキストエディタの言語パックをプログラムで設定します。また、言語パックバーを表示状態から非表示にします。
例:私はプログラムでテキスト編集者の言語を設定したいのですが、ヒンディー語です。
ユーザーがWebフォームの翻訳ボタンをクリックするたびに、この文字列変数を初期化しました。次に、プログラムでtinymceエディターの言語を設定します。
string lang = "Hindi";
ptp.js
function LoadTypePad()
{
// Initialize pad
tinyMCE.init({
// General options
mode : "textareas",
theme : "advanced",
skin : "o2k7",
skin_variant : "silver",
plugins : "safari,style,table,advhr,advimage,advlink,inlinepopups,insertdatetime,preview,media,searchreplace,print,paste,fullscreen,indicime,aksharspellchecker",
// Theme options
theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontsizeselect,fontselect,aksharspellchecker,indicime, indicimehelp",
theme_advanced_buttons2 : "selectall,cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,media,advhr,|,print",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
spellchecker_rpc_url:"http://service.vishalon.net/spellchecker.aspx",
// Example content CSS (should be your site CSS)
content_css : "css/content.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
width : "100%",
init_instance_callback : "afterInit"
});
}
function showPleaseWait()
{
var mainMessage = document.getElementById("message").innerHTML;
document.getElementById("message").innerHTML = pleaseWait;
pleaseWait = mainMessage;
}
// This function finds absolute position of the element in screen and returns array.
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return [curleft,curtop];
}
}
// id= outer most id for show/hide. baseid = reference id for pointer
function showPopup(id, baseid)
{
toggle_menu(id);
var base = document.getElementById(baseid);
var l = findPos(base);
var obj = document.getElementById(id + 'content');
var im = document.getElementById(id + 'img');
var left = im.src.indexOf('left.gif') > 0;
obj.style.top = (l[1] - obj.offsetHeight - 20) + "px";
obj.style.left = (l[0] + (base.offsetWidth/2) - (left?obj.offsetWidth:0)) + "px";
l = findPos(obj);
im.style.top = (l[1] + obj.offsetHeight - 1) + "px";
im.style.left = (l[0] + (left?obj.offsetWidth - 26:0)) + "px";
}
function closePopup()
{
// hide popup
var elem = document.getElementById("step1");
elem.style.display = "none";
elem = document.getElementById("step2");
elem.style.display = "none";
elem = document.getElementById("step3");
elem.style.display = "none";
}
// Once tinymce is fully loaded
function afterInit()
{
// Find search string from referral
var term = document.referrer;
var re = /bengali|gujarati|gujrati|hindi|marathi|devnagari|devanagari|punjabi|gurmukhi|kannada|malayalam|tamil|telugu|thelugu|thamil/gi ;
var m = re.exec(term);
var result ='';
if (m != null && m.length > 0)
result = "<strong>" + m[0] + "</strong>";
else
result = "your favourite Indic Script";
// Create popup
CreatePopup("step1", "Step 1", "Click here to erase existing contents", "right");
CreatePopup("step2", "Step 2", "Select " + result + " from this dropdown list and start typing.", "left");
CreatePopup("step3", "Step 3", "Click here to get a help for typing once you selected script in Step 2", "right");
// Restore the message from please wait to spell checker
document.getElementById("message").innerHTML = "Now Akshar Spell Checker for Gujarati is available!!! Click on <img src=\"tiny_mce/plugins/aksharspellchecker/img/aksharspellchecker.gif\"> to check Gujarati spelling";
// Initialize for google search
pph = new PramukhPhoneticHandler();
pph.convertToIndicIME("q");
pph.onScriptChange("q", indicChange);
// Open up popups
showPopup("step1","elm1_newdocument");
showPopup("step2","elm1_indicime");
showPopup("step3","elm1_indicimehelp");
// Close popup after xx seconds.
setTimeout("closePopup();",15000);
}
function toggle_menu(id)
{
var elem = document.getElementById(id);
elem.style.display = elem.style.display=="none"? "":"none";
}
function CheckNewVersion()
{
var JSONRequest = tinymce.util.JSONRequest;
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
// do nothing
}
JSONRequest.sendRPC({
url : "http://service.vishalon.net/pramukhtypepadmessage.aspx?v=2.5.00",
method : "",
params : "",
type: "GET",
success : function(r){
var message = r.substring(r.indexOf(",")+1);
if (message != "")
document.getElementById("message").innerHTML = "<img src='img/info.jpg' >" + message + "<br><br>";
},
error : function(e, x) {
// do nothing
}
});
}
function indicChange(id, lang)
{
var s = document.getElementById('language');
s.value = lang;
if (lang == null || lang == "")
lang = 'english';
pph.setScript(id, lang);
}
function CreatePopup(id, title,content, dir)
{
var holder = document.getElementById("plholder");
holder.innerHTML += "<div id='" +id + "' style='display:none;'>"+
"<div class='popupbody' id='" +id + "content'>" +
"<div style='float:right;'><img src='img/close.gif' style='cursor:pointer;cursor:hand;' onclick='toggle_menu(\"" + id + "\");'/></div>"+
"<div><strong>" + title + "</strong></div>"+
"<div style='clear:both'></div>"+
"<div>" + content + "</div>"+
"</div>"+
"<img src='img/" + dir + ".gif' id='" + id + "img' style='position:absolute;'/>"+
"</div>";
}
var pph, pleaseWait = "Please wait while Pramukh Type Pad is loading... <img src='img/progress.gif' /> (Loading problem??? Get <a href=\"pramukhlibex.htm\">Simple Pramukh Type Pad</a> )";