不出现包含重音的字符串
Strings containing an accent do not appear
我目前正在构建一个需要翻译成不同语言的闪亮应用程序。我有整个结构,但我正在努力获取 "Validació" 等包含重音符号的值。
我遵循的结构如下:
- 我有一本字典,它只是一个带有翻译的 csv 文件,其中
有一把钥匙,然后是每种语言。这本词典的结构如下:
key, cat, en
"selecció", "selecció", "Selection"
"Diferències","Diferències", "Differences"
"Descarregar","Descarregar", "Download"
"Diagnòstics","Diagnòstics", "Diagnoses"
- 我有一个脚本,一旦 dictionary.csv 被修改,就会生成一个 .bin 文件,稍后将在代码中加载。
- 在 strings.R 中,我拥有将出现在代码中的所有字符串,并且我使用一个函数将当前语言翻译成我想要的语言。函数如下:
代码:
tr <- function(text){
sapply(text, function(s) translation[[s]][["cat"]], USE.NAMES=F)
}
当我翻译某些东西时,因为我在另一个文件中进行翻译,所以我将其分配给另一个变量,例如:
str_seleccio <- tr('Selecció)
- 我面临的问题是,例如,如果我们翻译
'Selecció'
将根据此函数 tr('Selecció')
并提供正确答案,如果我在 RStudio 终端中执行它但是当我在 Shiny 应用程序中执行此操作,在我看来是 NULL
。如果我翻译的单词没有重音符号,例如 "Hello",tr("Hello")
会在 Shiny 应用程序中为我提供正确答案,我可以通过代码看到它。
所以主要是 tr(word) 获得了正确的值,但是在分配它时 "loses the value" 所以我有点不知道该怎么做。
我知道您可以执行类似 Encoding(str_seleccio) <- "UTF-8"
的操作,但在这种情况下不起作用。如果是简单的单词,它曾经做过但是因为当我分配它时,gets NULL
不起作用。
有什么想法吗?有什么建议吗?我想在 tr function
中添加一些内容
主要思想来自这个存储库,如果你能看一下是你可以做的最简单的版本,但是他也有 utf-8 问题。
与 http://shiny.rstudio.com/articles/unicode.html 一样,建议(重新)使用 UTF-8 编码保存所有文件。
在 updateTranslation.R
内另外更改:
translationContent <- read.delim("dictionary.csv", header = TRUE, sep = "\t", as.is = TRUE)
至:
translationContent <- read.delim("dictionary.csv", header = TRUE, sep = "\t", as.is = TRUE, fileEncoding = "UTF-8")
.
警告,当您(重新)保存 ui.R 时,您的 "c-cedilla" 可能会被摧毁。只是 re-insert 它,以防万一。
复活节快乐:)
我目前正在构建一个需要翻译成不同语言的闪亮应用程序。我有整个结构,但我正在努力获取 "Validació" 等包含重音符号的值。
我遵循的结构如下:
- 我有一本字典,它只是一个带有翻译的 csv 文件,其中 有一把钥匙,然后是每种语言。这本词典的结构如下:
key, cat, en "selecció", "selecció", "Selection" "Diferències","Diferències", "Differences" "Descarregar","Descarregar", "Download" "Diagnòstics","Diagnòstics", "Diagnoses"
- 我有一个脚本,一旦 dictionary.csv 被修改,就会生成一个 .bin 文件,稍后将在代码中加载。
- 在 strings.R 中,我拥有将出现在代码中的所有字符串,并且我使用一个函数将当前语言翻译成我想要的语言。函数如下:
代码:
tr <- function(text){
sapply(text, function(s) translation[[s]][["cat"]], USE.NAMES=F)
}
当我翻译某些东西时,因为我在另一个文件中进行翻译,所以我将其分配给另一个变量,例如:
str_seleccio <- tr('Selecció)
- 我面临的问题是,例如,如果我们翻译
'Selecció'
将根据此函数tr('Selecció')
并提供正确答案,如果我在 RStudio 终端中执行它但是当我在 Shiny 应用程序中执行此操作,在我看来是NULL
。如果我翻译的单词没有重音符号,例如 "Hello",tr("Hello")
会在 Shiny 应用程序中为我提供正确答案,我可以通过代码看到它。
所以主要是 tr(word) 获得了正确的值,但是在分配它时 "loses the value" 所以我有点不知道该怎么做。
我知道您可以执行类似 Encoding(str_seleccio) <- "UTF-8"
的操作,但在这种情况下不起作用。如果是简单的单词,它曾经做过但是因为当我分配它时,gets NULL
不起作用。
有什么想法吗?有什么建议吗?我想在 tr function
主要思想来自这个存储库,如果你能看一下是你可以做的最简单的版本,但是他也有 utf-8 问题。
与 http://shiny.rstudio.com/articles/unicode.html 一样,建议(重新)使用 UTF-8 编码保存所有文件。
在 updateTranslation.R
内另外更改:
translationContent <- read.delim("dictionary.csv", header = TRUE, sep = "\t", as.is = TRUE)
至:
translationContent <- read.delim("dictionary.csv", header = TRUE, sep = "\t", as.is = TRUE, fileEncoding = "UTF-8")
.
警告,当您(重新)保存 ui.R 时,您的 "c-cedilla" 可能会被摧毁。只是 re-insert 它,以防万一。
复活节快乐:)