перевод по словарю на js

Discussion in 'PHP' started by GAiN, 1 Oct 2012.

  1. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    есть такой словарь, но он переводит готовые слова и убирает старые перевелённые слова.
    как сделать что бы что бы он мог добавлять из базы слов буквы и цифры в ряд и делать из них слова ?
    например вот так в словаре стоит:
    ['1','pg84'],
    ['2','bg34'],
    на выходе должно получится при вводе цифр 12 должна получится такая строка: pg84bg34 и обратно из ней в 12 при обратном переводе

    perevod.js
    PHP:
    //словарь - двумерный массив слово-перевод
    var vcb=[ //словарь

    ['1','pg84'],
    [
    '2','bg34']
    ];

    //слово берется из элемента с id=trans-from, если там пусто,
    //то берется выделение на странице
    //помещается в элемент с id=trans-to
    //direction = 1 - обратный перевод
    function translate(direction){

      var 
    selected_text = (
        (
    window.getSelection && window.getSelection()) ||
        (
    document.getSelection && document.getSelection()) ||
        (
    document.selection && document.selection.createRange && document.selection.createRange().text)
      );
      var 
    fromdocument.getElementById('trans-from');
      var 
    to  document.getElementById('trans-to');

      if((!
    from && !selected_text) || !to){ return }

      
    fromfrom||{};
      
    from from.value || from.innerHTML || selected_text
      
    //from = from.toString().replace(/\s/g,'').toLowerCase();
      
    from from.toString().replace(/^\s*|\s*$/g,'').replace(/\s+/g,' ').toLowerCase();

      if(!
    from) return;

      
    //проверим наличие свойств у 'trans-to'
      
    if('value' in to){
        
    to.valueget_translate();
        return;
      };
      if(
    'innerHTML' in to){
        
    to.innerHTMLget_translate();
        return;
      };

      function 
    get_translate(){
        for(var 
    i=0i<vcb.lengthi++) {
          if(!
    direction){ //прямой перевод
            
    if(vcb[i][0].toLowerCase() == from)
            return 
    vcb[i][1];
          }else{
    //обратныйй перевод
            
    if(vcb[i][1].toLowerCase() == from)
            return 
    vcb[i][0];
          };
        };
    //for
        
    return 'Нет в словаре';
      };

    };
    html:
    PHP:
    <meta content="text/html; charset=windows-1251" http-equiv="Content-Type">

    <
    script type="text/javascript" src="js/perevod.js"></script>
     
    <form>
    <input type="text" id="trans-from">
    <input type="text" id="trans-to">

    <input type="button" value="To English" onclick="translate()">
    <input type="button" value="На русский" onclick="translate(1)">
    </form>