On-line: Pasha, PSP, гостей 3. Всего: 5 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 6903
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.21 02:34. Заголовок: Есть ли функция названия месяца на укр.языке ?


У кого есть готовая такая функция ?
У себя в базу пишу и фигня получается...
   cdp := hb_cdpSelect("UA1125") 
(cAls)->Month1 := UPPER(NTOCMONTH(nMonth-2)) + " " + HB_NtoS(nYear) // "C", 50, 0
(cAls)->Month2 := UPPER(NTOCMONTH(nMonth-1)) + " " + HB_NtoS(nYear) // "C", 50, 0
(cAls)->Month3 := UPPER(NTOCMONTH(nMonth)) + " " + HB_NtoS(nYear) // "C", 50, 0
hb_cdpSelect(cdp)

Результат такой:
ЯЭТРЁ№ 2021 
ФХТЁРЫ№ 2021
МРЁҐ 2021


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 9 [только новые]


постоянный участник




Пост N: 6907
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.21 07:19. Заголовок: И в МиниГуи на форму..


И в МиниГуи на форму название месяца кракозябы пишет:

Как правильно выводить название месяца на форму и в базу ?
Кодировку для окна переключил, текст .prg в кодировке RU1251
На окне вывожу кодовую страницу, всё вроде правильно.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3572
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.03.21 13:23. Заголовок: Andrey Попробуй SET..


Andrey
Попробуй
 
SET LANGUAGE TO UKRAINIAN
SET CODEPAGE TO UKRAINIAN

SET FONT TO "Arial", 11

DEFINE FONT ArialRu FONTNAME App.FontName SIZE App.FontSize CHARSET 204 // RUSSIUN_CHARSET
DEFINE FONT ArialRuBold FONTNAME App.FontName SIZE App.FontSize BOLD CHARSET 204 // RUSSIUN_CHARSET
...
USE Test1 ALIAS TEST1
// в контролах с русским яз. используй FONT "ArialRu" или FONT "ArialRuBold" или др. назначенные фонты по DEFINE ...
...
Для лог и др. txt, ini файлов исп. UTF-8, например ф-ии
FUNC Utf8Bom()
RETURN hb_utf8Chr( 0xFEFF ) /* e"\xEF\xBB\xBF" */

FUNC IsFileUtf8( cFile )
LOCAL cBom := hb_utf8Chr( 0xFEFF )
LOCAL cBuf := space(Len(cBom))
LOCAL hFile := FOpen(cFile, FO_READ + FO_SHARED)

IF FError() == 0
FRead(hFile, @cBuf, Len(cBuf))
FClose(hFile)
ENDIF

RETURN cBom == cBuf

т.е.
_SetGetLogFile( cLog ) ; fErase( _SetGetLogFile() ) // log file delete

? Utf8Bom() // BOM utf8
? hb_StrToUtf8( .... )
потом смотришь все в стандартном редакторе или hbedit
сам читаешь такой файл
cBuf := hb_memoread(cFile)
If hb_StrIsUtf8 ; cBuf = hb_Utf8ToStr(subs(cBuf, Len(Utf8Bom())+1))
EndIf


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3573
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.03.21 13:25. Заголовок: PS hb_StrIsUtf8(cBuf..


PS
hb_StrIsUtf8(cBuf) // пропустил

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3574
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.03.21 13:30. Заголовок: PS2 для установок S..


PS2
для установок
SET LANGUAGE TO UKRAINIAN
SET CODEPAGE TO UKRAINIAN
вывод в log будет на украинском и utf8 можно не использовать (ты где то спрашивал про txt файлы с языками, ответил тут)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1594
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 07.03.21 16:06. Заголовок: SergKis пишет: SET ..


SergKis пишет:

 цитата:
SET LANGUAGE TO UKRAINIAN
SET CODEPAGE TO UKRAINIAN



Это команды-обертки функций harbour
hb_cdpSelect()
hb_langSelect()


 цитата:
#include "hblang.ch" 

REQUEST HB_CODEPAGE_RU1251
REQUEST HB_CODEPAGE_RU866
REQUEST HB_CODEPAGE_UA1125
REQUEST HB_CODEPAGE_UA866

REQUEST HB_LANG_RU
REQUEST HB_LANG_UK

PROCEDURE Main( cLng )

hb_cdpSelect( "RU1251" )
hb_langSelect("RU")

hb_setTermCP( "RU866", "RU1251" )

? "Prev:", hb_langSelect()
? hb_langName()
? NationMsg( 1 )
? CMonth( Date() )
? CDoW( Date() )
? "HB_LANG_ITEM_BASE_MONTH ", "[" + hb_langMessage( HB_LANG_ITEM_BASE_MONTH ) + "]"
? "HB_LANG_ITEM_BASE_DAY ", "[" + hb_langMessage( HB_LANG_ITEM_BASE_DAY ) + "]"
? "---------"

Inkey( 0 )

hb_cdpSelect( "UA1125" )
hb_langSelect("UK")

hb_setTermCP( "RU866", "UA1125" )

? "Prev:", hb_langSelect("uk")
? hb_langName()
? NationMsg( 1 )
? CMonth( Date() )
? CDoW( Date() )
? "HB_LANG_ITEM_BASE_MONTH ", "[" + hb_langMessage( HB_LANG_ITEM_BASE_MONTH ) + "]"
? "HB_LANG_ITEM_BASE_DAY ", "[" + hb_langMessage( HB_LANG_ITEM_BASE_DAY ) + "]"
? "---------"
Inkey( 0 )

RETURN



Но у нас Андрей часто программирует на MiniGui

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3575
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.03.21 16:20. Заголовок: Петр пишет Это коман..


Петр пишет
 цитата:
Это команды-обертки функций harbour ...
Но у нас Андрей часто программирует на MiniGui


Потому предложил попробовать уст. работу с укр. языком для hmg, а для рус. яз. исп. hardset фонта для контролов.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6908
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.21 19:45. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Попробуй


Не совсем то...
Основной язык программы это русский.
А отдельные меню нужно на украинском.
Переделывать всю свою прогу - это труба дело.
Нужно наверное отдельный тест делать...

Петр пишет:

 цитата:
Но у нас Андрей часто программирует на MiniGui


Пишу так - прога на Минигуи. Просто и коротко.
Все понимают что язык программирования Харбор, библиотека МиниГии.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3576
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.03.21 19:59. Заголовок: Andrey пишет Основно..


Andrey пишет
 цитата:
Основной язык программы это русский.


кусок кода твой
 цитата:
У себя в базу пишу и фигня получается...
cdp := hb_cdpSelect("UA1125")
(cAls)->Month1 := UPPER(NTOCMONTH(nMonth-2)) + " " + HB_NtoS(nYear) // "C", 50, 0
(cAls)->Month2 := UPPER(NTOCMONTH(nMonth-1)) + " " + HB_NtoS(nYear) // "C", 50, 0
(cAls)->Month3 := UPPER(NTOCMONTH(nMonth)) + " " + HB_NtoS(nYear) // "C", 50, 0
hb_cdpSelect(cdp)


работает правильно (в смысле фигня), если база в 1251, надо
 
cdp := hb_cdpSelect("UA1125")
сMonth1 := UPPER(NTOCMONTH(nMonth-2)) + " " + HB_NtoS(nYear) // "C", 50, 0
сMonth2 := UPPER(NTOCMONTH(nMonth-1)) + " " + HB_NtoS(nYear) // "C", 50, 0
сMonth3 := UPPER(NTOCMONTH(nMonth)) + " " + HB_NtoS(nYear) // "C", 50, 0
hb_cdpSelect(cdp)
и потом
cdp := hb_cdpSelect("UA1125")
(cAls)->Month1 := cMonth1
(cAls)->Month2 := cMonth2
(cAls)->Month3 := cMonth3
hb_cdpSelect(cdp)

в базу запишет без искажения
Не нашел в ch файлах charset для укр. яз. в CP1251, если у тебя есть, то сделай фонты с charset и
исп. для контролов при работе с RUSSIAN установкой

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3577
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.03.21 20:01. Заголовок: PS и потом cdp..


PS
 
и потом
cdp := hb_cdpSelect("UA1125") это убрать(одним пальцем на весу набираю, сори)
(cAls)->Month1 := cMonth1


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 232
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет