lang.Translate
Syntax
lang.Translate KEY [CONTEXT]
Returns
string
Aliases
T
i18n
假设你的多语言网站支持两种语言,英语和波兰语。在 i18n
目录下创建每种语言的翻译表。
i18n/
├── en.toml
└── pl.toml
翻译表可以包含以下内容:
- 简单翻译
- 带有复数形式的翻译
Unicode CLDR Plural Rules chart 描述了每种语言的复数形式分类。
英语翻译表:
i18n/en.
day:
one: day
other: days
day_with_count:
one: '{{ . }} day'
other: '{{ . }} days'
privacy: privacy
security: security
privacy = 'privacy'
security = 'security'
[day]
one = 'day'
other = 'days'
[day_with_count]
one = '{{ . }} day'
other = '{{ . }} days'
{
"day": {
"one": "day",
"other": "days"
},
"day_with_count": {
"one": "{{ . }} day",
"other": "{{ . }} days"
},
"privacy": "privacy",
"security": "security"
}
波兰语翻译表:
i18n/pl.
day:
few: miesiące
many: miesięcy
one: miesiąc
other: miesiąca
day_with_count:
few: '{{ . }} miesiące'
many: '{{ . }} miesięcy'
one: '{{ . }} miesiąc'
other: '{{ . }} miesiąca'
privacy: prywatność
security: bezpieczeństwo
privacy = 'prywatność'
security = 'bezpieczeństwo'
[day]
few = 'miesiące'
many = 'miesięcy'
one = 'miesiąc'
other = 'miesiąca'
[day_with_count]
few = '{{ . }} miesiące'
many = '{{ . }} miesięcy'
one = '{{ . }} miesiąc'
other = '{{ . }} miesiąca'
{
"day": {
"few": "miesiące",
"many": "miesięcy",
"one": "miesiąc",
"other": "miesiąca"
},
"day_with_count": {
"few": "{{ . }} miesiące",
"many": "{{ . }} miesięcy",
"one": "{{ . }} miesiąc",
"other": "{{ . }} miesiąca"
},
"privacy": "prywatność",
"security": "bezpieczeństwo"
}
在查看英语语言站点时:
{{ T "privacy" }} → privacy
{{ T "security" }} → security
{{ T "day" 0 }} → days
{{ T "day" 1 }} → day
{{ T "day" 2 }} → days
{{ T "day" 5 }} → days
{{ T "day_with_count" 0 }} → 0 days
{{ T "day_with_count" 1 }} → 1 day
{{ T "day_with_count" 2 }} → 2 days
{{ T "day_with_count" 5 }} → 5 days
在查看波兰语语言站点时:
{{ T "privacy" }} → prywatność
{{ T "security" }} → bezpieczeństwo
{{ T "day" 0 }} → miesięcy
{{ T "day" 1 }} → miesiąc
{{ T "day" 2 }} → miesiące
{{ T "day" 5 }} → miesięcy
{{ T "day_with_count" 0 }} → 0 miesięcy
{{ T "day_with_count" 1 }} → 1 miesiąc
{{ T "day_with_count" 2 }} → 2 miesiące
{{ T "day_with_count" 5 }} → 5 miesięcy
在上述复数形式的示例中,我们在上下文中传递一个整数(第二个参数)。你还可以在上下文中传递一个映射,提供一个 count
键来控制复数形式。
翻译表:
i18n/en.
age:
one: '{{ .name }} is {{ .count }} year old.'
other: '{{ .name }} is {{ .count }} years old.'
[age]
one = '{{ .name }} is {{ .count }} year old.'
other = '{{ .name }} is {{ .count }} years old.'
{
"age": {
"one": "{{ .name }} is {{ .count }} year old.",
"other": "{{ .name }} is {{ .count }} years old."
}
}
模板代码:
{{ T "age" (dict "name" "Will" "count" 1) }} → Will is 1 year old.
{{ T "age" (dict "name" "John" "count" 3) }} → John is 3 years old.