Viewing 15 replies - 1 through 15 (of 18 total)
  • Thread Starter networkwebmasters

    (@networkwebmasters)

    I added UTF-8 at line number 96 :
    $auto_image_post_content = substr(html_entity_decode(strip_tags($post->post_content),ENT_QUOTES,’UTF-8′), 0, 99999);

    Still not working ??

    Plugin Author Chris Huff

    (@brochris)

    Unfortunately, the free version of the plugin does not allow you to upload your own fonts, and the fonts included in the free version (commercially licensed free fonts that I can distribute with the plugin) are somewhat limited in what glyphs they include.

    But I tested one of the Hindi fonts with the PRO version, and it appears to work fine.

    I would not expect emoticons to work. But once again, I suppose it depends on the particular font that you use, and most free fonts that I can distribute simply don’t have those characters. If you can find a free font with distribution permission that has a complete character set, I’d be open to looking at it and possibly including it in the free version.

    Thread Starter networkwebmasters

    (@networkwebmasters)

    Can you tell me which hindi font you tested?

    Thread Starter networkwebmasters

    (@networkwebmasters)

    Plugin Author Chris Huff

    (@brochris)

    I tested the PRO version with Hind-Regular.ttf and it appeared to work fine. No square boxes.

    Thread Starter networkwebmasters

    (@networkwebmasters)

    Only smileys emoticons shows in square boxes.

    You tried to convert this? : “?????? ????? ???? ???? ?? ?? ???? ??, ???? ?? ??? ??? ???? ?? ????? ??? ???? ?? ??? ?? ????? ???? ?? ??? ???? ??!”

    The text printed out on picture is wrong. Plugin not using the rules about Hindi language that changes the order in which glyphs are displayed. Hindi Rule

    https://stackoverflow.com/questions/21188046/writing-hindi-fonts-with-gd-library-do-not-render-as-desired

    Plugin Author Chris Huff

    (@brochris)

    Ok, I see the problem. Unfortunately, not speaking Hindi, I think I would need a lot of help in fixing it. The stackoverflow link you pointed me to showed how to fix one rule in the Hindi language. Do you know of a website that shows how to fix other Hindi rules?

    Thread Starter networkwebmasters

    (@networkwebmasters)

    Please check these reference links

    https://jrgraphix.net/r/Unicode/0900-097F
    https://www.unicode.org/charts/PDF/U0900.pdf
    https://www.unicode.org/versions/Unicode7.0.0/ch12.pdf
    https://www.unicode.org/notes/tn1/Wissink-IndicCollation.pdf
    https://www.unicode.org/
    https://www.unicode.org/ucd/
    https://www.unicode.org/standard/where/

    https://www.microsoft.com/en-us/Typography/SpecificationsOverview.aspx
    https://www.microsoft.com/typography/developers/opentype/default.htm

    Rule 1: Letter I(\u0907) + Nukta(\u093C)forms Letter Vocalic L(\u090C)

    Rule 2: Vowel Sign Vocalic R(\u0943) + Sign Nukta(\u093c) forms Vowel Sign Vocalic Rr(\u0944)

    Rule 3: Candrabindu(\u0901) + Sign Nukta(\u093c) forms Om(\u0950)

    Rule 4: Letter Vocalic R(\u090b) + Sign Nukta(\u093c) forms Letter Vocalic Rr(\u0960)

    Rule 5: Letter Ii(\u0908) + Sign Nukta(\u093c) forms Letter Vocalic LI(\u0961)

    Rule 6: Vowel Sign I(\u093f) + Sign Nukta(\u093c) forms Vowel Sign VocalicL(\u0962)

    Rule 7: Vowel Sign Ii(\u0940) + Sign Nukta(\u093c) forms Vowel Sign Vocalic LI(\u0963)

    Rule 8: Danda(\u0964) + Sign Nukta(\u093c) forms Sign Avagraha(\u093d)

    Rule 9: Consonant+Halant(\u094d)+Halant(\u094d)+Consonant forms Consonant + Halant(\u094d) + ZWNJ + Consonant

    Rule 10: Consonant+Halant(\u094d)+Nukta(\u093c)+Consonant forms Consonant + Halant(\u094d) + ZWJ + Consonant

    Plugin Author Chris Huff

    (@brochris)

    Hey, just wanted to let you know I’m working on this, and will hopefully release it as an add-on within the next week.

    Thread Starter networkwebmasters

    (@networkwebmasters)

    Good ??
    How can i test this add-on? can you email me add-on?

    Plugin Author Chris Huff

    (@brochris)

    It would be difficult to send it to you as an add-on at this point. It’s not yet formatted for distribution.

    I was able to implement the first rule, but when I use the same method to implement the next ten rules you listed, they don’t seem to have any affect on the generated text. But I think this is just because the text I’m testing it with doesn’t include the specified characters. Could you give me a paragraph of Hindi text that makes use of the various rules so that I can test whether my plugin is handling each one correctly?

    According to this chart (https://jrgraphix.net/r/Unicode/0900-097F) there are 32 characters which attach in some way to either the previous or next character. We will likely need to account for each one of them.

    Plugin Author Chris Huff

    (@brochris)

    Probably. Trying to implement the additional 10 rules you listed above, but either I have them coded wrong, or else those rules just aren’t coming into play with the block of text you gave me. Check out these images:

    Without any Hindi rules implemented:

    https://i.imgsafe.org/153f18867a.jpg

    With the Hindi rules you mentioned:

    https://i.imgsafe.org/153fe632cb.jpg

    As you can see, the first rule works, but the other 10 seem to have no effect.

    Here’s the code I’m working on…

    $words = explode(" ", $auto_image_text_to_write);
        for($k = 0; $k < count($words); $k++){
    
            // detect if the string was passed in as unicode
            $text_encoding = mb_detect_encoding($words[$k], 'UTF-8, ISO-8859-1');
    
            // make sure it's in unicode
            if ($text_encoding != 'UTF-8') {
                $words[$k] = mb_convert_encoding($words[$k], 'UTF-8', $text_encoding);
                }
    
            // html numerically-escape everything (&#[dec];)
            $words[$k] = mb_encode_numericentity($words[$k], array (0x0, 0xffff, 0, 0xffff), 'UTF-8');
    
            $arr = explode("&#", $words[$k]);
            for ($i = 0; $i < (count($arr)-1); $i++){
    
                // interchange the order of "i" vowel
                  if($arr[$i] == "2367;") {
                    $arr[$i] = $arr[$i-1] . '';
                    $arr[$i-1] = "2367;";
                    }
    
                // letter "I" + Nukta forms letter vocalic "L"
                  if($arr[$i] == "2311;") {
                    if($arr[$i+1] == "2364;") {
                        $arr[$i] = "2316;";
                        $arr[$i+1] = '';
                        }
                    }
    
                // vowel sign vocalic "R" + sign Nukta forms vowel sign vocalic "Rr"
                  if($arr[$i] == "2371;") {
                      if($arr[$i+1] == "2364;") {
                        $arr[$i] = "2372;";
                        $arr[$i+1] = '';
                        }
                    }
    
                // Candrabindu + sign Nukta forms Om
                  if($arr[$i] == "2305;") {
                      if($arr[$i+1] == "2364;") {
                        $arr[$i] = "2384;";
                        $arr[$i+1] = '';
                        }
                    }
    
                // letter vocalic "R" + sign Nukta forms letter vocalic "Rr"
                  if($arr[$i] == "2315;") {
                      if($arr[$i+1] == "2364;") {
                        $arr[$i] = "2400;";
                        $arr[$i+1] = '';
                        }
                    }
    
                // letter "Ii" + sign Nukta forms letter vocalic "LI"
                  if($arr[$i] == "2312;") {
                      if($arr[$i+1] == "2364;") {
                        $arr[$i] = "2401;";
                        $arr[$i+1] = '';
                        }
                    }
    
                // vowel sign "I" + sign Nukta forms vowel sign vocalic "L"
                  if($arr[$i] == "2367;") {
                      if($arr[$i+1] == "2364;") {
                        $arr[$i] = "2402;";
                        $arr[$i+1] = '';
                        }
                    }
    
                // vowel sign "Ii" + sign Nukta forms vowel sign vocalic "LI"
                  if($arr[$i] == "2368;") {
                      if($arr[$i+1] == "2364;") {
                        $arr[$i] = "2403;";
                        $arr[$i+1] = '';
                        }
                    }
    
                // Danda + sign Nukta forms sign Avagraha
                  if($arr[$i] == "2404;") {
                      if($arr[$i+1] == "2364;") {
                        $arr[$i] = "2365;";
                        $arr[$i+1] = '';
                        }
                    }
    
                // consonant + Halant + Halant + consonant forms consonant + Halant + ZWNJ + consonant
                  if($arr[$i] == "2381;") {
                      if($arr[$i+1] == "2381;") {
                      //$arr[$i+1] = '8204;';
                        }
                    }
    
                // consonant + Halant + Nukta + consonant forms consonant + Halant + ZWJ + Consonant
                  if($arr[$i] == "2364;") {
                      if($arr[$i+1] == "2381;") {
                      //$arr[$i] = "2381;";
                      //$arr[$i+1] = '8205;';
                        }
                    }
    
                }
    
            $words[$k] = implode('&#',$arr);
            }
    
        $auto_image_text_to_write = implode(" ", $words);
    Thread Starter networkwebmasters

    (@networkwebmasters)

    I checked this code, not working ??

    Please check these links
    “This is what PHP thinks you entered”
    https://www.smashingmagazine.com/2012/06/all-about-unicode-utf8-character-sets/
    https://www.php.net/manual/en/function.iconv.php

    Plugin Author Chris Huff

    (@brochris)

    Could you get at least the first rule to work, as it did for me? That tells me that we’re at least on the right track.

    I’ve tried all kinds of different encoding tricks. I could be wrong, but I don’t think the problem is in the encoding (although, I did have to convert to numerically-escaped encoding in order to find and convert characters within the string…copying and pasting the Hindi characters just wouldn’t work).

    It seems to me that the problem is just that PHP (and the GD library specifically) simply doesn’t understand Hindi. Hindi often combines two or more characters into one, but there is no corresponding numerically-escaped encoding for that new character. For example, when I combine characters ? and ? and ? the result should be ???. But there is no code for ??? other than the three codes for the characters which make it up. When PHP and GD library see the three codes which should make the one character, it doesn’t know to treat it as one slightly morphed character, and it attempts to write each character individually, and results in the wrong glyphs below.

    I’ve tried many many ways to fix this, but I’m stumped. Feel free to tinker with it and let me know if you are able to make any headway.

    Thread Starter networkwebmasters

    (@networkwebmasters)

    We are on right track, first rule is working properly,
    https://i.imgsafe.org/a459a14a0b.png

    I am working on other rules ??

Viewing 15 replies - 1 through 15 (of 18 total)
  • The topic ‘Issues With Hindi Language & Smileys Emoticons’ is closed to new replies.