如何在DAC中新增适配用户语言的Description Family列并正确使用PXLocalizableDefault
正确实现方案
你使用PXLocalizableDefault时不需要手动传入用户语言参数,该特性会自动读取当前登录用户的语言配置,自动返回对应翻译的本地化字段值。
修正后的代码如下:
public class InventoryItemExt : PXCacheExtension<PX.Objects.IN.InventoryItem> { #region UsrDescription [PXUIField(DisplayName = "Famille description")] [PXLocalizableDefault( typeof(Search<INItemClass.descr, Where<INItemClass.itemClassID, Equal<InventoryItem.itemClassID>>>), PersistingCheck = PXPersistingCheck.Nothing)] public virtual string UsrDescription { get; set; } public abstract class usrDescription : PX.Data.BQL.BqlString.Field<usrDescription> { } #endregion }
注意事项
- 你需要提前在物料类(INItemClass)的多语言翻译维护界面,配置好对应语言的
descr字段翻译值,PXLocalizableDefault才能正常拉取到对应语言的描述 - 该特性默认会从目标字段的本地化翻译表中读取对应语言值,无需额外指定用户语言参数,你原来写的
typeof(User.languageName????)属于多余参数,直接删除即可 - 只有你需要强制指定取某一种固定语言的翻译时,才需要传入第二个语言代码参数,例如
"fr-CA"就会固定返回法语加拿大版本的翻译,适配当前用户语言的场景不需要传这个参数
功能对应界面参考:
内容的提问来源于stack exchange,提问作者Xavier METRAL
相关产品推荐
相关产品推荐

