我也希望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)

我已经能输入了。

最后

可能有各种错误。如有错误,请指正,谢谢。

广告
将在 10 秒后关闭
bannerAds