Возникла необходимость перевести мою программу (С++, MFC) на арабский язык. До этого вполне успешно перевел ее на несколько 'нормальных' языков, а с арабским возникла непонятная проблема со смешанными (англо-арабскими) ресурсными строками.
Например, в файле ресурсов имеется пункт меню вида:
В запущенной программе смешанный (англо-арабский) пункт меню отображается криво — некоторые арабские и английские части строки непонятным образом перемешиваются! При этом, чисто арабские и чисто английские строки отображаются корректно.
Строка искажается и в обычном режиме, и в режиме right-to-left. Проблема существует и в обычной Windows с настроенной поддержкой арабского языка, и в Windows, где арабский выставлен языком по-умолчанию.
Ощущение такое, что я как-то неправильно формирую строку смешанного ресурса.. Может быть существуют какие-то специальные символы для таких случаев (чтобы строка не искажалась при выводе) или что-то еще?..
Кто-то сталкивался с подобной проблемой? Как ее можно решить?
Здравствуйте, arabic_loc, Вы писали:
_>Здравствуйте!
_>Возникла необходимость перевести мою программу (С++, MFC) на арабский язык. До этого вполне успешно перевел ее на несколько 'нормальных' языков, а с арабским возникла непонятная проблема со смешанными (англо-арабскими) ресурсными строками.
_>Например, в файле ресурсов имеется пункт меню вида:
_><арабский текст><английский текст><арабский текст> <английский текст>...
_>В запущенной программе смешанный (англо-арабский) пункт меню отображается криво — некоторые арабские и английские части строки непонятным образом перемешиваются! При этом, чисто арабские и чисто английские строки отображаются корректно. _>Строка искажается и в обычном режиме, и в режиме right-to-left. Проблема существует и в обычной Windows с настроенной поддержкой арабского языка, и в Windows, где арабский выставлен языком по-умолчанию.
_>Ощущение такое, что я как-то неправильно формирую строку смешанного ресурса.. Может быть существуют какие-то специальные символы для таких случаев (чтобы строка не искажалась при выводе) или что-то еще?..
_>Кто-то сталкивался с подобной проблемой? Как ее можно решить?
Не уверен, что поможет но вдруг?
Попробуй поставить в VS язык для stringtable в rc-файле Neutral...
Здравствуйте, Carc, Вы писали:
C>Не уверен, что поможет но вдруг? C>Попробуй поставить в VS язык для stringtable в rc-файле Neutral...
Тык, в ресурсном файле сейчас вместе хранятся ресурсы для каждого языка (в т.ч. и stringtable) и загрузка ресурса нужного языка производится как раз по языковам атрибутам ресурса.
Как решить не знаю но арабский ввод/вывод тот еще геморрой
где то на сайте unicode.org проскакивали правила
мы когда пытались что то сделать ориенировались на MsOffice Word он вроде как привильно отбражает
(при вводе с клавиатуры курсор так и прыгает то в начало строчки то в ее конец)
Здравствуйте, ioni, Вы писали:
I>Здравствуйте, arabic_loc, Вы писали:
I>Как решить не знаю но арабский ввод/вывод тот еще геморрой I>где то на сайте unicode.org проскакивали правила I>мы когда пытались что то сделать ориенировались на MsOffice Word он вроде как привильно отбражает I>(при вводе с клавиатуры курсор так и прыгает то в начало строчки то в ее конец)
С помощью unicode.ord удалось разобраться.
Спасибо!