在Coldfusion&;卢西

在Coldfusion&;卢西,coldfusion,locale,cfml,lucee,Coldfusion,Locale,Cfml,Lucee,在这里,我正在为菲律宾(菲律宾)国家进行地区翻译 <cfdump var="#getlocale()#" /> <cfset locale = setLocale("fil_PH")> <cfdump var="#locale#" /> fil_PH是菲律宾人(菲律宾)的国家代码。但是Coldfusion和Lucee似乎都不支持Fil_PH语言环境。它还返回了“不支持的区域设置[fil\u PH

在这里,我正在为菲律宾(菲律宾)国家进行地区翻译

<cfdump var="#getlocale()#" />
<cfset locale = setLocale("fil_PH")>
<cfdump var="#locale#" />

fil_PH是菲律宾人(菲律宾)的国家代码。但是Coldfusion和Lucee似乎都不支持Fil_PH语言环境。它还返回了“不支持的区域设置[fil\u PH]”问题。有没有其他方法可以实现这一点


注意:ACF&Lucee支持英语(菲律宾)-(英文版),但我不希望这样。我应该只使用fil_PH locale。提前感谢。

不幸的是,这里有多个问题

  • Adobe Coldfusion仅支持将区域设置设置为安装所用JVM支持的区域设置
  • fil
    是一种ISO 639-2语言代码,这意味着它比两个字符的ISO 639-1语言代码(如英语
    en
    和塔加洛格
    tl
    )更不可能得到支持
  • 您可以在上尝试以下测试

    • 使用此方法时,Adobe Coldfusion仍然会出现任何不受支持的区域设置错误
    • Lucee 5使用此方法接受设置
      fil_PH
      ,并且在trycf.com上,如果设置后转储
      getLocale()
      ,甚至会将其识别为
      fillipino(菲律宾)
    因此,简单的答案是使用这种变通方法,但我无法预测这种变通方法在语言的其他部分和应用程序中的实际效果如何,因此使用它的风险由您自己承担:-)


    “适当”的解决方案是将语言环境添加到JVM配置中——其方法取决于您的Java版本、技能和服务器访问级别。或者在Lucee的案例中,你可以说服Lucee团队为Lucee本身添加支持——他们是为这个要求为威尔士添加
    cy_GB
    的人做的,因此至少有一些先例,但至少仍然是alpha-2 ISO 639-1代码。Lucee开发人员可能会拒绝fil,因为它是ISO 639-2 alpha-3代码。

    不幸的是,这里存在多个问题

  • Adobe Coldfusion仅支持将区域设置设置为安装所用JVM支持的区域设置
  • fil
    是一种ISO 639-2语言代码,这意味着它比两个字符的ISO 639-1语言代码(如英语
    en
    和塔加洛格
    tl
    )更不可能得到支持
  • 您可以在上尝试以下测试

    • 使用此方法时,Adobe Coldfusion仍然会出现任何不受支持的区域设置错误
    • Lucee 5使用此方法接受设置
      fil_PH
      ,并且在trycf.com上,如果设置后转储
      getLocale()
      ,甚至会将其识别为
      fillipino(菲律宾)
    因此,简单的答案是使用这种变通方法,但我无法预测这种变通方法在语言的其他部分和应用程序中的实际效果如何,因此使用它的风险由您自己承担:-)


    “适当”的解决方案是将语言环境添加到JVM配置中——其方法取决于您的Java版本、技能和服务器访问级别。或者在Lucee的案例中,你可以说服Lucee团队为Lucee本身添加支持——他们是为这个要求为威尔士添加
    cy_GB
    的人做的,因此至少有一些先例,但至少仍然是alpha-2 ISO 639-1代码。Lucee开发者可能会拒绝fil,因为它是ISO 639-2 alpha-3代码。

    Sev Roberts已经给出了一个很好的答案。但我将用更多的信息来补充他的回答。使用ISO-639和ISO-3166
    Sev Roberts的代码设置区域设置已经给出了一个非常好的答案。但我将用更多的信息来补充他的回答。使用ISO-639和ISO-3166的代码设置区域设置
    如何将此答案的评分高于一次向上投票?写得很好。刚刚发布的ACF 2021有可能解决这个问题吗?谢谢。我还没有自己的Adobe CF2021环境,但是,在trycf.com上,他们返回的
    支持的区域设置列表存储在变量Server.ColdFusion.SupportedLocales中。
    对于这两个
    fil\u PH必须是ColdFusion支持的区域设置之一。
    tl\u PH必须是ColdFusion支持的区域设置之一。
    -无论是否使用createObject()+init()解决方法。我如何将这个答案评为高于一次投票?写得很好。刚刚发布的ACF 2021有可能解决这个问题吗?谢谢。我还没有自己的Adobe CF2021环境,但是,在trycf.com上,他们返回的
    支持的区域设置列表存储在变量Server.ColdFusion.SupportedLocales中。
    对于这两个
    fil\u PH必须是ColdFusion支持的区域设置之一。
    tl\u PH必须是ColdFusion支持的区域设置之一。
    -无论是否使用createObject()+init()变通办法。
    <cfdump var="#Server.ColdFusion.SupportedLocales#" label="Server.ColdFusion.SupportedLocales" />
    <br />---
    <cfdump var="#getlocale()#" />
    <br />---
    <cfset locale = setLocale("en_PH")>
    <cfdump var="#getlocale()#" />
    
    <br />---
    <cftry>
        <cfset locale = setLocale("tl_PH")>
        <cfdump var="#getlocale()#" />
    <cfcatch>
        <cfdump var="#cfcatch#" expand="false" label="#cfcatch.message#" />
    </cfcatch>
    </cftry>
    
    <br />---
    <cftry>
        <cfset variables.Locale=createObject('java','java.util.Locale') />
        <cfset setLocale(variables.Locale.init("tl","PH")) />
        <cfdump var="#getlocale()#" />
    <cfcatch>
        <cfdump var="#cfcatch#" expand="false" label="#cfcatch.message#" />
    </cfcatch>
    </cftry>
    
    <br />---
    <cftry>
        <cfset locale = setLocale("fil_PH") />
    
        <cfdump var="#getlocale()#" />
    <cfcatch>
        <cfdump var="#cfcatch#" expand="false" label="#cfcatch.message#" />
    </cfcatch>
    </cftry>
    
    <br />---
    <cftry>
        <cfset variables.Locale=createObject('java','java.util.Locale') />
        <cfset setLocale(variables.Locale.init("fil","PH")) />
        <cfdump var="#getlocale()#" />
    <cfcatch>
        <cfdump var="#cfcatch#" expand="false" label="#cfcatch.message#" />
    </cfcatch>
    </cftry>
    
    <cfset variables.Locale=createObject('java','java.util.Locale') />
    <cfset setLocale(variables.Locale.init("fil","PH")) />
    
    <cfoutput>
        <cfset JavaLocale = CreateObject("java", "java.util.Locale")>
        <cfset availableJavaLocalesArray=JavaLocale.getAvailableLocales()>
        <cfloop array="#availableJavaLocalesArray#" index="index">
            <cfif index.getDisplayName() is "Filipino (Philippines)">
            Filipino Found
            <cfset setLocale(index.getDisplayName())>
            <div style="background: red;">#lscurrencyformat(1000.95)# #lsDateFormat(now())# #lsTimeFormat(now())#</div> 
            </cfif>
        </cfloop>
    </cfoutput>
    <cfdump var="#availableJavaLocalesArray#">