We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 37317
    • 77 Posts
    Hi,

    I am using Babel as my multilanguage package. See this video/tutorial:
    http://uimbibe.com/video/MU5K4MG93OBS/Making-MODx-Revolution-multilingual-using-Babel by Design From Within [https://forums.modx.com/u/ThaClown].

    1. Once I got to the point of making a "gateway" Plugin page in Elements, I got a Page Not Found in the website. Using this tutorial (Babel), it said that in this Plugin, I need to check OnHandleRequest and once I did that, that is certainly when I received a Page Not Found. Therefore, for the time being, I unchecked it so that my website works at least in English (defualt languagt).

    2. I also noticed another issue, when imputing Hebrew content, i see the Hebrew as "?????" rather than the text. I am not sure if anyone is familiar with this. Any solution?

    Help!?

    Thanks in adavance
      • 33968
      • 863 Posts
      Did you add the rewrite conditions to your .htaccess file?
        • 37317
        • 77 Posts
        this is what i put in my htaccess (as it showed in the video/tutorial):
        # MODX supports Friendly URLs via this .htaccess file. You must serve web
        # pages via Apache with mod_rewrite to use this functionality, and you must
        # change the file name from ht.access to .htaccess.
        #
        # Make sure RewriteBase points to the directory where you installed MODX.
        # E.g., "/modx" if your installation is in a "modx" subdirectory.
        #
        # You may choose to make your URLs non-case-sensitive by adding a NC directive
        # to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
        
        # For security reasons, Option followsymlinks cannot be overridden.
        #Options +FollowSymlinks
        Options +SymLinksIfOwnerMatch
        RewriteEngine On
        RewriteBase /
        
        
        
        # Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
        #RewriteCond %{HTTP_HOST} .
        #RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com [NC]
        #RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
        #
        # or for the opposite domain.com -> www.domain.com use the following
        # DO NOT USE BOTH
        #
        #RewriteCond %{HTTP_HOST} .
        #RewriteCond %{HTTP_HOST} !^www\.example-domain-please-change\.com [NC]
        #RewriteRule (.*) http://www.example-domain-please-change.com/$1 [R=301,L]
        
        
        
        # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent 
        # https://www.domain.com when your cert only allows https://secure.domain.com
        #RewriteCond %{SERVER_PORT} !^443
        #RewriteRule (.*) https://example-domain-please-change.com.com/$1 [R=301,L]
        
        
        # The Friendly URLs part
        # detect language when requesting the root (/)
        RewriteCond %{HTTP:Accept-Language} !^he [NC]
        RewriteRule ^$ en/ [R=301,L]
        RewriteRule ^$ he/ [R=301,L]
         
        # redirect all requests to /en/favicon.ico and /he/favicon.ico
        # to /favicon.ico
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(en|he)/favicon.ico$ favicon.ico [L,QSA]
         
        # redirect all requests to /en/assets* and /he/assets* to /assets*
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(en|he)/assets(.*)$ assets$2 [L,QSA]
         
        # redirect all other requests to /en/* and /he/*
        # to index.php and set the cultureKey parameter
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(en|he)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
        
        
        # Make sure .htc files are served with the proper MIME type, which is critical
        # for XP SP2. Un-comment if your host allows htaccess MIME type overrides.
        
        #AddType text/x-component .htc
        
        
        
        # If your server is not already configured as such, the following directive
        # should be uncommented in order to set PHP's register_globals option to OFF.
        # This closes a major security hole that is abused by most XSS (cross-site
        # scripting) attacks. For more information: http://php.net/register_globals
        #
        # To verify that this option has been set to OFF, open the Manager and choose
        # Reports -> System Info and then click the phpinfo() link. Do a Find on Page
        # for "register_globals". The Local Value should be OFF. If the Master Value
        # is OFF then you do not need this directive here.
        #
        # IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
        #
        # Your server does not allow PHP directives to be set via .htaccess. In that
        # case you must make this change in your php.ini file instead. If you are
        # using a commercial web host, contact the administrators for assistance in
        # doing this. Not all servers allow local php.ini files, and they should
        # include all PHP configurations (not just this one), or you will effectively
        # reset everything to PHP defaults. Consult www.php.net for more detailed
        # information about setting PHP directives.
        
        #php_flag register_globals Off
        
        
        
        # For servers that support output compression, you should pick up a bit of
        # speed by un-commenting the following lines.
        
        #php_flag zlib.output_compression On
        #php_value zlib.output_compression_level 5
        
        
        
        # The following directives stop screen flicker in IE on CSS rollovers. If
        # needed, un-comment the following rules. When they're in place, you may have
        # to do a force-refresh in order to see changes in your designs.
        
        #ExpiresActive On
        #ExpiresByType image/gif A2592000
        #ExpiresByType image/jpeg A2592000
        #ExpiresByType image/png A2592000
        #BrowserMatch "MSIE" brokenvary=1
        #BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
        #BrowserMatch "Opera" !brokenvary
        #SetEnvIf brokenvary 1 force-no-vary
        
        
          • 37317
          • 77 Posts
          Help????
            • 33974
            • 156 Posts
            Did you tried to do after this tutorial? http://designfromwithin.com/blog/995/modx-multilingual-setting-up-babel/ - had been updated recently.
              • 37317
              • 77 Posts
              Nope. never seen this site.
              I will try it and let you know.
              10x again smiley
                • 18373 ☆ A M B ☆
                • 3,141 Posts
                2. I also noticed another issue, when imputing Hebrew content, i see the Hebrew as "??" rather than the text. I am not sure if anyone is familiar with this. Any solution?
                Sounds like your database is not set to a collation of utf8_general_ci, or your template doesn't properly define the encoding to utf8.
                  Mark Hamstra • Developer spending his days working on Premium Extras and a MODX Site Dashboard with the ability to remotely upgrade MODX and extras to make the MODX world a little better.

                  Tweet me @mark_hamstra, check my infrequent blog at markhamstra.com, my slightly more frequent ramblings at MODX.today or see code at Github.
                  • 29597 ☆ A M B ☆
                  • 350 Posts
                  I did make a update to my blogpost (I created the video but it need some updating), if you follow the steps it should work:
                  http://designfromwithin.com/blog/995/modx-multilingual-setting-up-babel/
                    MODX Ambassador (NL) | Responsive web design specialist, developer & speaker
                    DESIGNfromWITHIN, MPThemes and Any Screen Size
                    Follow me on Twitter | Read my blog | My code on GitHub
                    • 29597 ☆ A M B ☆
                    • 350 Posts
                    Please check if your contexts are set to http://www.yoursite.com or http://yoursite.com...
                    This should be the same as your: RewriteRule.

                    Here what I think you need (I notice you have English default and Hebrew as the only other lang)

                    Part of how your .htaccess should be (don't forget to change the site URL!):
                    # Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
                    RewriteCond %{HTTP_HOST} .
                    RewriteCond %{HTTP_HOST} !^your-website-url\.com [NC]
                    RewriteRule (.*) http://your-website-url.com/$1 [R=301,L]
                    ....
                    # The Friendly URLs part
                    # detect language when requesting the root (/)
                    RewriteCond %{HTTP:Accept-Language} !^(he) [NC]
                    RewriteRule ^$ he/ [R=301,L]
                     
                    # redirect all requests to /he/favicon.ico to /favicon.ico
                    RewriteCond %{REQUEST_FILENAME} !-d
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteRule ^(he)/favicon.ico$ favicon.ico [L,QSA]
                     
                    # redirect all requests to /he/assets* to /assets*
                    RewriteCond %{REQUEST_FILENAME} !-d
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteRule ^(he)/assets(.*)$ assets$2 [L,QSA]
                     
                    # redirect all other requests to /he/* to index.php and set the cultureKey parameter
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteCond %{REQUEST_FILENAME} !-d
                    RewriteRule ^(he)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
                    


                    You gateway plugin should be:
                    <?php
                    //make sure the plugin does not run on the mgr context (the manager)
                      if ( $modx->context->get( 'key' ) != 'mgr') {
                        /**
                         * grab the current context from the request "c" parameter (or context_param_alias from system settings)
                         * the alternative .htaccess friendly URL rewrite rule must be activated
                         */
                        $cntxt_param = $modx->getOption('context_param_alias', null, 'c');
                        if ( isset( $_REQUEST[$cntxt_param] ) && $_REQUEST[$cntxt_param] != '' ) {
                          switch ( $_REQUEST[$cntxt_param] ) {
                     
                            case 'he':
                              $modx->switchContext('Hebrew');
                              $modx->setOption('cultureKey', 'he');
                              break;
                     
                            default:
                            // nothing because web is default
                            break;
                     
                          }
                        }
                      }


                    The English (default/web) lexicon:

                    - Base URL
                    Key: base_url
                    Name: Base URL
                    Area Lexicon Entry: language
                    Value: /
                    - Culture key
                    Key: cultureKey
                    Name: Culture key
                    Area Lexicon Entry: language
                    Value: en
                    - Site start
                    Key: site_start
                    Name: Site start
                    Area Lexicon Entry: language
                    Value: <the ID of the English homepage>
                    - Site URL
                    Key: site_url
                    Name: Site URL
                    Area Lexicon Entry: language
                    Value: http://yourwebsite.com

                    The Hebrew lexicon:

                    - Base URL
                    Key: base_url
                    Name: Base URL
                    Area Lexicon Entry: language
                    Value: /he/
                    - Culture key
                    Key: cultureKey
                    Name: Culture key
                    Area Lexicon Entry: language
                    Value: he
                    - Site start
                    Key: site_start
                    Name: Site start
                    Area Lexicon Entry: language
                    Value: <the ID of the Hebrew homepage>
                    - Site URL
                    Key: site_url
                    Name: Site URL
                    Area Lexicon Entry: language
                    Value: http://yourwebsite.com/he/
                    [ed. note: ThaClown last edited this post 14 years, 9 months ago.]
                      MODX Ambassador (NL) | Responsive web design specialist, developer & speaker
                      DESIGNfromWITHIN, MPThemes and Any Screen Size
                      Follow me on Twitter | Read my blog | My code on GitHub
                      • 37317
                      • 77 Posts
                      HI everyone, sorry for taking so long to reply.
                      I will be trying this in the next few days.
                      I will update this thread when I made some progress.

                      thanks again for you all smiley