Bug 1663390

Summary: [ALL LANG][RHSM CLI] Unlocalized messages in addons module.
Product: Red Hat Enterprise Linux 8 Reporter: Lijun Li <lijli>
Component: subscription-managerAssignee: Pino Toscano <ptoscano>
Status: CLOSED ERRATA QA Contact: Red Hat subscription-manager QE Team <rhsm-qe>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: jhnidek, jsefler, khowell, lmiksik, qe-i18n-bugs, redakkan, wpoteat
Target Milestone: rcKeywords: Reopened, Translation, Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: subscription-manager-1.28.16-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1805618 (view as bug list) Environment:
Last Closed: 2021-11-09 19:37:12 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1682763    
Bug Blocks: 1805618    

Description Lijun Li 2019-01-04 07:38:48 UTC
Description of problem:
[ALL LANG][RHSM CLI] Unlocalized messages in addons module.

Version-Release number of selected component (if applicable):
subscription-manager-1.23.8-11.el8.x86_64.rpm

How reproducible:
100%

Steps to Reproduce:
1. Install latest rhel8 workstation build.
2. Run rhsm cli from terminal.

Actual results:
# subscription-manager addons -h
使用:subscription-manager addons [选项]

修改或查看系统目的的插件属性

选项:
  -h, --help            显示此帮助信息并退出
  --proxy=PROXY_URL     代理服务器 URL 的格式为 proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        使用基本验证的 HTTP 代理服务器的用户
  --proxypassword=PROXY_PASSWORD
                        使用基本验证的 HTTP 代理服务器的密码
  --noproxy=NO_PROXY    跳过 HTTP 代理的主机后缀

  --unset               Unset addons of system purpose
  --add=TO_ADD          Add an item to the list (addons).
  --remove=TO_REMOVE    Remove an item from the list (addons).
                        ^^^^^^^^^^^^^^Unlocalized messages.

# subscription-manager addons
Addons not set.
^^^^^^^^^^^^^^^Unlocalized messages.

Expected results:
They should be localized.

Additional info:

Comment 1 Lijun Li 2019-07-01 03:39:53 UTC
This is also reproduced on latest rhel7.7 snapshot build.

Comment 2 Lijun Li 2019-10-15 06:48:48 UTC
Reproduced on latest rhel8.1 build.
# subscription-manager addons -h
使用:subscription-manager addons [选项]

Modify or view the addons attribute of the system purpose
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Unlocalized messages.

选项:
  -h, --help            显示此帮助信息并退出
  --proxy=PROXY_URL     代理服务器 URL 的格式为 proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        使用基本验证的 HTTP 代理服务器的用户
  --proxypassword=PROXY_PASSWORD
                        使用基本验证的 HTTP 代理服务器的密码
  --noproxy=NO_PROXY    跳过 HTTP 代理的主机后缀
  --unset               Unset addons of system purpose
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Unlocalized messages.
  --add=TO_ADD          Add an item to the list (addons).
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Unlocalized messages.
  --remove=TO_REMOVE    Remove an item from the list (addons).
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Unlocalized messages.
# subscription-manager addons
Addons not set.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Unlocalized messages.
# subscription-manager addons --add=test
addons updated.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Unlocalized messages.
# subscription-manager addons --remove=test
Addons updated.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Unlocalized messages.
# subscription-manager addons --unset
addons unset.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Unlocalized messages.

Comment 6 John Sefler 2020-08-17 19:14:04 UTC
Testing with version...

[root@hpe-dl380pgen8-02-vm-15 ~]# rpm -q subscription-manager
subscription-manager-1.27.13-1.el8.x86_64
[root@hpe-dl380pgen8-02-vm-15 ~]# rpm -q subscription-manager --changelog | grep 1663390
- 1663116: 1663390: 1663402: 1663408: Update translations (wpoteat)


[root@hpe-dl380pgen8-02-vm-15 ~]# LANG=zh_CN.utf-8 subscription-manager addons --h
使用:subscription-manager addons [选项]

修改或查看系统目的的插件属性                                     <======== PASSED

选项:
  -h, --help            显示此帮助信息并退出
  --proxy=PROXY_URL     代理服务器 URL 的格式为 proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        使用基本验证的 HTTP 代理服务器的用户
  --proxypassword=PROXY_PASSWORD
                        使用基本验证的 HTTP 代理服务器的密码
  --noproxy=NO_PROXY    跳过 HTTP 代理的主机后缀
  --username=USERNAME   在服务器中进行验证时使用的用户名
  --password=PASSWORD   在服务器中进行验证时使用的密码
  --token=TOKEN         在服务器中进行验证时使用的令牌
  --org=ORG_KEY         指定机构
  --unset               unset addons of system purpose          <====== FAILEDQA - CHANGED STRING (Set => set)
  --add=TO_ADD          add an item to the list (addons).       <====== FAILEDQA - CHANGED STRING (Add => add)
  --remove=TO_REMOVE    remove an item from the list (addons).  <====== FAILEDQA - CHANGED STRING (Remove => remove)
  --show                how this system's current addons        <====== FAILEDQA - NEW UNTRANSLATED STRING
  --list                list all addons available               <====== FAILEDQA - NEW UNTRANSLATED STRING

[root@hpe-dl380pgen8-02-vm-15 ~]# LANG=zh_CN.utf-8 subscription-manager addons
Addons 未设置。                                                  <======== PASSED

[root@hpe-dl380pgen8-02-vm-15 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
addons 已更新。                                                  <======== PASSED

[root@hpe-dl380pgen8-02-vm-15 ~]# LANG=zh_CN.utf-8 subscription-manager addons --remove=test
Addons 已更新。                                                  <======== PASSED

[root@hpe-dl380pgen8-02-vm-15 ~]# LANG=zh_CN.utf-8 subscription-manager addons --unset
addons 取消设置。                                                <======== PASSED



Moving back to NEW/FailedQA

Comment 7 John Sefler 2020-08-17 20:05:02 UTC
Also note the typo in the msgstr...

[root@hpe-dl380pgen8-02-vm-15 ~]# subscription-manager addons -h | grep "this system's current"
  --show                how this system's current addons
                        ^^^
                        FAILEDQA - EXPECTED "show"

Comment 9 Lijun Li 2020-09-07 08:14:08 UTC
Reproduced on latest rhel8.3 build.

[root@localhost ~]# subscription-manager addons -h
使用:8 addons [选项]

修改或查看系统目的的插件属性

选项:
  -h, --help            显示此帮助信息并退出
  --proxy=PROXY_URL     代理服务器 URL 的格式为 proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        使用基本验证的 HTTP 代理服务器的用户
  --proxypassword=PROXY_PASSWORD
                        使用基本验证的 HTTP 代理服务器的密码
  --noproxy=NO_PROXY    跳过 HTTP 代理的主机后缀
  --username=USERNAME   在服务器中进行验证时使用的用户名
  --password=PASSWORD   在服务器中进行验证时使用的密码
  --token=TOKEN         在服务器中进行验证时使用的令牌
  --org=ORG_KEY         指定机构
  --unset               unset addons of system purpose               <====== FAILEDQA
  --add=TO_ADD          add an item to the list (addons).               <====== FAILEDQA
  --remove=TO_REMOVE    remove an item from the list (addons).               <====== FAILEDQA
  --show                how this system's current addons               <====== FAILEDQA
  --list                list all addons available               <====== FAILEDQA
[root@localhost ~]# subscription-manager addons --show
Current Addons: test               <====== FAILEDQA
[root@localhost ~]# subscription-manager addons
Current Addons: test               <====== FAILEDQA
[root@localhost ~]# rpm -q subscription-manager
subscription-manager-1.27.15-1.el8.x86_64

Comment 14 RHEL Program Management 2021-02-01 07:31:36 UTC
After evaluating this issue, there are no plans to address it further or fix it in an upcoming release.  Therefore, it is being closed.  If plans change such that this issue will be fixed in an upcoming release, then the bug can be reopened.

Comment 15 John Sefler 2021-04-07 19:52:23 UTC
Re-testing on RHEL8.4...

[root@hpe-dl380pgen8-02-vm-2 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.4 Beta (Ootpa)
[root@hpe-dl380pgen8-02-vm-2 ~]# rpm -q subscription-manager
subscription-manager-1.28.13-2.el8.x86_64
[root@hpe-dl380pgen8-02-vm-2 ~]# rpm -q subscription-manager --changelog | grep 1899677
- 1899677: Extract of strings for translations (#2399) (wpoteat)


[root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager addons --h
使用:subscription-manager addons [选项]

修改或查看系统目的的插件属性

选项:
  -h, --help            显示此帮助信息并退出
  --proxy=PROXY_URL     代理服务器 URL 的格式为 proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        使用基本验证的 HTTP 代理服务器的用户
  --proxypassword=PROXY_PASSWORD
                        使用基本验证的 HTTP 代理服务器的密码
  --noproxy=NO_PROXY    跳过 HTTP 代理的主机后缀
  --username=USERNAME   在服务器中进行验证时使用的用户名
  --password=PASSWORD   在服务器中进行验证时使用的密码
  --token=TOKEN         在服务器中进行验证时使用的令牌
  --org=ORG_KEY         指定机构
  --unset               取消设置系统目的 addons
  --add=TO_ADD          将一个项添加到列表中(addons)。
  --remove=TO_REMOVE    从列表中删除一个项(addons)。
  --show                显示本系统目前的 addons
  --list                列出所有可用的 addons

[root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager addons
Addons 未设置。

[root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
addons 已更新。

[root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager addons --remove=test
Addons 已更新。

[root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager addons --unset
addons 取消设置。

[root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager addons --show
Addons 未设置。

[root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
addons 已更新。

[root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager addons --show
Current Addons: test           <================ FAILED QA

[root@hpe-dl380pgen8-02-vm-2 ~]# msgunfmt --no-wrap  /usr/share/locale/zh_CN/LC_MESSAGES/rhsm.mo | grep -A1 "Current "
msgid "Current service level: %s"
msgstr "当前服务等级:%s"
--
msgid "Current {name}: {val}"
msgstr "当前 {name}: {val}"     <============== EXPECTED THIS TRANSLATION STRING TO BE USED
--
msgid "Installed Product Current Status:"
msgstr "已安装的产品的当前状态:"

Comment 16 Pino Toscano 2021-04-08 05:51:01 UTC
(In reply to John Sefler from comment #15)
> [root@hpe-dl380pgen8-02-vm-2 ~]# LANG=zh_CN.utf-8 subscription-manager
> addons --show
> Current Addons: test           <================ FAILED QA
> 
> [root@hpe-dl380pgen8-02-vm-2 ~]# msgunfmt --no-wrap 
> msgid "Current {name}: {val}"
> msgstr "当前 {name}: {val}"     <============== EXPECTED THIS TRANSLATION STRING TO BE USED

Indeed, I can confirm this. The string is properly extracted and translated in some languages, however it is not translated properly at runtime due to a logic error:

            print(_("Current {name}: {val}".format(name=self.name.capitalize(),
                                                   val=values)))

(i.e. format() is applied on the English string, rather than the translated string.)

Thanks for testing, I'm reopening this bug and fixing this for 8.5.

Comment 18 Shwetha Kallesh 2021-05-04 10:23:43 UTC
Pre-verification:

Moving bug to new/failed_qa

[root@ibm-x3650m4-01-vm-14 ~]# subscription-manager version
server type: Red Hat Subscription Management
subscription management server: 3.2.16-1
subscription management rules: 5.41
subscription-manager: 1.28.16-1.el8



[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --h
使用:subscription-manager addons [选项]

修改或查看系统目的的插件属性

选项:
  -h, --help            显示此帮助信息并退出                               
  --proxy=PROXY_URL     代理服务器 URL 的格式为 proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        使用基本验证的 HTTP 代理服务器的用户
  --proxypassword=PROXY_PASSWORD
                        使用基本验证的 HTTP 代理服务器的密码
  --noproxy=NO_PROXY    跳过 HTTP 代理的主机后缀
  --username=USERNAME   在服务器中进行验证时使用的用户名
  --password=PASSWORD   在服务器中进行验证时使用的密码
  --token=TOKEN         在服务器中进行验证时使用的令牌
  --org=ORG_KEY         指定机构
  --unset               取消设置系统目的 addons
  --add=TO_ADD          将一个项添加到列表中(addons)。
  --remove=TO_REMOVE    从列表中删除一个项(addons)。
  --show                显示本系统目前的 addons
  --list                列出所有可用的 addons


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons
Addons 未设置。


[root@ibm-x3650m4-01-vm-14 ~]#  LANG=zh_CN.utf-8 subscription-manager addons --add=test
警告:属性 "addons" 的有效值列表为空。
addons 已更新。


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --remove=test
Addons 已更新。


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --unset
addons 取消设置。


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --show
Addons 未设置。

[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
警告:属性 "addons" 的有效值列表为空。
addons 已更新。


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --show
当前 Addons: test

[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
Warning: Provided value "test" is not included in the list of valid values       ------------> FAILED , warning message is not translated
 - ADDON1
 - ADDON3
 - ADDON2
addons 已更新。

[root@ibm-x3650m4-01-vm-14 ~]# msgunfmt --no-wrap  /usr/share/locale/zh_CN/LC_MESSAGES/rhsm.mo | grep -A1 "Warning"
--
msgid "Warning: Provided value \"{val}\" is not included in the list of valid values"
msgstr "警告:所提供的值 \"{val}\" 没有包括在有效值列表中"            -----------> this string should be used

Comment 19 Shwetha Kallesh 2021-05-04 11:47:57 UTC
Pre-verification comments :

[root@ibm-x3650m4-01-vm-14 ~]# subscription-manager version
server type: Red Hat Subscription Management
subscription management server: 3.2.16-1
subscription management rules: 5.41
subscription-manager: 1.28.16-1.el8



[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --h
使用:subscription-manager addons [选项]

修改或查看系统目的的插件属性

选项:
  -h, --help            显示此帮助信息并退出                               
  --proxy=PROXY_URL     代理服务器 URL 的格式为 proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        使用基本验证的 HTTP 代理服务器的用户
  --proxypassword=PROXY_PASSWORD
                        使用基本验证的 HTTP 代理服务器的密码
  --noproxy=NO_PROXY    跳过 HTTP 代理的主机后缀
  --username=USERNAME   在服务器中进行验证时使用的用户名
  --password=PASSWORD   在服务器中进行验证时使用的密码
  --token=TOKEN         在服务器中进行验证时使用的令牌
  --org=ORG_KEY         指定机构
  --unset               取消设置系统目的 addons
  --add=TO_ADD          将一个项添加到列表中(addons)。
  --remove=TO_REMOVE    从列表中删除一个项(addons)。
  --show                显示本系统目前的 addons
  --list                列出所有可用的 addons


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons
Addons 未设置。

[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --remove=test
Addons 已更新。


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --unset
addons 取消设置。


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --show
Addons 未设置。

[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
警告:属性 "addons" 的有效值列表为空。
addons 已更新。


[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --show
当前 Addons: test

The following failing case of unlocalised warning message is tracked by the bug https://bugzilla.redhat.com/show_bug.cgi?id=1956764

[root@ibm-x3650m4-01-vm-14 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
Warning: Provided value "test" is not included in the list of valid values  
 - ADDON1
 - ADDON3
 - ADDON2
addons 已更新。

Comment 22 Shwetha Kallesh 2021-05-20 05:49:04 UTC
Verification comments:

[root@kvm-02-guest25 ~]# subscription-manager version
server type: Red Hat Subscription Management
subscription management server: 3.2.11-1
subscription management rules: 5.41
subscription-manager: 1.28.16-1.el8


[root@kvm-02-guest25 ~]# LANG=zh_CN.utf-8 subscription-manager addons --h
使用:subscription-manager addons [选项]

修改或查看系统目的的插件属性

选项:
  -h, --help            显示此帮助信息并退出
  --proxy=PROXY_URL     代理服务器 URL 的格式为 proxy_hostname:proxy_port
  --proxyuser=PROXY_USER
                        使用基本验证的 HTTP 代理服务器的用户
  --proxypassword=PROXY_PASSWORD
                        使用基本验证的 HTTP 代理服务器的密码
  --noproxy=NO_PROXY    跳过 HTTP 代理的主机后缀
  --username=USERNAME   在服务器中进行验证时使用的用户名
  --password=PASSWORD   在服务器中进行验证时使用的密码
  --token=TOKEN         在服务器中进行验证时使用的令牌
  --org=ORG_KEY         指定机构
  --unset               取消设置系统目的 addons
  --add=TO_ADD          将一个项添加到列表中(addons)。
  --remove=TO_REMOVE    从列表中删除一个项(addons)。
  --show                显示本系统目前的 addons
  --list                列出所有可用的 addons
[root@kvm-02-guest25 ~]# LANG=zh_CN.utf-8 subscription-manager addons
Addons 未设置。
[root@kvm-02-guest25 ~]# LANG=zh_CN.utf-8 subscription-manager addons --remove=test
Addons 已更新。
[root@kvm-02-guest25 ~]# LANG=zh_CN.utf-8 subscription-manager addons --unset
addons 取消设置。
[root@kvm-02-guest25 ~]# LANG=zh_CN.utf-8 subscription-manager addons --show
Addons 未设置。
[root@kvm-02-guest25 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
警告:属性 "addons" 的有效值列表为空。
addons 已更新。
[root@kvm-02-guest25 ~]# LANG=zh_CN.utf-8 subscription-manager addons --show
当前 Addons: test

The following failing case of unlocalised warning message is tracked by the bug https://bugzilla.redhat.com/show_bug.cgi?id=1956764

[root@kvm-02-guest25 ~]# LANG=zh_CN.utf-8 subscription-manager addons --add=test
Warning: Provided value "test" is not included in the list of valid values
 - ADDON1
 - ADDON3
 - ADDON2
addons 已更新。

Comment 25 errata-xmlrpc 2021-11-09 19:37:12 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (subscription-manager bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:4390