谷歌翻译按钮 R Shiny

时间:2021-04-22 19:15:35

标签: r shiny

我正在尝试将 Google 翻译工具栏添加到 Shiny 应用程序中,但我似乎无法利用 https://www.w3schools.com/howto/howto_google_translate.asp 中的代码获得正确的语法。

library(shiny)

ui <- fluidPage(
    # tags$head(
        tags$div(id="google_translate_element"),
        HTML("<script type='text/javascript'>, function googleTranslateElementInit() {
  new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');} </script>" ), 
        HTML("<script type='text/javascript', src='//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'></script>"),
    # ),
    HTML("<html lang='en'></html>"),
    titlePanel("Old Faithful Geyser Data"),
    sidebarLayout(
        sidebarPanel(
            sliderInput("bins",
                        "Number of bins:",
                        min = 1,
                        max = 50,
                        value = 30)
        ),
        mainPanel(
           plotOutput("distPlot")
        )
    )
)
server <- function(input, output) {

    output$distPlot <- renderPlot({
        x    <- faithful[, 2]
        bins <- seq(min(x), max(x), length.out = input$bins + 1)
        hist(x, breaks = bins, col = 'darkgray', border = 'white')
    })
}

shinyApp(ui = ui, server = server)

我尝试用 tags$head() 包装,并尝试从项目的 www 文件夹中的 .js 文件中调用 javascript。

感谢任何支持。谢谢!

1 个答案:

答案 0 :(得分:2)

好主意。这似乎有效。

library(shiny)

ui <- fluidPage(
    HTML("<!DOCTYPE html><html lang='en-US'><body><h1>My Web Page</h1><p>Hello everybody!</p><p>Translate this page:</p><div id='google_translate_element'></div><script type='text/javascript'>function googleTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');}</script><script type='text/javascript' src='//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'></script></body></html>"),
    titlePanel("Old Faithful Geyser Data"),
    sidebarPanel(
        sliderInput("bins",
                    "Number of bins:",
                    min = 1,
                    max = 50,
                    value = 30
        )
    ),
    mainPanel(
        plotOutput("distPlot")
    )
)
server <- function(input, output) {
    
    output$distPlot <- renderPlot({
        x    <- faithful[, 2]
        bins <- seq(min(x), max(x), length.out = input$bins + 1)
        hist(x, breaks = bins, col = 'darkgray', border = 'white')
    })
}

shinyApp(ui = ui, server = server)
相关问题