【问题标题】:What is C# sample code for VBScript SetLocale Function什么是 VBScript SetLocale 函数的 C# 示例代码
【发布时间】:2011-12-01 05:24:57
【问题描述】:

我在 VBScript 中有以下代码。

Sub SetPageLocale()
    Dim Locale
    Dim ContextObject
    Set ContextObject=getContextObject
    Locale=getFieldValue(ContextObject.Publication.MetadataFields("Configuration").Value(1).Fields("Locale"),"")
    If Locale<>"" Then
        SetLocale(Locale)
    Else
        SetLocale("en-gb")' Move to Constants TBB
    End If

    Set ContextObject = Nothing
End Sub

现在我想用 C# 转换上面的代码。特别是我正在寻找 VbScript SetLocale 函数的 C# 代码

【问题讨论】:

  • 现在我正在处理完全相同的代码(原文如此!),我敢打赌它有更多的东西要处理 Tridion,然后只是一个通用的 VBScript.. 所以,我想重申一下(现在呼吁 Tridion 大师):如何正确地将这个 sn-p(鉴于它现在是一个 VBScript TBB)转换为模块化模板 C# TBB?

标签: c# vbscript tridion


【解决方案1】:

在 .NET 中,您可以使用 CultureInfo 类来设置当前线程的语言环境:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");

【讨论】:

  • 我认为使用工厂方法更好:System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
  • @Manu,这个脚本应该做什么?在什么类型的应用程序中使用它? getFieldValue 函数是什么? ContextObject 类型是什么? Publication 属性是什么? MetadataFields 函数是什么?盲目地从一种语言翻译成另一种语言并不是一个好主意。最好利用目标语言的特殊性。在不考虑上下文的​​情况下从一种语言逐字翻译成另一种语言是完全错误的。
  • @DiableNoir:你能详细说明为什么工厂会更好吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-15
  • 1970-01-01
相关资源
最近更新 更多