现在做对日项目,有时遇到选择list项目需要设重复值的情况,一般情况下直接增加重复值会发生错误而无法设定,这里利用翻译的方法可以解决这样的问题,例如,我现在自定义一个选择list项目language,它的值分别是01:英语,02:日语,03:中国语,具体项目如下。
这里在PageLayout上正常表示三个值,分别是01:英语,02:日语,03:中国语
在已经存在【02:日语】的基础上,增加【04:日语】的话,会发生【Duplicate Values】的错误。
解放方法:
1.为避免重复,先直接增加【04:日语_04】的API Name和值。
2.点击设定找到翻译并启用
User Interfate→TranslationWorkbench→Translate
3.如下图,找到对应的项目,把【日本語_04】翻译成【日本語】
4.验证结果,先把语言切换成日语。
5.如下,这个选择list项目的值就会有两个【日本語】
6.在VsCode中,执行如下命令,可以把资源取下来。
代码语言:javascript复制sfdx force:source:retrieve -m CustomObject:Opportunity
sfdx force:source:retrieve -m CustomObjectTranslation:Opportunity-ja
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Language__c</fullName>
<externalId>false</externalId>
<label>Language</label>
<required>false</required>
<trackFeedHistory>false</trackFeedHistory>
<trackTrending>false</trackTrending>
<type>Picklist</type>
<valueSet>
<restricted>true</restricted>
<valueSetDefinition>
<sorted>false</sorted>
<value>
<fullName>01</fullName>
<default>false</default>
<label>英語</label>
</value>
<value>
<fullName>02</fullName>
<default>false</default>
<label>日本語</label>
</value>
<value>
<fullName>03</fullName>
<default>false</default>
<label>中国語</label>
</value>
<value>
<fullName>04</fullName>
<default>false</default>
<label>日本語_04</label>
</value>
</valueSetDefinition>
</valueSet>
</CustomField>
Language__c.fieldTranslation-meta.xml
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<CustomFieldTranslation xmlns="http://soap.sforce.com/2006/04/metadata">
<label><!-- Language --></label>
<name>Language__c</name>
<picklistValues>
<masterLabel>日本語_04</masterLabel>
<translation>日本語</translation>
</picklistValues>
</CustomFieldTranslation>