2017-12-11 15 views
0

私の質問はかなり簡単です。私はユーザーがボタンであらかじめ定義された言語を切り替えることができるShinyアプリケーションを構築しています。 しかし、テキストに既に表示されているユーザーの言語で各セッションを開始したいので、の言語を取得するには、文字変数を返す関数のように、ブラウザまたはオペレーティングシステムで定義された言語を取得します?光沢のあるアプリケーション:ブラウザの言語設定を取得

私はこのテーマについて多くの質問はこのサイトにすでにあったことを見たが、そこにR /シャイニー以外のコンピューティングの言語のためのものであると、私はこの答えはどのようにR.にそれらを適応させることに感謝

+0

ここhttps://github.com/chrislad/multilingualShinyApp – agenis

答えて

3

見当がつかないSO answerblog linkの内容に基づいています。コードフロー:

runjsshinyjsパッケージを使用してブラウザ言語を取得するためのプレーンなjavascriptコードが実行されます(代わりにtags$scriptでも実行可能)。また、ブラウザの言語値はjavacript変数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) 
    } 
) 

スクリーンショット:私はChrisphe Ladroueのコードの一部を使用しています私のアプリの多言語の部分については

enter image description here

+0

感謝ロット、それはうまく動作します。このjavascriptの仕組みを説明できますか?新しい入力変数を生成しますか? – agenis

+1

@agenis私はいくつかの説明を追加しましたが、それが動作すれば右にマークしてください。ありがとう。 – amrrs

+1

ありがとう、私の友人! – agenis

関連する問題