闪亮的应用程序:获取浏览器语言设置

age*_*nis 2 r internationalization shiny

我的问题比较简单。我正在构建一个 Shiny 应用程序,用户可以在其中使用按钮在预定义语言之间切换。但是,我想以文本中已显示的用户语言开始每个会话,那么有没有办法检索用户的浏览器或操作系统中定义的语言,例如作为返回字符变量的函数?

我看到这个网站上已经有很多关于这个主题的问题,但是除了 R/Shiny 之外还有其他计算语言,我不知道如何使它们适应 R。谢谢

amr*_*rrs 5

此答案基于SO 答案博客链接中的内容。代码流程:

一个普通的JavaScript代码获取浏览器语言使用上运行runjsshinyjs程序包(而不是这可能与运行tags$script过)。另请注意,浏览器语言值存储在一个 javascript 变量中language,然后该变量被传递回 R 并显示为文本。

jscode <- "var language =  window.navigator.userLanguage || window.navigator.language;
Shiny.onInputChange('mydata', language);
console.log(language);"
library(shiny); library(shinyjs)
shinyApp(
  ui = fluidPage(
    useShinyjs(),

    "This is your browser language",
    textOutput('your_lang')

  ),
  server = function(input, output,session) {
    runjs(jscode)
 output$your_lang <- renderPrint(input$mydata)
  }
)
Run Code Online (Sandbox Code Playgroud)

截屏:

在此处输入图片说明