2011-09-07 90 views
1

和平就在你身上!VBScript國際化準則/最佳實踐

我一直在努力國際化,我想要VBScript的準則。 Java和JavaScript有很多材料,但經過對VBS的廣泛研究之後,除了格式化,formatDate等的一些功能以及沒有最佳實踐/指導原則之外,我找不到任何東西。

我該怎麼辦?

回答

1

其中一個重要的事情是使用已存在的內容,例如,您可以使用GetLocaleInfo API。

事情是這樣的代碼:

' Return a piece of locale information. 
Private Function LocaleInfo(ByVal locale As Long, ByVal _ 
    lc_type As Long) As String 
Dim length As Long 
Dim buf As String * 1024 

    length = GetLocaleInfo(locale, lc_type, buf, Len(buf)) 
    LocaleInfo = Left$(buf, length - 1) 
End Function 

Private Sub Form_Load() 
Dim locale_id As Long 

    '... 
    locale_id = GetUserDefaultLCID() 

    ' Load the values. 
    ' Country. 
    AddRow "Country" 
    AddRow "Abbreviated Country Name", _ 
     LocaleInfo(locale_id, LOCALE_SABBREVCTRYNAME) 
    AddRow "Native Name of Country", LocaleInfo(locale_id, _ 
     LOCALE_SNATIVECTRYNAME) 
    '... 
End Sub 

' Add a row to the FlexGrid. If the second parameter 
' is missing, color the row as a header. 
Private Sub AddRow(ByVal item_name As String, Optional _ 
    ByVal item_value As Variant) 
    MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1 
    MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 0) = _ 
     item_name 
    If IsMissing(item_value) Then 
     MSFlexGrid1.Row = MSFlexGrid1.Rows - 1 
     MSFlexGrid1.Col = 0 
     MSFlexGrid1.CellBackColor = _ 
      MSFlexGrid1.BackColorFixed 
     MSFlexGrid1.Col = 1 
     MSFlexGrid1.CellBackColor = _ 
      MSFlexGrid1.BackColorFixed 
    Else 
     MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = _ 
      item_value 
    End If 
End Sub 

由於發現here

更一般情況下,我沒有太多的經驗,對VBS國際化,但你可以找到一些靈感here

+0

好,該API包含特定於語言環境的功能。讓我們看看它可以做些什麼.. 謝謝 –

+0

WJK對你在VB Helpder上提到的鏈接的評論,有一些很棒的提示。感謝您的研究。 和平在你身上!保重=) –