4

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' /> &nbsp;&nbsp;(Loading problem??? Get <a href=\"pramukhlibex.htm\">Simple Pramukh Type Pad</a> )";
4

1 に答える 1

4

言語パックをダウンロードして解凍する必要があります。
次に、すべてのjsファイルをtinymceフォルダーの対応するフォルダーに配置する必要があります。言語
も 指定する必要があります。TinyMCE --jQueryプラグインを 使用している場合は、次のようにする必要があります。

// Initializes all textareas with the tinymce class
$(document).ready(function() {
   $('textarea.tinymce').tinymce({
      script_url : '../js/tinymce/jscripts/tiny_mce/tiny_mce.js',
      theme : "advanced",
      language: "hi",
      ...
   });
});

テキスト領域からtinyMCEを削除したい場合(そして言語をリセットしたい場合は削除する必要があると思います)、次のコードを使用できます。

tinyMCE.execCommand('mceRemoveControl', false, 'mycontrol_id');

ここで指定されているように。

同じコードを使用して再作成できます。すべてを関数でラップし、言語パラメーターを渡すことができます。

function setup(language) {
   tinyMCE.init({
      mode : "textareas",
      theme : "advanced",
      language: language,
      plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
      theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
      theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
      theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
      theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
      theme_advanced_toolbar_location : "top",
      theme_advanced_toolbar_align : "left",
      theme_advanced_statusbar_location : "bottom",
      theme_advanced_resizing : true
   });
}

ツールバーからボタンを削除する場合は、次の行で作業する必要があります。

theme_advanced_buttons1 
theme_advanced_buttons2
...

不要なものを削除します。ここ
にすべてのボタンとプラグインのリストがあります。 独自のボタンを追加したい場合は、ここでサンプルを見つけることができます。

更新

独自のプラグインを使用したので、プラグインセクションで定義したと思います。

tinyMCE.init({
    mode : "textareas",
    theme : "advanced",
    language: 'hi',
    plugins : "myPlugin, pagebreak ... ",
    theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
    theme_advanced_buttons2 : "myPlugin",
    ...
    });

表示したくない場合は、theme_advanced_buttons2から削除してください。

于 2012-06-07T11:52:58.497 に答える