2017-09-17 10 views
0

私はスペイン語と英語の両方のマークダウンセルを書きたいと思っています。実行システムのメイン言語、またはおそらく言語として選択されている場合、上に切り替えますか?これを可能にする拡張子がありますか?またはいくつかの回避策ですか?私はまだ何かを見つけることができませんでした。Jupyterのノートブックで複数の人間言語をサポートする

答えて

0

私の知る限り、最も近い国際化作業は、ノートブックの最新リリースではi8n impelemenation5.1.0)です。

は、詳細については、以下のpull requestREADMEを参照してください。

0

あなたはセルタグ上で動作独自の拡張を書くことができます。あなたは英語のセルに#spanishでタグのツールバー(View > Cell Toolbar > Tags)を使ってタグを付けることができます。

ここでは、目的の言語のドロップダウンメニューを追加するコード例を示します英語とスペイン語がコード化されていますが、拡張可能です)、Jupyterコマンド・パレットにアクションを登録します。これは、あなたの特定の言語タグを持たないタグを持つすべてのセルを隠すので、あなたのニーズに合わせてこれを洗練したいかもしれません。それは大丈夫だ場合であるとして、またはそれを残す:)

define([ 
    'base/js/namespace' 
], function(
    Jupyter 
) { 
    console.log("Language switcher working!"); 
    var show_selected_language = function(language) { 
     language = String.toLowerCase(language); 
     console.log("switching languages..."); 
     // Find all cells with specific language 
     var cells = Jupyter.notebook.get_cells(); 

     cells.forEach(function(cell) { 
      if(cell.hasOwnProperty("metadata") && cell.metadata.hasOwnProperty("tags") && cell.metadata.tags.indexOf(language) !== -1) { 
       cell.element.show('slow'); 
      } else if (cell.hasOwnProperty("metadata") && cell.metadata.hasOwnProperty("tags") && cell.metadata.tags.indexOf(language) === -1) { 
       cell.element.hide('slow'); 
      } 
     }); 
    }; 

    var load_ipython_extension = function() {   
     var lang_dropdown = $("<div/>").addClass("dropdown btn-group").attr("id","lang-menu"); 
     var lang_button = $("<button/>") 
         .addClass("btn btn-default dropdown-toggle") 
         .attr("type","button") 
         .attr("data-toggle","dropdown") 
         .attr("title", "Switch Language") 
         .text("Lang"); 
     var lang_caret = $("<span>").addClass("caret"); 
     lang_button.append(lang_caret); 

     var lang_dropdown_ul = $("<ul/>") 
      .attr("id","lang_menu") 
      .addClass("dropdown-menu"); 

     lang_dropdown.append(lang_button).append(lang_dropdown_ul); 

     $(Jupyter.toolbar.selector).append(lang_dropdown); 

     function add_new_item(menu, display_text, id) { 
      menu.append($("<li/>").attr("id",id) 
               .append($("<a/>") 
                 .attr("href","#") 
                 .text(display_text)) 
                 .click(function() { show_selected_language(display_text);})); 
     } 
     add_new_item(lang_dropdown_ul, "English", "switch-lang-english"); 
     add_new_item(lang_dropdown_ul, "Spanish", "switch-lang-spanish"); 


     var english_action = { 
      help: "Switch language to English", 
      help_index: "a", 
      icon: "fa-language", 
      handler : function() { show_selected_language("english");}, 
     }; 

     var english_prefix = "language_switcher"; 
     var english_action_name = "switch-lang-english"; 

     Jupyter.actions.register(english_action, english_action_name, english_prefix); 

     var spanish_action = { 
      help: "Switch language to Spanish", 
      help_index: "a", 
      icon: "fa-language", 
      handler : function() { show_selected_language("spanish");}, 
     }; 

     var spanish_prefix = "language_switcher"; 
     var spanish_action_name = "switch-lang-spanish"; 


     Jupyter.actions.register(spanish_action, spanish_action_name, spanish_prefix); 
    }; 

    return { 
     load_ipython_extension : load_ipython_extension 
    }; 
}); 

をJavaScriptのファイルとして保存し、任意のフロントエンドの拡張機能のようにそれをインストールして有効にしてください。

関連する問題