面试题答案
一键面试- 语言文件管理:
- 选择格式:通常使用YAML格式来管理语言文件。例如,创建一个
config/locales
目录,在该目录下,每种语言对应一个YAML文件,如en.yml
(英语)、zh - CN.yml
(简体中文)等。 - 文件结构:YAML文件内以键值对形式组织内容。例如,
en.yml
可能如下:
- 选择格式:通常使用YAML格式来管理语言文件。例如,创建一个
en:
greetings:
hello: "Hello"
- 提取文本:将项目中需要多语言支持的文本提取到这些语言文件中。例如,如果在视图中有
<%= "Hello" %>
,则改为<%= t('greetings.hello') %>
,然后在语言文件中定义相应文本。
- 在代码中调用:
- 加载库:在Ruby项目中,通常使用
i18n
库来实现多语言支持。在Gemfile
中添加gem 'i18n'
,然后运行bundle install
安装该库。 - 设置语言环境:可以在控制器、中间件或其他合适的地方设置当前语言环境。例如,在Rails应用的控制器中:
- 加载库:在Ruby项目中,通常使用
class ApplicationController < ActionController::Base
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
end
- 调用翻译:在视图、模型或控制器中使用
I18n.t
方法来调用翻译后的文本。例如,<%= I18n.t('greetings.hello') %>
。如果需要带变量的翻译,如“Hello, [name]”,可以这样:
en:
greetings:
hello_with_name: "Hello, %{name}"
在代码中调用:<%= I18n.t('greetings.hello_with_name', name: @user.name) %>