我也希望Debian支持日语输入
问题
环境
-
- ruby の docker image: 2.7-slim-buster (DockerHub の公式のもの)
docker-compose 使ってる
事件
在使用docker运行ruby环境时,我尝试从irb、pry中输入日文,但无法实现(不能接受日文)。
最初的结果
web:
image: ruby:
environment:
...
LANG: C.UTF-8 # これを追加する
...
现在我已经能够输入日语了。
相信您對詳細事項感到擔心
0. 搜索
明白了,原来根据操作系统不同,处理方式也不一样啊。
确认正在使用的操作系统。
我确认了一下正在使用的Docker镜像的操作系统,看起来正在运行的Ruby容器是Debian。
然而,在 Debian 中找不到简单的设置本地化语言环境的方法…。
2. “Locale” 是什么意思?
“ロケール是什么?”
语言_国家.文字代码
3. 区域设置命令
根据这篇文章所述,Linux操作系统拥有locale命令。
# コンテナのコンソール開く
$ docker-compose exec web bash
# 利用可能なロケール名を表示する
root@hogehoge# locale -a
C
C.UTF-8
POSIX
4. 在容器的环境变量中设置语言。
根据之前的网站显示
C,POSIX 系统标准的英语
utf8(ja_JP.UTF-8) 日本语UTF-8
根据情况来看,适合使用日本语输入的是C.UTF-8!
尝试在 docker-compose.yml 中将其设为环境变量。↓
# 上部のコードの再掲
services:
web:
image: hoge
environment:
...
LANG: C.UTF-8 # これを追加する
...
5. 出发吧 ba)
试着输入日语。↓
# コンテナのコンソール開く
$ docker-compose exec web bash
# ENVが設定されているか一応確認しておく
root@hogehoge# echo $LANG
C.UTF-8
# irb 開いて日本語入力してみる
root@hogehoge# irb
irb(main):001:0> あああ
Traceback (most recent call last):
4: from /usr/local/bin/irb:23:in `<main>'
3: from /usr/local/bin/irb:23:in `load'
2: from /usr/local/lib/ruby/gems/2.7.0/gems/irb-1.2.1/exe/irb:11:in `<top (required)>'
1: from (irb):1
NameError (undefined local variable or method `あああ' for main:Object)
我已经能输入了。
最后
可能有各种错误。如有错误,请指正,谢谢。