双语wordpress:如何更好地切换语言?

时间:2012-12-04 17:31:37

标签: php wordpress .htaccess arabic qtranslate

我有两个网站以英文和阿拉伯文版本显示。

环顾四周后,我发现qTranslate插件可以很好地解决这个问题。

我使用.htaccess作为以下内容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^ar[\/]?$ index.php?lang=ar
RewriteRule ^en[\/]?$ index.php?lang=en 
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>

主题functions.php以下用于检测语言:

      function inspectVars($vars) {

      session_start();

      if ($_GET['lang'] == "ar") {
        $_SESSION['custom_lang'] = "ar";
        } elseif ($_GET['lang'] == "en") {
        $_SESSION['custom_lang'] = "en";
        } elseif (!isset($_GET['lang']) && !isset($_SESSION['custom_lang'])) {
        $_SESSION['custom_lang'] = "en";
      }
      $GLOBALS['q_config']['language']= $_SESSION['custom_lang'];
     return $vars;
    }

    add_filter("query_vars", "inspectVars");

此会话设置我用于切换RTL / LTR样式表。有没有更好的方法呢?

现在,我面临的问题是:

  1. 如何使用可将当前页面,博客切换为其他语言的链接?我使用domain / ar和domain / en进行切换,但首先需要回家。
  2. 我想保留网址domain.com/ar/someslugsoranythingdomain.com/en/someslugsoranything
  3. 我有一些图片,模板上的幻灯片需要随语言变化而切换。最好的方法是什么?还有HTML格式文本,也需要切换。
  4. 编辑: 我后来评论了以下内容,因为启用qTranslate自己的语言切换器可以保持所选语言的持久性。实际上,可以省略整个inspectVars函数。

                $GLOBALS['q_config']['language']= $_SESSION['custom_lang'];
    

1 个答案:

答案 0 :(得分:0)

我已经解决了大部分问题。

通过注释掉.htaccess文件的两行:

#RewriteRule ^ar[\/]?$ index.php?lang=ar
#RewriteRule ^en[\/]?$ index.php?lang=en 

我刚刚发现的以下帖子解决了很多问题:

Displaying content based on language with qTranslate 我现在遇到的最大问题是需要用阿拉伯语切换的混合HTML文本。在模板中,我尝试了qTranslate短代码和<!--:lang--><!--:-->标签,但它们在那里不起作用。另外,我猜想将阿拉伯语直接写入HTML并不是一个好主意。