R 中是否有 BCP 47 语言代码列表?
Is there a list of BCP 47 language codes in R?
我是 运行 R 包中的神奇 pandoc,依靠 LaTeX babel package 来获得一些排版细节。
Pandoc expects a lang
argument as a BCP 47 代码(例如 en-US
),但 babel
需要它自己的语言代码(例如 american
)。
Pandoc 非常棒,在 this haskell script 中映射两者之间。
本着防御性编程的精神,当我的用户使用错误的语言代码时,我想警告他们,并为他们提供此类可接受的 BCP 47 代码的明确列表。
这样的列表(或向量,或其他)是否存在于 R 或包中的某处以方便使用?
我试图避免手动输入 pandoc haskell 脚本。
由于 R 脚本无法访问 Haskell 代码(在其自己的进程中是 运行),因此这是不可能的。但是,pandoc >2.0 向 STDERR 发出警告,在这种情况下:
$ echo "foo" | pandoc -M lang=asdf -t latex
[WARNING] Invalid 'lang' value 'asdf'.
Use an IETF language tag like 'en-US'.
应该有办法从 R 中捕获这个。
我需要提供一个方便的选择输入,所以我必须在 R 中准备好可用选项并最终 hand-copying 它们(哎呀)。
如果有人觉得这有用,这里有:
- 简短的语言代码(lang_short
),
- 变体或语言环境(var_short
),
- 更长版本的语言(有助于输入)lang_long
(可能 non-standard!),
- 更长版本的变体或语言环境(有助于输入)var_long
(可能 non-standard!),
- polyglossia
和 babel
的逻辑值,指示 pandoc 是否映射到其中一个或两个(如果您只需要依赖其中一个 LaTeX 包,可能会派上用场。
请记住,pandoc 需要 en_US
等形式的语言,因此您需要粘贴第 1 列和第 2 列。
请记住,这些并不是 BCP 47 标准下的所有 语言和变体;它只是 pandoc 映射的(小)子集。
(如果有人能找到更明确的 R 语言代码列表,那就太好了)。
lang_short;var_short;lang_long;var_long;polyglossia;babel
ar;DZ;arabic;Algeria;TRUE;FALSE
ar;IQ;arabic;Iraq;TRUE;FALSE
ar;JO;arabic;Jordan;TRUE;FALSE
ar;LB;arabic;Lebanon;TRUE;FALSE
ar;LY;arabic;Libya;TRUE;FALSE
ar;MA;arabic;Morocco;TRUE;FALSE
ar;MR;arabic;Mauritania;TRUE;FALSE
ar;PS;arabic;Palestinian Territory;TRUE;FALSE
ar;SY;arabic;Syria;TRUE;FALSE
ar;TN;arabic;Tunisia;TRUE;FALSE
de;DE;german;;TRUE;TRUE
de;AT;german;Austria;TRUE;TRUE
de;CH;german;Switzerland;TRUE;TRUE
dsb;;lower sorbian;;TRUE;FALSE
hsb;;upper sorbian;;FALSE;TRUE
el;polyton;greek;polytonic;TRUE;TRUE
en;AU;english;Australia;TRUE;TRUE
en;CA;english;Canada;TRUE;TRUE
en;GB;english;Great Britain;TRUE;TRUE
en;NZ;english;New Zealand;TRUE;TRUE
en;UK;english;United Kingdom;TRUE;TRUE
en;US;english;United States;TRUE;TRUE
grc;ancient;greek;ancient;TRUE;TRUE
la;;latin;;TRUE;TRUE
sl;;slovenian;;TRUE;TRUE
fr;CA;french;Canada;FALSE;TRUE
pt;BR;portoguese;Brazil;TRUE;TRUE
sr;;serbian;;TRUE;TRUE
af;;afrikaans;;TRUE;TRUE
am;;amharic;;TRUE;TRUE
ar;;arabic;;TRUE;TRUE
as;;assamese;;TRUE;TRUE
ast;;asturian;;TRUE;TRUE
bg;;bulgarian;;TRUE;TRUE
bn;;bengali;;TRUE;TRUE
bo;;tibetan;;TRUE;TRUE
br;;breton;;TRUE;TRUE
ca;;catalan;;TRUE;TRUE
cy;;welsh;;TRUE;TRUE
cs;;czech;;TRUE;TRUE
cop;;coptic;;TRUE;TRUE
da;;danish;;TRUE;TRUE
dv;;divehi;;TRUE;TRUE
el;;greek;;TRUE;TRUE
en;;english;;TRUE;TRUE
eo;;esperanto;;TRUE;TRUE
es;;spanish;;TRUE;TRUE
et;;estonian;;TRUE;TRUE
eu;;basque;;TRUE;TRUE
fa;;farsi;;TRUE;TRUE
fr;;french;;TRUE;TRUE
fur;;friulan;;TRUE;TRUE
ga;;irish;;TRUE;TRUE
gd;;scottish;;TRUE;TRUE
gez;;ethiopic;;TRUE;TRUE
gl;;galician;;TRUE;TRUE
he;;hebrew;;TRUE;TRUE
hi;;hindi;;TRUE;TRUE
hr;;croatian;;TRUE;TRUE
hu;;magyar;;TRUE;TRUE
hy;;armenian;;TRUE;TRUE
ia;;interlingua;;TRUE;TRUE
id;;indonesian;;TRUE;TRUE
is;;icelandic;;TRUE;TRUE
it;;italian;;TRUE;TRUE
km;;khmer;;TRUE;TRUE
kmr;;kurmanji;;TRUE;TRUE
kn;;kannada;;TRUE;TRUE
ko;;korean;;TRUE;TRUE
lo;;lao;;TRUE;TRUE
lt;;lithuanian;;TRUE;TRUE
lv;;latvian;;TRUE;TRUE
ml;;malayalam;;TRUE;TRUE
mn;;mongolian;;TRUE;TRUE
mr;;marathi;;TRUE;TRUE
nb;;norsk;;TRUE;TRUE
nl;;dutch;;TRUE;TRUE
nn;;nynorsk;;TRUE;TRUE
no;;norsk;;TRUE;TRUE
nqo;;nko;;TRUE;TRUE
oc;;occitan;;TRUE;TRUE
pa;;panjabi;;TRUE;TRUE
pms;;piedmontese;;TRUE;TRUE
pt;;portoguese;;TRUE;TRUE
rm;;romanian;;TRUE;TRUE
ro;;russian;;TRUE;TRUE
sa;;sanskrit;;TRUE;TRUE
se;;samin;;TRUE;TRUE
sk;;slovak;;TRUE;TRUE
sq;;albanian;;TRUE;TRUE
sr;;serbian;;TRUE;TRUE
syr;;syriac;;TRUE;TRUE
ta;;tamil;;TRUE;TRUE
te;;telugu;;TRUE;TRUE
th;;thai;;TRUE;TRUE
ti;;ethiopic;;TRUE;TRUE
tk;;turkmen;;TRUE;TRUE
tr;;turkish;;TRUE;TRUE
uk;;ukrainian;;TRUE;TRUE
ur;;urdu;;TRUE;TRUE
vi;;vietnamese;;TRUE;TRUE
我是 运行 R 包中的神奇 pandoc,依靠 LaTeX babel package 来获得一些排版细节。
Pandoc expects a lang
argument as a BCP 47 代码(例如 en-US
),但 babel
需要它自己的语言代码(例如 american
)。
Pandoc 非常棒,在 this haskell script 中映射两者之间。
本着防御性编程的精神,当我的用户使用错误的语言代码时,我想警告他们,并为他们提供此类可接受的 BCP 47 代码的明确列表。
这样的列表(或向量,或其他)是否存在于 R 或包中的某处以方便使用?
我试图避免手动输入 pandoc haskell 脚本。
由于 R 脚本无法访问 Haskell 代码(在其自己的进程中是 运行),因此这是不可能的。但是,pandoc >2.0 向 STDERR 发出警告,在这种情况下:
$ echo "foo" | pandoc -M lang=asdf -t latex
[WARNING] Invalid 'lang' value 'asdf'.
Use an IETF language tag like 'en-US'.
应该有办法从 R 中捕获这个。
我需要提供一个方便的选择输入,所以我必须在 R 中准备好可用选项并最终 hand-copying 它们(哎呀)。
如果有人觉得这有用,这里有:
- 简短的语言代码(lang_short
),
- 变体或语言环境(var_short
),
- 更长版本的语言(有助于输入)lang_long
(可能 non-standard!),
- 更长版本的变体或语言环境(有助于输入)var_long
(可能 non-standard!),
- polyglossia
和 babel
的逻辑值,指示 pandoc 是否映射到其中一个或两个(如果您只需要依赖其中一个 LaTeX 包,可能会派上用场。
请记住,pandoc 需要 en_US
等形式的语言,因此您需要粘贴第 1 列和第 2 列。
请记住,这些并不是 BCP 47 标准下的所有 语言和变体;它只是 pandoc 映射的(小)子集。
(如果有人能找到更明确的 R 语言代码列表,那就太好了)。
lang_short;var_short;lang_long;var_long;polyglossia;babel
ar;DZ;arabic;Algeria;TRUE;FALSE
ar;IQ;arabic;Iraq;TRUE;FALSE
ar;JO;arabic;Jordan;TRUE;FALSE
ar;LB;arabic;Lebanon;TRUE;FALSE
ar;LY;arabic;Libya;TRUE;FALSE
ar;MA;arabic;Morocco;TRUE;FALSE
ar;MR;arabic;Mauritania;TRUE;FALSE
ar;PS;arabic;Palestinian Territory;TRUE;FALSE
ar;SY;arabic;Syria;TRUE;FALSE
ar;TN;arabic;Tunisia;TRUE;FALSE
de;DE;german;;TRUE;TRUE
de;AT;german;Austria;TRUE;TRUE
de;CH;german;Switzerland;TRUE;TRUE
dsb;;lower sorbian;;TRUE;FALSE
hsb;;upper sorbian;;FALSE;TRUE
el;polyton;greek;polytonic;TRUE;TRUE
en;AU;english;Australia;TRUE;TRUE
en;CA;english;Canada;TRUE;TRUE
en;GB;english;Great Britain;TRUE;TRUE
en;NZ;english;New Zealand;TRUE;TRUE
en;UK;english;United Kingdom;TRUE;TRUE
en;US;english;United States;TRUE;TRUE
grc;ancient;greek;ancient;TRUE;TRUE
la;;latin;;TRUE;TRUE
sl;;slovenian;;TRUE;TRUE
fr;CA;french;Canada;FALSE;TRUE
pt;BR;portoguese;Brazil;TRUE;TRUE
sr;;serbian;;TRUE;TRUE
af;;afrikaans;;TRUE;TRUE
am;;amharic;;TRUE;TRUE
ar;;arabic;;TRUE;TRUE
as;;assamese;;TRUE;TRUE
ast;;asturian;;TRUE;TRUE
bg;;bulgarian;;TRUE;TRUE
bn;;bengali;;TRUE;TRUE
bo;;tibetan;;TRUE;TRUE
br;;breton;;TRUE;TRUE
ca;;catalan;;TRUE;TRUE
cy;;welsh;;TRUE;TRUE
cs;;czech;;TRUE;TRUE
cop;;coptic;;TRUE;TRUE
da;;danish;;TRUE;TRUE
dv;;divehi;;TRUE;TRUE
el;;greek;;TRUE;TRUE
en;;english;;TRUE;TRUE
eo;;esperanto;;TRUE;TRUE
es;;spanish;;TRUE;TRUE
et;;estonian;;TRUE;TRUE
eu;;basque;;TRUE;TRUE
fa;;farsi;;TRUE;TRUE
fr;;french;;TRUE;TRUE
fur;;friulan;;TRUE;TRUE
ga;;irish;;TRUE;TRUE
gd;;scottish;;TRUE;TRUE
gez;;ethiopic;;TRUE;TRUE
gl;;galician;;TRUE;TRUE
he;;hebrew;;TRUE;TRUE
hi;;hindi;;TRUE;TRUE
hr;;croatian;;TRUE;TRUE
hu;;magyar;;TRUE;TRUE
hy;;armenian;;TRUE;TRUE
ia;;interlingua;;TRUE;TRUE
id;;indonesian;;TRUE;TRUE
is;;icelandic;;TRUE;TRUE
it;;italian;;TRUE;TRUE
km;;khmer;;TRUE;TRUE
kmr;;kurmanji;;TRUE;TRUE
kn;;kannada;;TRUE;TRUE
ko;;korean;;TRUE;TRUE
lo;;lao;;TRUE;TRUE
lt;;lithuanian;;TRUE;TRUE
lv;;latvian;;TRUE;TRUE
ml;;malayalam;;TRUE;TRUE
mn;;mongolian;;TRUE;TRUE
mr;;marathi;;TRUE;TRUE
nb;;norsk;;TRUE;TRUE
nl;;dutch;;TRUE;TRUE
nn;;nynorsk;;TRUE;TRUE
no;;norsk;;TRUE;TRUE
nqo;;nko;;TRUE;TRUE
oc;;occitan;;TRUE;TRUE
pa;;panjabi;;TRUE;TRUE
pms;;piedmontese;;TRUE;TRUE
pt;;portoguese;;TRUE;TRUE
rm;;romanian;;TRUE;TRUE
ro;;russian;;TRUE;TRUE
sa;;sanskrit;;TRUE;TRUE
se;;samin;;TRUE;TRUE
sk;;slovak;;TRUE;TRUE
sq;;albanian;;TRUE;TRUE
sr;;serbian;;TRUE;TRUE
syr;;syriac;;TRUE;TRUE
ta;;tamil;;TRUE;TRUE
te;;telugu;;TRUE;TRUE
th;;thai;;TRUE;TRUE
ti;;ethiopic;;TRUE;TRUE
tk;;turkmen;;TRUE;TRUE
tr;;turkish;;TRUE;TRUE
uk;;ukrainian;;TRUE;TRUE
ur;;urdu;;TRUE;TRUE
vi;;vietnamese;;TRUE;TRUE