Ещё латиница-26 для русского

Автор arseniiv, августа 26, 2011, 22:48

0 Пользователи и 1 гость просматривают эту тему.

Bhudh

Цитата: maratique от июля 20, 2021, 00:20Я смотрел проги Bhudh'а и Lugat'а 9-тилетней давности
Где Вы там мою увидели? И Люгата, собственно, не Люгата, он там писал источник кода, и он примерно той же степени аматористости, что и Ваш.

А громоздкость моего нынешнего (и, в принципе, и тогдашнего, я его не менял) можете заценить:
Цитата: var Rus = {
   Diphths : 'ёжшщъьэяЁЖШЩЪЬЭЯ1',
   Monos   : 'абвггдезһийклмнопрстуфхцчыюӕѐАБВГДЕЗҺИЙКЛМНОПРСТУФХЦЧЫЮҺ1'
},
   Lat = {
   Diphths : 'ohzhshchuhihehahOhZhShChUhIhEhAh2',
   Monos   : 'abvgɡdezhijklmnoprstufxcqwyæèABVGDEZHIJKLMNOPRSTUFXCQWYH1'
};

function rus2tr(str){
   if(!str)str=Rus.Monos;
   for(var s in Rus){
      for(var r=0,l=0,len=Rus[s].length-1,δR=Number(Rus[s][len]),δL=Number(Lat[s][Lat[s].length-1]);r < len; r+=δR,l+=δL){
         str = str.replace(RegExp(Rus[s].substr(r,δR),'g'),Lat[s].substr(l,δL));
      }
   }
   str = str.replace(RegExp('\n','g'),'<br />');
   return str;
}

Сделаете проще — честь Вам и хвала.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

maratique

Не ну диграфы для Ъ, Ь — это за гранью добра и зла. Они же даже звуков не обозначают!
Memento mori
普京回罗

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

kemerover

Извините, конечно, но такие многоэтажки из case это не велосипед, а, скорее, говновоз.

maratique

На 172 символа короче, т. е. на 31%

function ruslat(s)
{
   function latin(c)
   {
      cir="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя"
      lat="AaBbVvGgDdEeooZzZzIihhKkLlMmNnOoPpRrSsTtUuFfXxCcCcSsXx''YyQqEeuuaa"
      if((k=cir.indexOf(c))>=0)return lat[k]
      return c
   }
   a=[]
s=s.replace(/([ёйюя])/g,"j$1").replace(/([ЁЙЮЯ])/g,"J$1").replace(/([ЖжЧчШшЩщЭэ])/g,"$1h")
   for(let c of s)a.push(latin(c))
   return a.join('').replace(/jh([^aou]|$)/g,"j$1").replace(/Jh([^aou]|$)/g,"J$1")
}
Memento mori
普京回罗

maratique

Memento mori
普京回罗

Bhudh

Можно даже одной регуляркой, если знать, что replace принимает обрабатывающую функцию. :eat:
А глобальные переменные таки уберите. 3 штуки.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

maratique

ЦитироватьА глобальные переменные таки уберите. 3 штуки.
Это какие?
Я вообще ненавижу многословные языки программирования. Такое ощущение, что их создавали старые, чопорные мудаки. Я бы как сделал:

Всё переменные глобальные, кроме определённых в блоке. А если надо скрыть, то заключаем их в блок.

Никаких ";". Разве что вместо end

Самый, на мой взгляд, естественный язык — это Lua. Но и он страдает от вышеперечисленного.
Memento mori
普京回罗

Bhudh

Цитата: maratique от июля 20, 2021, 14:34Это какие?
Это которые вводятся без каких-либо ключевых слов, но при этом находятся в функции.
Автоматического local в JS нет.

А за сишное ((k=cir.indexOf(c))>=0) в JS вообще бьют больно.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр