Текущее время: Пн, июл 21 2025, 01:30

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: ФМ для перевода с русского на английский
СообщениеДобавлено: Ср, мар 02 2011, 14:39 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 03 2006, 08:10
Сообщения: 476
Откуда: Архангельск
Пол: Мужской
Требуется ФМ для перевода русского текста на английский Иванов - > Ivanov ,
может кто сталкивался с готовым модулем?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для перевода с русского на английский
СообщениеДобавлено: Ср, мар 02 2011, 16:02 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2011, 07:26
Сообщения: 80
Откуда: Альфа Центавра
Пол: Мужской
Вряд ли существует стандартный
Проще всего написать большущий case :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для перевода с русского на английский
СообщениеДобавлено: Ср, мар 02 2011, 16:02 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
SCP_REPLACE_STRANGE_CHARS


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для перевода с русского на английский
СообщениеДобавлено: Ср, мар 02 2011, 17:01 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 03 2006, 08:10
Сообщения: 476
Откуда: Архангельск
Пол: Мужской
Dzed Maroz написал:
SCP_REPLACE_STRANGE_CHARS


ага, похоже на нужное :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для перевода с русского на английский
СообщениеДобавлено: Пн, мар 14 2011, 13:39 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Нашел в свое время... возможно даже на сапфоруме, малость подпилил: (только это не перевод, а транслитерация)
Code:
function z_hr_translit_ru_to_en .
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(RUS) TYPE  CHAR40
*"  EXPORTING
*"     REFERENCE(ENG) TYPE  CHAR40
*"----------------------------------------------------------------------

  data: rus_string(131),
        lat_string(147),
        lat_string_first(147),
        lat_string_a(23).

  types: begin of t_lat,
    tb(3),
  end of t_lat.

  data: t_lat_first type standard table of t_lat with header line,
        t_lat       type standard table of t_lat with header line.

  data: begin of t_rus occurs 0,
    tb(1),
  end of t_rus.

  data: i  type i,
        k  type i,
        l  type i,
        l1 type i,
        l2 type i,
        l3 type i,
        k1 type i,
        k2 type i,
        y.

  concatenate 'А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,'
              'а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я,%'
         into rus_string.

  concatenate 'A,B,V,G,D,E,YO,ZH,Z,I,Y,K,L,M,N,'
              'O,P,R,S,T,U,F,H,C,CH,SH,SCH, ,I, ,E,YU,YA,'
              'a,b,v,g,d,e,yo,zh,z,i,y,k,l,m,n,'
              'o,p,r,s,t,u,f,h,c,ch,sh,sch, ,i, ,e,yu,ya,%'
         into lat_string.

  concatenate 'A,B,V,G,D,E,YO,Zh,Z,I,Y,K,L,M,N,'
              'O,P,R,S,T,U,F,H,C,Ch,Sh,Sch, ,I, ,E,Yu,Ya,'
              'a,b,v,g,d,e,yo,zh,z,i,y,k,l,m,n,'
              'o,p,r,s,t,u,f,h,c,ch,sh,sch, ,i, ,e,yu,ya'
         into lat_string_first.

  lat_string_a = 'A,E,I,Y,O,U,a,e,i,y,o,u'.

  split lat_string at ',' into table t_lat.
  split rus_string at ',' into table t_rus.
  split lat_string_first at ',' into table t_lat_first.

* Основное преобразование
  translate rus using ' %'.

  condense: rus.
  clear: y, i.

  l = strlen( rus ) - 1.
  while i <= l.

    check rus+i(1) ne space.

    read table t_rus with key tb = rus+i(1).

    if sy-subrc = 0.
      k = sy-tabix.

      if i = 0.
        read table t_lat_first into t_lat index k.
      else.
        read table t_lat index k.
      endif.

      if sy-subrc = 0.
        condense t_lat-tb.
        if not y is initial.
          concatenate eng t_lat-tb into eng separated by space.
          clear: y.
        else.
          concatenate eng t_lat-tb into eng.
        endif.
      endif.

    else.
      if y is initial and rus+i(1) ne space.
        concatenate eng rus+i(1) into eng.
      endif.
      if not y is initial.
        concatenate eng rus+i(1) into eng separated by space.
        clear: y.
      endif.
    endif.
    if rus+i(1) = space.
      y = 'X'.
    endif.
    add 1 to i.
  endwhile.

* Замена "iy" на "y" в конце слова
  l = strlen( eng ) - 2.
  if eng+l(2) = 'iy'.
    eng+l(2) = 'y '.
  endif.

* Замена "s" на "ss" в середине слова, если по бокам гласные буквы
  l = strlen( eng ).
  k2 = l - 1.
  i = 1.
  do k2 times.

    l1 = i - 1.
    l2 = i.
    l3 = i + 1.

    if    ( eng+l2(1) = 'S' or eng+l2(1) = 's' )
      and lat_string_a cs eng+l1(1)
      and lat_string_a cs eng+l3(1).
      move '$' to eng+l2(1).
    endif.

    add 1 to i.

  enddo.

  replace '$' with 'ss' into eng.
  translate eng using '% '.

endfunction.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB