2017-09-17 69 views
0

我想用西班牙語和英語編寫所有的降價單元格,並且只有西班牙語單元格纔會顯示出來,如果選擇這種單元格作爲運行系統主要語言,或者可能是語言在頂部切換?有沒有一個jupyter擴展可以啓用它?或者有些工作?我還沒有找到任何東西。在Jupyter筆記本中支持多種人類語言

回答

0

你可以編寫自己的擴展,對細胞的標記工作。你可以使用標籤工具條(#View > Cell Toolbar > Tags)用#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文件,然後安裝並啓用它像任何前端延伸。