【发布时间】:2018-08-15 14:14:14
【问题描述】:
我有以下代码生成发票行并包括公司使用优惠券的月份:
invoice.InvoiceLine += CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month.Month) + " (" + usedThisMonth + "), ";
我的问题是公司有一种公司语言(在数据库中它保存在值 1 或 2 下)。
1 表示荷兰语,2 表示法语。
如何编辑我的行以使月份以相应的语言显示?
我想我需要从以下开始:
if(invoice.CompanyLanguage == 1)
{
invoice.InvoiceLine += CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month.Month) + " (" + usedThisMonth + "), ";
}
else
{
invoice.InvoiceLine += CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month.Month) + " (" + usedThisMonth + "), ";
}
我只找到了创建新 CultureInfo 对象的示例,但没有找到如何以编程方式分配它的示例。我的代码应该是什么样子?
【问题讨论】:
-
我知道您正在使用现有的代码库但是建议尽可能保留 ISO 文化代码,而不是分配您自己的文化标识符。例如,用户的持久文化代码可以是
nl-NL或fr-BE。这将是首选,因为您不必在整个代码中添加任何查找,并且无论使用何种编程语言,这些值都是普遍接受的含义,应该理解持久值。 -
@Igor ,您是否建议我应该使用 ISO 代码而不是整数来将对象的语言保存在数据库中?
-
这正是我所推荐的。
标签: c# cultureinfo