

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 教程：为 Linux 映像启用日语支持
<a name="enable-japanese-support-linux"></a>

本教程介绍如何为 Linux 映像启用日语支持。这使映像上的应用程序能够显示日语字符，并使流媒体用户可以在映像的流式传输会话中使用日语输入法。

**Topics**
+ [步骤 1：安装日语字体和输入法](#tutorial-japanese-font)
+ [步骤 2：设置系统时区](#tutorial-japanese-zone)
+ [步骤 3：设置系统区域设置和显示语言](#tutorial-japanese-locale)
+ [步骤 4：配置输入法](#tutorial-japanese-input)
+ [步骤 5：设置键盘布局](#tutorial-japense-keyboard)
+ [步骤 6：在映像生成器上验证](#tutorial-japense-verify)
+ [步骤 7：创建映像](#tutorial-japanese-create)

## 步骤 1：安装日语字体和输入法
<a name="tutorial-japanese-font"></a>

在此步骤中，您将连接 Linux 映像生成器并安装您选择的字体和输入法包。

**安装日语字体和输入法**

1. 通过执行以下任一操作来连接到映像生成器：
   + [使用 WorkSpaces 应用程序控制台](managing-image-builders-connect-console.md)（仅适用于 Web 连接）
   + [创建直播 URL](managing-image-builders-connect-streaming-URL.md)（用于 Web 或 WorkSpaces 应用程序客户端连接）
**注意**  
您将以 ImageBuilderAdmin 用户身份登录到 Linux GNOME 桌面并拥有根管理员权限。

1. 安装所需的字体和输入法。为此，请打开终端应用程序，然后运行以下命令：

   **sudo yum install vlgothic-p-fonts.noarch**

   **sudo yum install ibus-kkc.x86\$164**

1. 除了上述命令外，对于 Rocky Linux 和 Red Hat Enterprise Linux，请运行以下命令：

   **sudo yum install glibc-langpack-ja**

## 步骤 2：设置系统时区
<a name="tutorial-japanese-zone"></a>

要设置系统时区，请运行以下命令：

**sudo timedatectl set-timezone "Asia/Tokyo"**

## 步骤 3：设置系统区域设置和显示语言
<a name="tutorial-japanese-locale"></a>

要设置系统区域设置和显示语言，请运行以下命令。

**设置系统区域设置和显示语言**

1. 运行命令 **sudo vim /etc/cloud/cloud.cfg** 以更新 `cloud-init config` 文件，将 **locale** 更改为 **locale: ja\$1JP.utf8**，然后保存并关闭该文件。

1. 通过运行 **sudo localectl set-locale LANG=ja\$1JP.utf8** 更新系统设置。

1. 通过运行 **sudo gsettings set org.gnome.system.locale region "ja\$1JP.utf8"** 更新 Gnome Shell 设置。

## 步骤 4：配置输入法
<a name="tutorial-japanese-input"></a>

为要添加到映像中的应用程序配置输入法。有关如何安装应用程序、生成清单文件和创建默认设置的更多信息，请参阅[教程：创建基于 Linux 的 WorkSpaces 自定义应用程序镜像](tutorial-create-linux-image.md)。在此步骤中，我们假设您已经安装了 Firefox 应用程序，它位于 `/usr/local/firefox/firefox`。

**配置输入法**

1. 通过运行命令 **sudo vim /usr/local/bin/update-input-method.sh** 创建脚本，并将以下内容添加到该脚本：

   ```
   #!/bin/bash
   
   function start_process()
   {
       command=$1
       process_name=$2
   
       process_count=$(pgrep $process_name -c)
       echo "$(date) current $process_name count: $process_count"
       while [ $process_count -lt 1 ]
       do
           echo "$(date) starting $process_name"
           eval $command
           sleep 1
           process_count=$(pgrep $process_name -c)
       done
       echo "$(date) $process_name started"
   }
   
   start_process "ibus-daemon --xim &" "ibus-daemon"
   start_process "/usr/libexec/ibus-engine-kkc --ibus &" "ibus-engine-kkc"
   
   gsettings set org.gnome.desktop.input-sources sources "[('ibus','kkc'), ('xkb', 'us')]"
   gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Control>space']"
   gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Control>space']"
   
   echo "$(date) updated input source and switch shortcut"
   ```

   在上面的脚本中，第一个输入源（‘ibus’, ‘kkc’）是默认的输入法。您可以通过更改输入源的顺序来更改默认输入法。此外，“Control\$1Space”和“Shift\$1Control\$1Space”指定为切换输入法的快捷键组合。您可以指定自己的按键组合，供用户在流式传输会话期间切换输入法时使用。

1. 创建将添加到映像中用于启动应用程序（Firefox）的脚本。为此，请运行命令**sudo vim /usr/local/bin/firefox-jp.sh**，然后将以下内容添加到脚本中：

   ```
   #!/bin/bash
   
   # Gather required environment variables from the GNOME shell session
   while IFS= read -r -d $'\0' env_var; do
       case "$env_var" in
           DBUS_SESSION_BUS_ADDRESS=*|\
           GTK_IM_MODULE=*|\
           QT_IM_MODULE=*|\
           XMODIFIERS=*|\
           XAUTHORITY=*)
               echo "$env_var"
               export "$env_var"
               ;;
       esac
   done < "/proc/$(pgrep -u as2-streaming-user gnome-shell | head -n1)/environ"
   
   /usr/local/bin/update-input-method.sh > /var/tmp/update-input-method.log 2>&1 &
   
   /usr/local/firefox/firefox &
   ```

1. 通过运行以下命令为两个脚本添加运行权限：

   **sudo chmod \$1x /usr/local/bin/update-input-method.sh**

   **sudo chmod \$1x /usr/local/bin/firefox-jp.sh**

1. 如果您已经为应用程序创建了优化清单文件，请运行以下命令将应用程序启动脚本添加到应用程序目录：

   ```
   sudo AppStreamImageAssistant add-application \
   --name firefox \
   --absolute-app-path /usr/local/bin/firefox-jp.sh \
   --display-name firefox \
   --absolute-icon-path /usr/local/firefox/browser/chrome/icons/default/default128.png \
   --absolute-manifest-path /tmp/firefox-manifest.txt
   ```

或者，您也可以通过将脚本 update-input-method .sh 作为单独的应用程序添加到图像的应用程序目录中来配置输入法。在流式传输会话期间，您的用户可以启动此应用程序以启用日语输入，并在同一会话中使用指定快捷键切换输入法。

## 步骤 5：设置键盘布局
<a name="tutorial-japense-keyboard"></a>

设置键盘布局，使其与用户在流式传输会话中使用的键盘相匹配。例如，您可以使用命令 **localectl list-keymaps** 列出所有可用的键盘映射，并使用命令 **sudo localectl set-keymap jp106** 将键盘映射设置为包含 106 个键的日语键盘。

## 步骤 6：在映像生成器上验证
<a name="tutorial-japense-verify"></a>

要在映像生成器上验证，请先运行命令 **sudo shutdown -r now** 重启映像生成器。重启后，再次连接到映像生成器，并验证包括时区、区域设置、语言和输入法在内的一切是否都能按预期运行。

## 步骤 7：创建映像
<a name="tutorial-japanese-create"></a>

在映像生成器上创建映像。有关更多信息，请参阅 [教程：创建基于 Linux 的 WorkSpaces 自定义应用程序镜像](tutorial-create-linux-image.md)。确保创建默认应用程序设置，包括您刚刚配置的区域设置。有关更多信息，请参阅[创建基于 Linux 的映像](create-linux-based-images.md)中的“为用户创建默认应用程序设置”。

根据此映像创建的所有 Linux 实例集实例都将具有您为该映像配置的默认时区、区域设置、语言和输入法设置。