Лучший способ обрабатывать региональные настройки в VB6? - PullRequest
1 голос
/ 18 января 2012

Мне нужно как-то "интернационализировать" приложение, написанное на VB6. Это I18n только для нескольких стран, и пользователи знают , что, например, они должны использовать американский десятичный разделитель (.) Вместо запятой (,), например. Сроки также являются большой общей проблемой.

Мой подход при использовании .NET - установить CultureInfo основного потока, когда приложение начинает работать в en-US. Однако в VB6 я не могу этого сделать (насколько я знаю).

Кто-то сталкивался с этой проблемой раньше? Как лучше всего это решить? Простейшим способом из моего POV было бы переопределить региональные настройки пользователя для процесса приложения, но я не знаю, как это сделать в VB6 ...

С уважением,

Żubrówka

-edit- На этом этапе мне бы хотелось, чтобы у меня был способ переопределить пользовательские региональные настройки, только для моего процесса

-edit2- Я попробовал это, но это не сработало (мои настройки в pt-PT, десятичный разделитель - запятая, я ожидал получить точку (en-US)):

Private Sub Form_Load()
    SetAmerican

    Dim caralho As Double
    caralho = 1.23
    MsgBox (caralho)

    Unload Me
End Sub

Declare Function SetThreadLocale Lib "kernel32" (ByVal Locale As Long) As Long
Public Const LANG_EN_US = 1033

Public Sub SetAmerican()
    Call SetThreadLocale(LANG_EN_US)
End Sub

1 Ответ

0 голосов
/ 18 января 2012

Нам пришлось сделать некоторую локализацию для приложения VB6 для Бразилии. Самым простым способом, который я нашел для тестирования, было войти в (Windows 7) Control Panel->Clock, Language, and Region->Change the date,time, or number format

Region and Language Settings

и измените формат. После того, как я это сделал, числовой формат и формат даты соответственно изменились, и введенная мной информация о локализации показалась там, где она была закодирована.

Примечание: в Windows XP это Control Panel->Regional and Language Options

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...